前期准备
创建网络:
docker network create -d bridge efk
目录结构:
|—— filebeat/ // 根目录 ****|—— config/ ********|—— filebeat.yml // filebeat 配置文件 ****|—— project-a/ // 项目A日志目录 ********|—— a.log ********|—— b.log ********|—— ... ****|—— project-b/ // 项目B日志目录 ********|—— a.log ********|—— b.log ********|—— ... ****|—— project-c/ // 项目C日志目录 ********|—— a.log ********|—— b.log ********|—— ... ****|—— docker-compose.yml // docker-compose 配置文件
filebeat/config/filebeat.yml:
filebeat.inputs: - type: log enabled: true paths: - /var/project-a/*.log fields: log_topics: "project-a" - type: log enabled: true paths: - /var/project-b/*.log fields: log_topics: "project-b" - type: log enabled: true paths: - /var/project-c/*.log fields: log_topics: "project-c" setup.template.settings: index.number_of_shards: 3 setup.template.name: "filebeat*" setup.template.pattern: "filebeat*" output.elasticsearch: hosts: [ "elasticsearch643:9200" ] index: "project-other" indices: - index: "project-a" when.contains: fields: log_topics: "project-a" - index: "project-b" when.contains: fields: log_topics: "project-b"
filebeat/docker-compose.yml:
# 版本声明 version: '3.5' services: # 构建后的容器名,容器之间通过该名称进行通信。例:ping go-container elasticsearch643: # 直接使用原镜像 image: elasticsearch:6.4.3 restart: on-failure # 端口映射 ports: - 9200:9200 - 9300:9300 # 定义环境变量 environment: - ES_JAVA_OPTS=-Xms512m -Xmx512m - discovery.type=single-node # 构建后的容器名,容器之间通过该名称进行通信。例:ping go-container kibana643: # 在 mysql-container 容器启动之后再启动 depends_on: - elasticsearch643 # 直接使用原镜像 image: kibana:6.4.3 restart: on-failure # 端口映射 ports: - 5601:5601 # 定义环境变量 environment: - ELASTICSEARCH_URL=http://elasticsearch643:9200 # 构建后的容器名,容器之间通过该名称进行通信。例:ping mysql-container filebeat643: # 在 mysql-container 容器启动之后再启动 depends_on: - elasticsearch643 - kibana643 # 直接使用原镜像 image: job520/filebeat:6.4.3 restart: on-failure # 挂载主机目录 volumes: - ./config/filebeat.yml:/myapp/filebeat.yml - ./project-a:/var/project-a - ./project-b:/var/project-b - ./project-c:/var/project-c # 使用 docker network 创建的网络 networks: default: external: name: efk
filebeat/project-{a,b,c}/{a,b,xxx}.log:
内容随便写
原生 docker 用法
运行
elasticsearch:6.4.3
:docker run --name elasticsearch643 \ --network efk \ -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \ -e "discovery.type=single-node" \ -p 9200:9200 \ -p 9300:9300 \ -d \ elasticsearch:6.4.3
运行
kibana:6.4.3
:docker run --name kibana643 \ --network efk \ -e ELASTICSEARCH_URL=http://elasticsearch643:9200 \ -p 5601:5601 \ -d \ kibana:6.4.3
运行
filebeat:6.4.3
:cd filebeat docker run --name filebeat643 \ --network efk \ -v $PWD/config/filebeat.yml:/myapp/filebeat.yml \ -v $PWD/project-a:/var/project-a \ -v $PWD/project-b:/var/project-b \ -v $PWD/project-c:/var/project-c \ -d \ job520/filebeat:6.4.3
docker-compose 用法
- 启动:
cd filebeat docker-compose up -d
kibana 配置
访问地址:
xx.xx.xx.xx:5601
添加索引:
- 添加自定义显示标题:
- 查看日志详细内容:
文档更新时间: 2024-04-20 10:57 作者:lee