之前自己在windows的开发环境下部署了一套ELKB日志收集系统,现在也需要在linux的生产环境下部署一套,现在记录一下部署的过程。
1、安装Elasticsearch
查找并拖取镜像
docker search elasticsearch
docker pull elasticsearch:7.2.1
注意,这里pull的时候需要加上版本号,否则会报错,称找不到对应的版本。
安装完成之后通过命令启动。
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name elasticsearch -d elasticsearch:7.2.1
此时通过访问服务器9200端口,有返回代表启动成功。
2、安装Kibana
如上下载镜像
docker pull kibana:7.2.1
通过命令行启动:
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://(此处填写你的服务器IP):9200 -p 5601:5601 -d kibana:7.2.1
此时访问5601端口,出现如下即代表成功
3、安装Logstash
如上下载镜像
docker pull logstash:7.2.1
因为需要从filebeat中获取数据,需要修改logstash.conf:
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["http://(此处填写你的服务器IP):9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
stdout {
codec=>rubydebug
}
}
启动命令如下:
docker run -di --name=logstash -v /home/wongws/docker_elkb/logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf -p 5044:5044 -p 9600:9600 logstash:7.2.1
其中对logstash.conf路径进行映射
4、安装Filebeat
如上下载镜像
docker pull docker.elastic.co/beats/filebeat:7.2.1
此处也需要对filebeat.yml进行配置:
# Change to true to enable this input configuration.
enabled: true
# Paths that should be crawled and fetched. Glob based paths.
paths:
- /var/log/*.log
#- c:\programdata\elasticsearch\logs\*
#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
# Array of hosts to connect to.
#hosts: ["localhost:9200"]
# Optional protocol and basic auth credentials.
#protocol: "https"
#username: "elastic"
#password: "changeme"
#----------------------------- Logstash output --------------------------------
output.logstash:
# The Logstash hosts
hosts: ["114.67.71.72:5044"]
# Optional SSL. By default is off.
# List of root certificates for HTTPS server verifications
#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
# Certificate for SSL client authentication
#ssl.certificate: "/etc/pki/client/cert.pem"
# Client Certificate Key
#ssl.key: "/etc/pki/client/cert.key"
主要讲enabled改成true,另外设置自己的日志路径/var/log/*.log。注释Elasticsearch output,启用Logstash output。
启动命令如下:
docker run --name filebeat -d -v /home/wongws/docker_elkb/filebeat/config/filebeat.yml:/usr/share/filebeat/filebeat.yml -v /home/wongws/logs:/var/log docker.elastic.co/beats/filebeat:7.2.1
其中需要对filebeat.yml和日志文件路径映射。
===========================================
若是ELKB全部启动成功之后,还是无法正常查看kibana,则需要观察各个模块的日志。看看哪里是否配置错误了。