docker-compose配置elk + filebeat(版本:7.16.1)

docker-compose配置elk + filebeat(版本:7.16.1),第1张

docker-compose配置elk + filebeat(版本:7.16.1)

docker-compose配置elk + filebeat(版本:7.16.1)
    • 前言
    • 1 环境
    • 2 拉取镜像
    • 3 创建自定义网络
    • 4 elasticsearch配置
      • 4.1 创建目录
      • 4.2 配置elasticsearch.yml文件
    • 5 kibana配置
      • 5.1 配置kibana.yml文件
    • 6 logstash配置
      • 6.1 logstash.yml文件
      • 6.2 my.conf文件
    • 7 filebeat配置
      • 7.1 创建测试目录
      • 7.2 配置filebeat.yml文件
    • 8 docker-compose.yml文件配置
      • 8.1 配置内容
      • 8.2 启动测试

前言

进行安装配置前先安装好docker和docker-compose

1 环境

CentOS Linux release 7.4.1708 (Core)

2 拉取镜像
docker pull elasticsearch:7.16.1
docker pull kibana:7.16.1
docker pull logstash:7.16.1
docker pull elastic/filebeat:7.16.1
3 创建自定义网络
docker network create somenetwork
4 elasticsearch配置 4.1 创建目录

/mydata/elk/elasticsearch/logs
/mydata/elk/elasticsearch/data
/mydata/elk/elasticsearch/conf

4.2 配置elasticsearch.yml文件

存放位置:/mydata/elk/elasticsearch/conf
配置内容:

# default configuration in docker
cluster.name: "elasticsearch" #集群名
network.host: 0.0.0.0 #主机ip
#network.bind_host: 0.0.0.0
#cluster.routing.allocation.disk.threshold_enabled: false
#node.name: es-master
#node.master: true
#node.data: true
http.cors.enabled: true #允许跨域,集群需要设置
http.cors.allow-origin: "*" #跨域设置
#http.port: 9200
#transport.tcp.port: 9300
#discovery.zen.minimum_master_nodes: 1
#discovery.zen.ping.unicast.hosts: *.*.*.*:9300,  *.*.*.*:9301,  *.*.*.*:9302
5 kibana配置 5.1 配置kibana.yml文件

存放位置:/mydata/elk/kibana/conf
配置内容:

## Default Kibana configuration for docker target
server.name: "kibana"
## 必须设置为0.0.0.0才能访问到elasticsearch
server.host: "0.0.0.0"
## host的公网ip,也可以填写docker-compose.yml中elasticsearch的容器名如 "http://elasticsearch:9200"(前提是同属于一个docker network,且类型为bridge) 
elasticsearch.hosts: [ "http://192.168.226.135:9200" ]
#中文模式
i18n.locale: "zh-CN"
6 logstash配置 6.1 logstash.yml文件

存放位置:/mydata/elk/logstash
配置内容:

http.host: "0.0.0.0"
#配置elasticsearch集群地址
xpack.monitoring.elasticsearch.hosts: [ "http://192.168.226.135:9200" ]
#允许监控
xpack.monitoring.enabled: false
#目录为挂载目录
path.config: /usr/share/logstash/conf/my.conf
6.2 my.conf文件

存放位置:/mydata/elk/logstash/conf
配置内容:

input {
   beats {
     port => 5044
     client_inactivity_timeout => 36000
  }
}
output {
  elasticsearch {
    hosts => ["http://192.168.226.135:9200"]
    index  => "myindex-%{+YYYY.MM}"
  }
}
7 filebeat配置 7.1 创建测试目录

项目日志目录:/var/log/logapp
放入日志文件:xx.log

7.2 配置filebeat.yml文件

存放位置:/mydata/elk/filebeat/conf
配置内容:

# 定义info1应用的input类型、以及存放的具体路径
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/logapp/*.log
  tags: ["logapp"]
  fields:
    index: logapp

#============================= Filebeat modules ===============================
filebeat.config.modules:
  # Glob pattern for configuration loading
  path: ${path.config}/modules.d/*.yml
  # Set to true to enable config reloading
  reload.enabled: true

# ============================== logstash =====================================  
output.logstash:
  hosts: ["192.168.226.135:5044"] #192.168.226.135为logstash安装的服务器ip
  enabled: true
#============================== Kibana =====================================
setup.kibana:
  host: "192.168.226.135:5601"

#============================== elasticsearch =====================================
#output.elasticsearch:
#  hosts: ["192.168.226.135:9200"]
#  enabled: true
8 docker-compose.yml文件配置 8.1 配置内容
version: "3.4" #版本号
services: 
  ########## elk日志套件(镜像版本最好保持一致) ##########
  elasticsearch: #服务名称
    container_name: elasticsearch #容器名称
    image: elasticsearch:7.16.1 #使用的镜像 elastisearch:分布式搜索和分析引擎,提供搜索、分析、存储数据三大功能
    restart: on-failure #重启策略 1)no:默认策略,当docker容器重启时,服务也不重启 2)always:当docker容器重启时,服务也重启 3)on-failure:在容器非正常退出时(退出状态非0),才会重启容器
    ports: #避免出现端口映射错误,建议采用字符串格式
      - "9200:9200"
      - "9300:9300"
    environment: #环境变量设置 也可在配置文件中设置,environment优先级高
      - discovery.type=single-node #单节点设置
      - bootstrap.memory_lock=true #锁住内存 提高性能
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置启动内存大小 默认内存/最大内存
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes: #挂载文件
      - /mydata/elk/elasticsearch/data:/usr/share/elasticsearch/data
      - /mydata/elk/elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - /mydata/elk/elasticsearch/logs:/usr/share/elasticsearch/logs
    networks: #网络命名空间  用于隔离服务
      - somenetwork
  
  kibana:
    container_name: kibana
    image: kibana:7.16.1 #kibana:数据分析可视化平台
    depends_on:
      - elasticsearch
    restart: on-failure
    ports:
      - "5601:5601"
    volumes: 
      - /mydata/elk/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml
    networks:
      - somenetwork
      
  logstash:
    container_name: logstash
    image: logstash:7.16.1 #logstash:日志处理
    command: logstash -f /usr/share/logstash/conf/my.conf
    depends_on:
      - elasticsearch
    restart: on-failure
    ports:
      - "9600:9600"
      - "5044:5044"
    volumes: #logstash.conf日志处理配置文件  格式:#输入 input{}   #分析、过滤 filter{}   #输出 output{} 
      - /mydata/elk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml
      - /mydata/elk/logstash/conf/:/usr/share/logstash/conf/
    networks:
      - somenetwork
     
  filebeat:
    container_name: filebeat
    image: elastic/filebeat:7.16.1 #filebeat:轻量级的日志文件数据收集器,属于Beats六大日志采集器之一
    depends_on: 
      - elasticsearch
      - logstash
      - kibana
    restart: on-failure
    volumes: #filebeat.yml配置.log文件的日志输出到logstash #同时配置挂载需要扫描得日志目录,因为扫描的是filebeat容器内的文件路径
      - /mydata/elk/filebeat/conf/filebeat.yml:/usr/share/filebeat/filebeat.yml
      - /var/log/logapp:/var/log/logapp
    networks:
      - somenetwork
#使用自定义的网桥名字
networks:
  somenetwork: 
    external: true      
8.2 启动测试

命令:docker-compose up -d

kibana测试:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5688578.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存