docker化笔记三、使用ELK进行容器的日志搜集
编辑文件:/usr/share/elasticsearch/config/elasticsearch.yml。(1)编辑文件:/etc/sysconfig/network-scripts/ifcfg-ens33。2、访问kibana,并设置索引模式,即可在日志查询界面看到搜集的日志。(2)将es的地址信息写入kibana的配置文件,启动时指定配置。(1)修改文件/etc/docker/daemon
此篇会使用之前已搭的应用(宿主机192.168.72.129),详细可参见《docker化笔记二、镜像应用服务日志输出到宿主机器》,同时新建一个宿主机,上面主要部署ELK相关组件。
一、新创建一台宿主机(虚拟机)
可以使用VMware在自己电脑创建一台虚拟机,VMware创建过程可自行百度之,本文所以用机器IP为:192.168.72.130。
修改固定IP如下:
(1)编辑文件:/etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="eabf0e00-7330-4ee1-8832-ff0ea15eb400"
DEVICE="ens33"
ONBOOT=yes
ZONE=public
IPADDR=192.168.72.130
GATEWAY=192.168.72.2
NETMASK=255.255.255.0
DNS1=8.8.8.8
DNS2=114.114.114.114
(2)重启网络服务
service network restart
二、安装Docker
1、docker安装
yum -y install docker
--查看版本
docker version
2、启动docker服务
service docker start
--启动并加入开机启动
systemctl start docker
systemctl enable docker
3、查看本机已有镜像
docker images 或 docker image ls
三、拉取ELK的镜像
1、增加国内拉取镜像的地址,否则会拉取不成功(实在不行就翻墙)
(1)修改文件/etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://mirror.ccs.tencentyun.com"
]
}
(2)重启docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
2、拉取镜像
# 此处使用的是7.15.1的版本
# 192.168.72.130机器拉取如下镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.15.1
docker pull docker.elastic.co/kibana/kibana:7.15.1
docker pull docker.elastic.co/logstash/logstash:7.15.1
docker pull docker.elastic.co/beats/filebeat:7.15.1
# 192.168.72.129机器拉取如下镜像
docker pull docker.elastic.co/beats/filebeat:7.15.1
3、查看本机已有镜像
docker images 或 docker image ls
四、192.168.72.130宿主机进行ELK容器配置和启动
1、创建容器间访问网络
(1)创建
docker network create elk
(2) 查看创建情况
docker network ls
2、启动elasticSearch
(1)启动
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --net elk fa601f7c24cb
(2)查看是否允许成功
访问 http://192.168.72.130:9200
(3)练习时可以禁用Elasticsearch的安全提示
进入容器:docker exec -it 5ce419206cce /bin/bash
编辑文件:/usr/share/elasticsearch/config/elasticsearch.yml
追加一行:xpack.security.enabled: false
退出容器后重启容器:docker restart 5ce419206cce
3、启动kibana
(1)启动
docker run -d --name kibana -p 5601:5601 -e "ELASTICSEARCH_HOST=http://elasticsearch:9200" --net elk 9871707dda25
(2)将es的地址信息写入kibana的配置文件,启动时指定配置
a.查看kibana默认配置文件
docker exec -it 6e9e444bb828 /bin/bash
cat /usr/share/kibana/config/kibana.yml
b.在宿主机中创建一份配置文件,并修改为es容器访问地址
cat /opt/docker/elk/kibana/kibana.yml
server.host: "0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
# 语言
i18n.locale: "zh-CN"
c.重新启动kibana
#重启
docker restart 6e9e444bb828
or
#删除再创建
docker stop 6e9e444bb828(当前镜像id,使用docker ps查看)
docker rm 6e9e444bb828
docker run -v /opt/docker/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml -d --name kibana -p 5601:5601 -e "ELASTICSEARCH_HOST=http://elasticsearch:9200" --net elk 9871707dda25
(3)查看是否允许成功
访问 http://192.168.72.130:5601
3、启动logstash
(1)配置编辑
mkdir -p /opt/docker/elk/logstash
vim /opt/docker/elk/logstash/logstash.yml
vim /opt/docker/elk/logstash/logstash.conf
# logstash.yml
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: elasticsearch:9200
# logstash.conf:filebeat通过4567端口将收集的日志发给logstash,最后输出到es中
input {
beats {
port => 4567
}
}
filter {
#Only matched data are send to output.
}
output {
elasticsearch {
hosts => ["http://elasticsearch:9200"] #ElasticSearch host, can be array.
index => "logapp-%{+YYYY.MM}" #The index to write data to.
}
}
(2)启动运行
docker run -d -p 4567:4567 --net elk --name logstash -p 5044:5044 -p 5045:5045 -v /opt/docker/elk/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf -v /opt/docker/elk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml 852762e1f73f
(3)查看是否运行成功
docker ps
五、192.168.72.129宿主机增加filebeat容器配置和启动
1、启动filebeat
(1)编辑配置文件
cat /opt/docker/elk/filebeat/filebeat.yml
filebeat.inputs:
- type: log
paths:
- /var/log/logapp/*
output.logstash:
hosts: ["192.168.72.130:4567"]
(2)创建日志收集文件(启动应用容器产生日志,参见前面章节)
a.启动应用容器
docker run -d -p 8088:8080 -v /applogs:/dockercontainer/applogs docker-demo:2.0
b.访问地址
http://192.168.72.129:8088/docker/hello
(3)启动运行
docker run -d -u root -v /applogs:/var/log/logapp:rw -v /opt/docker/elk/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro -e setup.kibana.host=192.168.72.130:5601 --name filebeat01 311985fdcf7c
(4)查看是否运行成功
docker ps
2、访问kibana,并设置索引模式,即可在日志查询界面看到搜集的日志
http://192.168.72.130:5601
更多推荐
所有评论(0)