老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

分布式日志系统收集平台ELK+EFK,从部署到实战(下)!

老男孩IT教育

常见问题

2023年7月20日 18:09

Elasticsearch是位于Elastic Stack核心的分布式搜索和分析引擎。Logstash和Beats有助于收集、聚合和丰富您的数据并将其存储在Elasticsearch中。Kibana使您能够以交互方式探索、可视化和分享对数据的见解,并管理和监控堆栈。

  Elasticsearch是位于Elastic Stack核心的分布式搜索和分析引擎。Logstash和Beats有助于收集、聚合和丰富您的数据并将其存储在Elasticsearch中。Kibana使您能够以交互方式探索、可视化和分享对数据的见解,并管理和监控堆栈。

  阅读这篇文章之前,先阅读一下这篇文章:分布式日志系统收集平台ELK+EFK,从部署到实战(上)!

  ElasticSearch集群

  预备姿势

  关于颜色:

  绿色:所有数据都完整,且副本数满足

  黄色:所有数据都完整,但是副本数不满足

  红色:一个或多个索引数据不完整

  搭建

  部署流程:

  1. 安装es

  2. 配置systemctl edit elasticsearch

  3. 注意hosts解析

  配置文件

cat> /etc/elasticsearch/elasticsearch.yml <<EOF
cluster.name: oldboy_linux
node.name: node-2
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 127.0.0.1,10.0.0.52
http.port: 9200
discovery.seed_hosts: ["10.0.0.51","10.0.0.52"]
cluster.initial_master_nodes: ["10.0.0.51"]
EOF

  配置说明 es01 es02都要配置

cp /etc/elasticsearch/elasticsearch.yml{,.single}
cat> /etc/elasticsearch/elasticsearch.yml <<EOF
cluster.name: oldboy_linux                       
#集群名称,所有属于同一集群的节点,集群名字要统一. 默认是elasticsearch 
node.name: es02.oldboylinux.cn                   
#每个节点不同。
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 127.0.0.1,10.0.0.91
http.port: 9200
discovery.seed_hosts: 
  - "es01.oldboylinux.cn"
  - "es02.oldboylinux.cn"
#集群中节点的地址.
cluster.initial_master_nodes: ["es01.oldboylinux.cn"]      
#集群中默认哪个是主节点.
EOF

  插入数据后

  说明与注意事项

#01 
1.插入和读取数据在任意节点都可以执行,效果一样
2.es-head可以连接集群内任一台服务

#03.主节点负责读写
如果主分片所在的节点坏掉了,副本分片会升为主分片

#04.主节点负责调度
如果主节点坏掉了,数据节点会自动升为主节点

#05.通讯端口
默认会有2个通讯端口:9200和9300
9300并没有在配置文件里配置过
如果开启了防火墙并且没有放开9300端口,那么集群通讯就会失败

#06.搭建集群的时候保证节点数据一致
或者直接清空es数据目录,然后重启即可
/var/lib/elasticsearch/

  重新理解副本数-分片数

  实战理解

创建索引-linux81-并设置分片数为3,副本数0
PUT /linux81/
{
  "settings": {
    "number_of_shards": 3, 
    "number_of_replicas": 0
  }
}

  删除索引

DELETE  /linux/

  修改副本数(随机可以修改)

PUT /linux81/_settings/
{
  "settings": {
    "number_of_replicas": 1
  }
}

  企业推荐配置

#根据节点数设置
2个节点: 默认就可以 1分片 1个副本
3个节点: 
  重要的数据,2副本 
  不重要的默认 1分片 1个副本

#应用场景
日志收集: 1副本3分片
搜索功能: 2副本3分片

  Filebea收集日志

  Filebeat概述

  Golang语言软件

  收集性能高

  Filebeat --> ES <-- Kibana展示

  Filebeat --> Logstash-->ES <-- Kibana展示

  可以收集各种系统,服务,应用日志

  极速应用指南

  ES集群

[root@oldboy-elastic-stack-es01 ~]# cat /etc/elasticsearch/elasticsearch.yml
cluster.name: oldboy_linux
#集群名称,所有属于同一集群的节点,集群名字要统一. 默认是elasticsearch
node.name: es01.oldboylinux.cn
#每个节点不同。
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 127.0.0.1,10.0.0.90
http.port: 9200
discovery.seed_hosts:
  - "es01.oldboylinux.cn"
  - "es02.oldboylinux.cn"
#集群中节点的地址.
cluster.initial_master_nodes: ["es01.oldboylinux.cn"]
#集群中默认哪个是主节点,用于新节点加入后初始化.

  部署Filebeat

rpm -ivh filebeat-7.9.3-x86_64.rpm

  初步配置:收集secure日志

hosts解析
10.0.0.90 es01.oldboylinux.cn
10.0.0.91 es02.oldboylinux.cn
10.0.0.92 es03.oldboylinux.cn
10.0.0.93 kafka.oldboylinux.cn


[root@web01 ~]# cat  /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/secure

output.elasticsearch:
  hosts:
    - "es01.oldboylinux.cn:9200"
    - "es02.oldboylinux.cn:9200"
    - "es03.oldboylinux.cn:9200"

systemctl enable filebeat.service
systemctl start filebeat.service
ps -ef |grep filebeat
root      78082      1  0 08:57 ?        00:00:00 /usr/share/filebeat/bin/filebeat --environment systemd -c /etc/filebeat/filebeat.yml --path.home /usr/share/filebeat --path.config /etc/filebeat --path.data /var/lib/filebeat --path.logs /var/log/filebeat

  检查ES

  接入Kibana

  在es01部署kibana

rpm -ivh kibana-7.9.3-x86_64.rpm

  配置文件

[root@oldboy-elastic-stack-es01 ~]# cat /etc/kibana/kibana.yml
server.port: 5601
server.host: "10.0.0.90"
server.name: "kibana.oldboylinux.cn"
elasticsearch.hosts:   [ "http://es01.oldboylinux.cn:9200" ]
kibana.index: ".kibana"
logging.dest: /var/log/kibana/kibana.log
logging.quiet: false
i18n.locale: "zh-CN"


  systemctl enable kibana.service
  systemctl start kibana.service

ps -ef |grep kibana
ss -lntup |grep 5601

  浏览器访问kibana.oldboylinux.cn:5601

hosts解析 windows
###oldboy-elastic-stack#########
10.0.0.90 es01.oldboylinux.cn kibana.oldboylinux.cn
10.0.0.91 es02.oldboylinux.cn
10.0.0.92 es03.oldboylinux.cn
10.0.0.93 kafka.oldboylinux.cn
###oldboy-elastic-stack#########

  Kibana展示数据

  kibana连接ES

  创建索引模式

  查看

  修改时间范围

  简单展示

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。