docker搭建elk初体验
前言:在平日的开发生活中,沉浸与MySQL或Redis之类,关系型数据库或者非关系型数据库时,常会思考像商城项目中的检索,都是用什么数据库实现的呢,偶尔的机会,基础到了ELK搭建而成的日志系统,细致了解后诞生了与Elasticsearch的一见钟情。
这篇文章将着重于我对ELK的搭建初体验,基于部署和安装的方便,也为了巩固Docker相关的知识点的学习和熟练运行,尝试在使用Docker来搭建整个ELK系统。
1、安装ES
1.1、从docker仓库中拉取es镜像文件
代码语言:javascript复制docker pull elasticsearch:7.7.1
1.2、创建本地文件夹并授权。
这里注意,在使用容器外部挂载文件时,一定要给当前文件授予相关的权限,否则启动容器会报错,无法访问文件。
代码语言:javascript复制mkdir -p /wuming/elk/es/{config, data, logs}
chown -R 1000:1000 /wuming/elk/es
1.3、创建elasticsearch.yml并编写配置
代码语言:javascript复制cd /wuming/elk/es/config
touch elasticsearch.yml
# 配置内容
cluster.name: "my-es"
network.host: 0.0.0.0
http.port: 9200
1.4、启动es容器
代码语言:javascript复制docker run -it -d -p 9200:9200 -p 9300:9300 --name es -e ES_JAVA_OPTS="-Xms1g -Xmx1g" -e "discovery.type=single-node" --restart=always
-v /wuming/elk/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-v /wuming/elk/es/data:/usr/share/elasticsearch/data
-v /wuming/elk/es/logs:/usr/share/elasticsearch/logs
elasticsearch:7.7.1
这样启动后,执行docker命令查看容器的状态。容器为运行状态则表示es容器创建成功。
2、安装kibana
kibana是操作es的一个可视化工具,在elk作为日志系统时,通过kibana来检索和查看日志系统中的日志信息
2.1、拉取kibana镜像
代码语言:javascript复制docker pull kibana:7.7.1
2.2、获取es的虚拟ip
代码语言:javascript复制# 获取es的ip 172.17.0.3
docker inspect --format '{{ .NetworkSettings.IPAddress }}' es
2.3、创建配置文件
代码语言:javascript复制mkdir -p /wuming/elk/kibana/
vi /wuming/elk/kibana/kibana.yml
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: ["http://172.17.0.3:9200"]
xpack.monitoring.ui.container.elasticsearch.enabled: true
2.4、创建容器
代码语言:javascript复制docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kibana -p 5601:5601 -v /wuming/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.7.1
3、安装logstash
logstash用于获取新项目日志信息的获取并保存到ES中。
3.1、拉取容器
代码语言:javascript复制# 拉取镜像
docker pull logstash:7.7.1
3.2、创建配置文件
代码语言:javascript复制# 创建配置文件
mkdir /wuming/elk/logstash/conf.d
cd /wuming/elk/logstash
# 编辑文件信息
vi logstash.yml
path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
3.3、编辑配置文件
代码语言:javascript复制cd /wuming/elk/logstash/conf.d
vi test.conf
# 收录springboot项目日志配置 test.conf
input {
tcp {
port => 5044
}
}
output {
elasticsearch {
hosts => ["172.17.0.3:9200"]
}
stdout {}
}
# 以下为filebeat的配置
input {
beats {
port => 5044
codec => "json"
}
}
# 保存日志到es中
output {
elasticsearch { hosts => ["172.17.0.3:9200"] }
stdout { codec => rubydebug }
}
3.4、安装logstash
代码语言:javascript复制docker run -it -d -p 5044:5044 -p 5045:5045 -p 5046:5046 --name logstash
-v /wuming/elk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml
-v /wuming/elk/logstash/conf.d/:/usr/share/logstash/conf.d/
logstash:7.7.1
这样,只需要在项目的日志文件中配置日志输出的服务器地址后,就可以在ELK上查看日志信息啦。