ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案,是三个产品的首字母缩写,分别是ElasticSearch、Logstash 和 Kibana
安装Elasticsearch(162)
安装RPM包
1
  | 
$ rpm -ivh elasticsearch-7.4.1-x86_64.rpm
  | 
 
创建目录
1
2
3
  | 
$ mkdir /service/elk/elasticsearch/data -p
$ mkdir /service/elk/elasticsearch/logs
$ chown -R elk.elk /service/elk/elasticsearch/
  | 
 
修改配置参数
1
2
3
4
5
6
7
8
  | 
$  vi /etc/elasticsearch/elasticsearch.yml
node.name: es-node
path.data: /service/elk/elasticsearch/data
path.logs: /service/elk/elasticsearch/logs
network.host: 0.0.0.0
http.port: 9200
bootstrap.memory_lock: false
cluster.initial_master_nodes: ["es-node"]
  | 
 
修改权限(es不允许root启动)
1
2
3
  | 
$ chown -R elk.elk /usr/share/elasticsearch
$ chown -R elk.elk /etc/elasticsearch
$ chown -R elk.elk /etc/sysconfig/elasticsearch
  | 
 
启动服务
1
  | 
$ /usr/share/elasticsearch/bin/elasticsearch &
  | 
 
安装kibana(162)
安装RPM包
1
  | 
$ rpm -ivh kibana-7.4.1-x86_64.rpm 
  | 
 
编辑参数
1
2
3
4
5
  | 
$ vi /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://10.0.139.162:9200"]
i18n.locale: "zh-CN"
  | 
 
启动服务
1
  | 
/usr/share/kibana/bin/kibana &
  | 
 
安装zookeeper(162)
解压安装包
1
2
3
  | 
$ tar -xvf apache-zookeeper-3.5.5-bin.tar.gz 
$ mv apache-zookeeper-3.5.5-bin /usr/local/zookeeper
$ chown -R elk.elk /usr/local/zookeeper
  | 
 
加入环境变量
1
2
3
  | 
$ echo "export PATH=$PATH:/usr/local/zookeeper/bin" >> /etc/profile
$ echo "export ZOOKEEPER_HOME=/usr/local/zookeeper"
$ source /etc/profile
  | 
 
创建数据目录
1
2
3
  | 
$ mkdir /service/elk/zookeeper/data -p
$ mkdir /service/elk/zookeeper/logs -p 
$ chown -R elk.elk /service/elk
  | 
 
编辑配置文件
1
2
3
4
5
6
7
  | 
$ cat /usr/local/zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/service/elk/zookeeper/data
dataLogDir=/service/elk/zookeeper/logs
clientPort=2181
  | 
 
编辑服务
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
  | 
$ cat /etc/systemd/system/zookeeper.service
[Unit]
Description=zookeeper
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
Restart=always
User=elk
Group=elk
[Install]
WantedBy=multi-user.target
  | 
 
启动服务
1
  | 
$ systemctl start zookeeper
  | 
 
安装Kafka(162)
解压安装包
1
2
3
  | 
$ tar -xvf kafka_2.12-2.3.0.tgz
$ mv kafka_2.12-2.3.0 /usr/local/kafka
$ chown -R elk.elk /usr/local/kafka/
  | 
 
加入环境变量
1
2
  | 
$ echo "export PATH=$PATH:/usr/local/kafka/bin" >> /etc/profile
$ source /etc/profile
  | 
 
修改配置文件
1
2
  | 
$ cat /usr/local/kafka/config/server.properties
zookeeper.connect=10.0.139.162:2181
  | 
 
启动服务
1
  | 
$ kafka-server-start.sh /usr/local/kafka/config/server.properties &
  | 
 
安装filebeat(163)
解压安装包
1
2
  | 
$ tar -xvf filebeat-7.4.1-linux-x86_64.tar.gz
$ mv filebeat-7.4.1-linux-x86_64 /usr/local/filebeat
  | 
 
编辑配置文件
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
  | 
$ vi /usr/local/filebeat/filebeat.yml
#=========================== Filebeat inputs =============================
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /service/mysql/data/mysqld.log
#-------------------------- Kafka output ------------------------------
output.kafka:
  enabled: true
  hosts: ["10.0.139.162:9092"]
  topic: test
  | 
 
Tips: 需要注释Elasticsearch output模块
启动服务
1
  | 
$ /usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml &
  | 
 
kafka建立一个消费者测试
1
  | 
$ kafka-console-consumer.sh --bootstrap-server 10.0.139.162:9092 --topic test --from-beginning
  | 
 
安装Logstash(161)
安装RPM包
1
  | 
$ rpm -ivh logstash-7.4.1.rpm 
  | 
 
编辑参数文件
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
  | 
$ vi /etc/logstash/logstash-simple.conf
input {
  kafka {
    bootstrap_servers => ["10.0.139.162:9092"]
    group_id => "logstash"
    topics => ["test"]
    decorate_events => true
    consumer_threads => 5
    codec => "json"
  }
}
output {S
  elasticsearch {
    hosts => ["10.0.139.162:9200"]
    index => "kafka-%{+YYYY.MM.dd}"
  }
  stdout { codec => rubydebug }
}
  | 
 
启动服务
1
  | 
/usr/share/logstash/bin/logstash -f /etc/logstash/logstash-simple.conf --config.reload.automatic --path.data=/service/elk/logstash/data &
  | 
 
配置Kibana(162)
创建索引模式

查看日志信息

参考链接
1. Logstash 最佳实践
2. ELK+grok收集mysql慢查询日志