使用sebp/elk部署

sebp/elk官网

https://elk-docker.readthedocs.io/

拉取镜像

docker pull sebp/elk:8.17.6

启动容器

  • 创建网桥

创建elknet的目的,是为了方便后面filebeat的访问,filebeat访问可以直接使用

docker network create -d bridge elknet
  • 创建数据卷
docker volume create kibana_volume
docker volume create es_volume
docker volume create logstash_volume1
docker volume create logstash_volume2
  • 启动容器
docker run -d -p 5601:5601 -p 5044:5044 -p 9200:9200 -p 9300:9300 \
--network=elknet \
-v kibana_volume:/opt/kibana/config/ \
-v es_volume:/opt/elasticsearch/config \
-v logstash_volume1:/opt/logstash/config \
-v logstash_volume2:/etc/logstash/conf.d/ \
--restart=always --name elk sebp/elk:8.17.6

配置logstash(关闭SSL认证)

cat>/var/lib/docker/volumes/logstash_volume2/_data/02-beats-input.conf<<'EOF'
input {
  beats {
    port => 5044
  }
}
EOF

配置kibana(开启中文化)

sed -i '$a i18n.locale: "zh-CN"' /var/lib/docker/volumes/kibana_volume/_data/kibana.yml

重启ELK

docker restart elk

filebeat部署(采集docker日志)

部署filebeat

  • 创建数据卷
docker volume create filebeat_vloume
  • 启动容器
docker run -d \
--name filebeat \
--user=root \
--network=elknet \
--restart=always \
-v filebeat_vloume:/usr/share/filebeat \
-v /var/lib/docker/containers:/var/lib/docker/containers \
--volume="/var/run/docker.sock:/var/run/docker.sock:ro" \
docker.elastic.co/beats/filebeat:8.17.6 \
filebeat -e --strict.perms=false -c filebeat.yml

更改filebeat配置

cat>/var/lib/docker/volumes/filebeat_vloume/_data/filebeat.yml<<'EOF'
filebeat.inputs:
- type: filestream
  id: my-filestream-id
  paths:
    - '/var/lib/docker/containers/*/*.log'
  prospector.scanner.fingerprint:
    enabled: true
    offset: 0
    length: 64
output:
  logstash:
    enabled: true
    hosts:
      - elk:5044
    timeout: 2
EOF

这里提供另一种input设置,各位替换即可

filebeat.inputs:
- type: filestream
  id: my-filestream-id
  paths:
    - '/var/lib/docker/containers/*/*.log'
  prospector.scanner.fingerprint:
    enabled: true
    offset: 0
    length: 64
  parsers:
    - container:
        stream: all

重启filebeat

docker restart filebeat
docker ps -a
docker logs -f filebeat

验证

虚拟机IP:5601登录kibana创建视图

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐