北京哪家医院白癜风专科最好 https://wapjbk.39.net/yiyuanfengcai/zn_bjzkbdfyy/日志分析系统可以实时收集、分析、监控日志并报警,当然也可以非实时的分析日志。网友介绍说splunk是功能强大且用起来最省心的,但是要收费,免费版有每天M的限制,超过M的日志就没法处理了。ELK系统是最常见的,据说缺点是配置麻烦一些,比较重量级。graylog是开源免费的,配置上要比ELK系统简单。综上,本文尝试容器方式搭建一套graylog系统,不做实时收集日志和报警的配置,只完成非实时被动接收网站日志,分析日志各项指标的功能。
拉取如下三个镜像
dockerpullmongo:3
dockerpulldocker.elastic.co/elasticsearch/elasticsearch-oss:6.8.10
dockerpullgraylog/graylog:3.3
不要急着按照网上的方法启动镜像,我开始docker启动elasticsearch,虽然显示启动成功,但过半分钟后偷偷退出,这导致graylog在浏览器打不开。最后通过查看容器启动时的日志,发现elasticsearch对于系统参数是有要求的,按如下修改。
在/etc/sysctl.conf文件最后添加一行
vm.max_map_count=
vi/etc/security/limits.conf
*-nofile
修改完成后重启系统使变量生效。
docker启动elasticsearch时要加上参数--ulimitnofile=:--ulimitnproc=:,确保容器内环境满足要求,否则容器偷偷退出,在dockerpa-a命令下会看见exit(78)或exit(1)的错误。
查看容器启动报错最准确的方法是“dockerlogs-f容器ID”这个命令,我们不加--ulimit参数试试
[root
bogon~]#dockerps
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
7e4ad9docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.10/usr/local/bin/dock6secondsagoUp4seconds0.0.0.0:-/tcp,0.0.0.0:-/tcpelasticsearch
用上面的CONTAINERID产看启动时的日志
[root
bogon~]#dockerlogs-f7e4ad9
最后会打印出
[1]:maxfiledescriptors[]forelasticsearchprocessistoolow,increasetoatleast[]
[2]:maxnumberofthreads[]foruser[elasticsearch]istoolow,increasetoatleast[]
...][o.e.n.Node][WG6mVz4]closed两行toolow的提示就是容器退出的原因。
三个容器的启动命令如下
dockerrun--namemongo-dmongo:3
dockerrun--nameelasticsearch\
-e