elk + filebeat 具体配置内容

作者: wo是大富 | 来源:发表于2017-07-04 11:03 被阅读603次

    环境说明:

    OS: centos 7

    内存:12G (三个节点,每个节点配置相同)

    追加: 软件版本: 5.4.1

    节点名称(代替):elk-log-s1 elk-log-s2 elk-log-s3

    kibana安装在 elk-log-s1节点

    logstash安装在 elk-log-s2节点

    elasticsearch三个节点都安装!!

    filebeat在客户端安装,也就是你要收集日志文件的服务器上。

    所有的服务启停都是systemd脚本,因为是直接用rpm包安装。

    kibana部分: /etc/kibana/kibana.yml

    elasticsearch.username: "elastic"

    elasticsearch.password: "elkpasswd"

    server.port: 5601

    server.host: "0.0.0.0"

    elasticsearch.url: "http://elk-log-s1:9200"

    logging.dest: /data/kibana/log/kibana.log

    PS: kibana的systemd脚本没有改动用的默认配置。其他配置默认。

    logstash部分: /etc/logstash/conf.d/f2l.yml 自定义配置文件,/etc/logstash/logstash.yml 默认配置文件,定义一些log、端口、ip之类的信息。

    /etc/logstash/logstash.yml 除了定义这些,其他的也没有修改。

    path.data: /data/logstash

    path.config: /etc/logstash/conf.d

    path.logs: /data/logstash/log

    /etc/logstash/conf.d/f2l.yml 这是自定义的收集日志相关的配置,截取一部分作为说明。

    input {

        beats {

        codec => multiline {

            pattern => "^%{TIMESTAMP_ISO8601}"

            negate => true

            what => "previous"

        }

        port => 5044

        }

    }

    filter {

      if [type] == "elkelk" {

        grok {

            match => { "message" => "(?m)%{TIMESTAMP_ISO8601:timestamp}\s+\[%{DATA:thread}\]\s+%{LOGLEVEL:loglevel}\s+\[%{DATA:TraceId},%{DATA:SpanId},%{DATA:ParentSpanId},%{DATA:Export}\]\s+%{DATA:class}:\s+%{GREEDYDATA:message}" }

            overwrite => ["message"]

            remove_field => [ "YEAR" ,"MONTHNUM","MONTHDAY","HOUR","MINUTE","SECOND","ISO8601_TIMEZONE"]

          }

        date {

           match => [ "timestamp" , "yyyy-MM-dd HH:mm:ss.SSS" ]

           target => "@timestamp"

           remove_field => ["timestamp"]

        }

      }

    }

    output {

     if [type] == "elkelk" {

       elasticsearch {

       hosts => ["http://elk-log-s2:9200"]

       index => "elkelk"

       document_type => "elkelk"

       user => "elk"

       password => "elk"

       }

      }

    }

    上面的格式复制过来后完成变了,不知道怎么弄。。。如果你懂得yaml的话,应该是要注意格式问题的,行缩进之类的。

    elasticsearch部分:

    我是直接将内存参数值调整到一个固定值,没有使用中文指导里面说的那个变量,因为按照说的export并没有启动,其实它是要写到一个配置文件里面去的,这是后来才发现的。那个配置文件就是 /etc/sysconfig/elasticsearch。我是直接改了jvm.options 配置文件,将默认值就行修改,从2g改到6g,因为内存总共就12g,这个文件也就改了这个其他没有修改。

    /etc/elasticsearch/elasticsearch.yml

    cluster.name: elk-elk-log

    path.data: /data/elasticsearch

    path.logs: /data/elasticsearch/log

    network.host: elk-log-s2

    node.name: "node-2"

    http.port: 9200

    node.master: true

    node.data: true

    discovery.zen.ping.unicast.hosts: [elk-log-s2,elk-log-s3,elk-log-s1]

    discovery.zen.minimum_master_nodes: 2

    gateway.recover_after_nodes: 2

    gateway.expected_nodes: 2

    filebeat部分:

    因为所有的hostname部分都是主机名来代替ip设置,所以先要将logstash的ip和hostname写到 /etc/hosts 里面去。再进行下面的配置。

    /etc/filebeat/filebeat.yml

    filebeat.prospectors:

    - input_type: log

       document_type: elkelk

       paths:

    #log文件绝对路径

          - /data/logs/elkelk.log

    output.logstash:

    # The Logstash hosts

        hosts: ["elk-log-s2:5044"]

    PSPS:如果你是用脚本去安装配置,其实 network.host 和 node.name 可以直接写成 “ $HOSTNAME ” ,会自动填写主机名省得每台去上修改。

    差不多就这么多内容。。。以后有想起来的,再进行补充。

    再贴一张图,这是我们小集群目前运行14天的状态,内存虽然已经到了10g,但是会降的。。。哈哈

    相关文章

      网友评论

        本文标题:elk + filebeat 具体配置内容

        本文链接:https://www.haomeiwen.com/subject/dimthxtx.html