其他分享
首页 > 其他分享> > docker部署filebeat

docker部署filebeat

作者:互联网

拉取镜像

docker pull elastic/filebeat:7.12.0

运行镜像

docker run -d --name=elk-filebeat elastic/filebeat:7.12.0

说明:因为filebeat的配置文件修改需要权限,我们不能直接在容器中修改,所以我们就临时启动一个filebeat镜像服务,将我们的filebeat容器中的配置文件拷贝与我们的虚拟机,在虚拟机中授权修改配置文件,然后同步到我们的容器中。

拷贝配置文件

docker cp elk-filebeat:/usr/share/filebeat /opt/elk/

授权

chmod 777 -R /opt/elk/

给filebeat的配置文件filebeat.yml授权

chmod go-w /opt/elk/filebeat/filebeat.yml

创建一个log122目录,用于存放同步的日志文件

mkdir /opt/elk/filebeat/log122

修改filebeat.yml的配置

数据输入配置

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /usr/share/filebeat/log122/*.log
filebeat.config:
  modules:
    path: ${path.config}/modules.d/*.yml
    reload.enabled: false
processors:
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
  
#数据输出到kafka配置
output.kafka:
  # initial brokers for reading cluster metadata
  hosts: ["192.168.1.120:9091", "192.168.1.120:9092", "192.168.1.120:9093"]
 
  # message topic selection + partitioning
  topic: 'log122'
  partition.round_robin:
    reachable_only: false
 
  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000

移除我们的临时filebeat容器

docker rm -f elk-filebeat

重启一个新的容器

docker run -d --name=elk-filebeat --restart=always --user=root --privileged=true -v /elk/filebeat:/usr/share/filebeat elastic/filebeat:7.12.0

启动查看日志

docker logs elk-filebeat

修改logstash服务的配置

input{
       #方式一:直接通过logback收集日志 
       tcp{
           port => 5044
           type => "simplelog"
           codec => "json_lines"
       }
       #方式二:kafka方式
       kafka {
           type => 'kafka'
           bootstrap_servers => "kafka01:9092,kafka02:9092,kafka03:9092"
           topics => "test"
           group_id => "elk"
    }
}
 
output{
    #普通方式
    if [type] == 'simplelog'{
        elasticsearch {
            #es地址
            hosts => ["es01:9200","es02:9200","es03:9200"]
            #索引
            index => "elk-cluster-logstash-01-%{[app]}-%{+YYYY.MM.dd}"
        }
    }
    #kafka方式
    if [type] == 'kafka'{
        elasticsearch {
            #es地址
            hosts => ["es01:9200","es02:9200","es03:9200"]
            #索引
            index => "elk-simplelog-%{+YYYY.MM.dd}"
        }
    }
}

标签:elk,filebeat,9200,配置文件,部署,kafka,docker
来源: https://www.cnblogs.com/ningyouyou/p/16363984.html