分享

创建基于Docker的E*K(ElasticSearch、Fluentd、Kibana)日志采集系统

 株野 2015-11-17

创建基于Docker的E*K(ElasticSearch、Fluentd、Kibana)日志采集系统

0x23 years old engineer 263 阅读

说道日志采集和可视化,有很多方案,而最多的应该莫过于ELK了(ElasticSearch、Logstash和Kibana),而这一套软件,目前也同归于同一项目: https://www./

不过我日志采集系统我没有使用Logstash,而是采用了Fluentd。

一共有两个Docker镜像,一共是日志采集,即fluentd-agent( https://github.com/liubin/fluentd-agent ),另一个是日志存储(es)和可视化(kibanna)es-dashboard( https://github.com/liubin/es-dashboard )。其中fluentd-agent运行于nginx服务器上(也可以自己修改td-agent.conf来改写规则),而es-dashboard由两个应用组成,es和kibana,它们既可以运行在一个容器中,也可以分开运行,具体见后面说明。

1. 在同一容器中运行es和kibana

sudo docker run -p 9200:9200 -p 9300:9300 -p 5601:5601 liubin/es-dashboard

2. 或者在两个容器中运行es和kibana

2.1. 启动es

sudo docker run -p 9200:9200 -p 9300:9300 liubin/es-dashboard --name es /tmp/start.sh es

2.2. 启动kibana

得到上一个容器的IP地址和es端口后,启动第二个容器

sudo docker run -p 5601:5601 -e ELASTIC_URl=192.168.33.121:9200 --name kibana liubin/es-dashboard /tmp/start.sh kibana

其中,192.168.33.121:9200需要更加情况使用自己的值。

3. 启动fluentd-agent

es服务器启动后,就可以启动agent了,也很简单。

sudo docker run -e ELASTIC_HOST=172.17.0.92 -e ELASTIC_PORT=9200 -v /var/log:/var/log --name agent liubin/fluentd-agent

需要指定ELASTIC_HOST和ELASTIC_PORT两个变量,都是2.1. es启动后得到的值。

之后,既可以到kibana的首页,默认为http://:5601查看结果了。

3. 安全问题

如果将es服务等放到公网,需要注意安全问题,因为默认es和kibana都不带访问控制的,需要自己使用插件或者其他产品,或者防火墙来实现。

这部分参考资料如下:

1. https://www./blog/scripting-security/
2. https://www./products/shield
3. http://www./guide/en/kibana/current/production.html

作者:0x23 years old engineer
Funny life with coding

发表评论

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多