• 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}"
            }
        }
    }
    
  • 相关阅读:
    SDN大作业
    第06组 Beta版本演示
    SqlServer 将多行字段合并成单行
    C# MD5加密字符串
    Request.IsAjaxRequest()总是返回false
    Mybatis 语句包含单引号的写法
    idea每次启动maven项目都貌似读不到配置
    idea下springboot项目配置文件application.properties不生效的问题
    Ubuntu 设置时区
    SpringBoot 使用MyBatis
  • 原文地址:https://www.cnblogs.com/ningyouyou/p/16363984.html
Copyright © 2020-2023  润新知