docker logstash log docker logs to elasticsearch

1. 下载logstash镜像

docker pull logstash

2. 下载ElasticSearch并设置远程可访问

    vim elasticsearch/config/elasticsearch.yml

    修改network.host为你本机的IP地址: 我这里是192.168.1.43

    运行ES

3. 编写logstash.conf的配置文件

       因为docker 目前仅支持三种日志系统:syslog(Linux 标准中央日志系统)、GELF(Graylog 和Logstash 支持的Graylog 扩展日志格式)、Fluentd 以及在1.9.0版本支持的AWS CloudWatch。Graylog、Logstash 和Fluentd 是开源的日志管理工具。参考地址

    【https://docs.docker.com/engine/admin/logging/log_tags/】

      所以本文采用的logstash的gelf插件来实现。参考地址

   【 https://www.elastic.co/guide/en/logstash/current/plugins-inputs-gelf.html】

(2) 配置文件内容如下:

    vim logstash-filter.conf

input {
        gelf{}
    }

filter {
        grok {
            match => { "message" => "%{COMBINEDAPACHELOG}" }
            }

   date {
       match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
       }
   
    geoip {
       source => "clientip"
    }
} 

output { 

       elasticsearch {
          hosts => ["192.168.1.43:9200"]
       }
          stdout { codec => rubydebug } 

}

  4. docker 运行logstash

 需要进入到logstash-filter.conf文件所在目录

docker run -i --name=logstash -v $PWD/logstash-filter.conf:/config-dir/logstash.conf logstash -f /config-dir/logstash.conf

5. 产生系统日志

docker run -i --log-driver=gelf --log-opt gelf-address=udp://$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' logstash):12201 --log-opt tag="test" ubuntu /bin/sh -c "while true; do echo My Message \$RANDOM; sleep 1; done;" 

标红logstash就是上面docker logstash运行时指定的容器的名称。可以随意更改。

6.结果

可以看到logstash打印的结果

153600_MyW7_1406293.png

可以查看ES里面的结果

153659_LvHt_1406293.png

如果大家觉得这篇文章对你有用,请随意打赏。

 

 

 

 

转载于:https://my.oschina.net/ayy/blog/819239

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值