码迷,mamicode.com
首页 > 其他好文 > 详细

Elk+filebeat收集docker集群swarm中的nginx和tomcat容器的日志信息

时间:2018-07-20 20:07:56      阅读:684      评论:0      收藏:0      [点我收藏+]

标签:本地   for   inpu   font   51cto   start   debug   geoip   集群   

前言: 之前有说过elk收集nginx日志,

现在来说一下收集容器集群的日志收集Elk的安装这里不在说了,上来直接怼,

这里是elk的服务器:的服务状态:以及端口

 技术分享图片

 

Logstash是主要的配置内容这里:

如下

 

 技术分享图片

技术分享图片

input {

    beats {

            port => 5044

    }

}

 

filter {

    if "nginx-accesslog" in [tags] {

        grok {

                match => { "message" => "%{HTTPDATE:timestamp}\|%{IP:remote_addr}\|%{IPORHOST:http_host}\|(?:%{DATA:http_x_forwarded_for}|-)\|%{DATA:request_method}\|%{DATA:request_uri}\|%{DATA:server_protocol}\|%{NUMBER:status}\|(?:%{NUMBER:body_bytes_sent}|-)\|(?:%{DATA:http_referer}|-)\|%{DATA:http_user_agent}\|(?:%{DATA:request_time}|-)\|"}

        }

        mutate {

                convert => ["status","integer"]

                convert => ["body_bytes_sent","integer"]

                convert => ["request_time","float"]

        }

        geoip {

                source=>"remote_addr"

        }

        date {

                match => [ "timestamp","dd/MMM/YYYY:HH:mm:ss Z"]

        }

        useragent {

                source=>"http_user_agent"

        }

}

 

 

 

 

   if "tomcat-catalina" in [tags] {

       grok {

                match => { "message" => "%{HTTPDATE:timestamp}\|%{IP:remote_addr}\|%{IPORHOST:http_host}\|(?:%{DATA:http_x_forwarded_for}|-)\|%{DATA:request_method}\|%{DATA:request_uri}\|%{DATA:server_protocol}\|%{NUMBER:status}\|(?:%{NUMBER:body_bytes_sent}|-)\|(?:%{DATA:http_referer}|-)\|%{DATA:http_user_agent}\|(?:%{DATA:request_time}|-)\|"}

        }

      

       mutate {

                convert => ["status","integer"]

                convert => ["body_bytes_sent","integer"]

                convert => ["request_time","float"]

        }

      date {

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

    }

 

}

}

 

output {

    elasticsearch {

      hosts => ["192.168.9.35:9200"]

        index => "logstash-%{type}-%{+YYYY.MM.dd}"

        document_type => "%{type}"

    }

#    stdout { codec => rubydebug }

}

 

 

 

 

 

 

然后可以启动:

 

 

nohup  logstash -f /etc/logstash/conf.d/logstrash-test.conf  >/dev/null  

 

技术分享图片 

接下来开始配置docker集群中的filbeate

 

 

先说一下我们这里的docker启动的是集群模式,我将容器的日志目录映射到了本地宿主机上的目录了,

技术分享图片

可以在本地上看一下:

 

技术分享图片

技术分享图片 

容器的状态:

技术分享图片 

 

Filebeat是轻量级的工具省很多的资源开销:

 

 

这里安装的时候直接使用

 

rpm -ivh filebeat-5.5.1-x86_64.rpm

技术分享图片 

 技术分享图片

filebeat.prospectors:

- input_type: log

  paths:

    - /var/log/docker-nginx/access_json.log

  tags: ["nginx-accesslog"]

  document_type: nginxaccess

- input_type: log

  paths:

    - /var/log/docker-tomcat/catalina.out

  tags: ["tomcat-catalinaout"]

  document_type: tomcatcatalina

tags: ["nginx-test-194"]

output.logstash:

  hosts: ["192.168.9.35:5044"]

 

 

 

 

 

完成之后启动filebeat即可:

 

 

Systemctl  restart  filebeat

 

 

然后通过curl 或者http

技术分享图片

技术分享图片

进行对容器的访问可以查看到日志已经呗输入到了es存储中

 技术分享图片

 

可以看一下里面的数据:

技术分享图片

比如查看一下nginx的日志:

技术分享图片技术分享图片

接下来在kibana当中去创建一个一索引开头的日志格式

技术分享图片

技术分享图片

然后就可以看到了访问到的内容了

 

 

技术分享图片

技术分享图片 

 

 

其他容器的也就这样的道理,可以收集,如果日志多了可以上rediskafka


Elk+filebeat收集docker集群swarm中的nginx和tomcat容器的日志信息

标签:本地   for   inpu   font   51cto   start   debug   geoip   集群   

原文地址:http://blog.51cto.com/xiaorenwutest/2147860

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!