通过logstash过滤nginx-error日志,筛选日志中比较严重报错,并进行报警。
为阜阳等地区用户提供了全套网页设计制作服务,及阜阳网站建设行业解决方案。主营业务为成都网站设计、成都网站制作、阜阳网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!由于网络上很多帖子都是要么写了怎么筛选报错,要么就只翻译了logstash-zabbix-output插件的使用说明,并没有一个完整的配置,整个项目做完,整理出来供大家阅读。
【软件版本】
zabbix 版本:2.4.8
logstash 版本:2.4.0
JDK 版本: 1.8.0_101
【zabbix配置】
首先配置zabbix的item,使其能够成功接收logstash发送过来的信息.
创建Template:“Configuration” -> “Templates” -> “Create template”
这里我对Template的名字叫“Log file check”
然后创建Application:“Create applicaton”
Application名字还叫“Log file check”
最后创建item:“Create item”:
注意四个地方:
Type 一定要选择“Zabbix trapper”,否则无法接收logstash发送的信息;
Key 一定要写正确,最好不要有空格,需要在logstash中配置;
Type of information 选择 “Text”,因为我传过来的值是一段报错日志,所以选择文本;
Allowed hosts:允许传送的主机,一定要设定为logstash所在的主机。
【Logstash配置】
注:logstash的下载及安装不介绍。
安装目录:/opt/logstash/
由于日志量并没有达到上W级,因此针对logstash进行了一些优化,降低了部分性能:
# vim /opt/logstash/bin/logstash LS_HEAP_SIZE=500m LS_JAVA_OPTS="-server -Xmx200m"【安装logstash-output-zabbix插件】
/opt/logstash/bin/logstash-plugin install logstash-output-zabbix
logstash 配置文件:
input { file { type => "error-log" # 指定类型,用于以后判断操作 path => "/tmp/test.log" # 文件路径 start_position => "beginning" # 文件开始位置 codec => multiline { # 使用多行匹配方式进行过滤 pattern => "^\d{4}" # 以4个数字开头的为第一行, negate => true # 所有不以4个数字开头的,均归于上一行(下面what配置) what => "previous" } } } filter { grok { match => { message:\s+\n.*Code:(?\d+).*Message:(?.+)\n.*File:(?.+)\n.*Line:(?\s+\d+).*" # 对于匹配规则,还是要针对自己场景自己写 } add_tag => [ "zabbix-sender" ] # 添加一个标签 add_field => [ # 设定agent主机的主机名和key的映射 "zabbix_host", "web01", # 主机名 "zabbix_key", "logstash" # 添加item时,设定的key名称 ]} if "_grokparsefailure" in [tags] { # 如果过滤报错,那么移除报错标签,不进行其他处理 mutate { remove_tag => "_grokparsefailure" } }
}
output { # 输出配置
stdout { # 测试时可以开启终端输出
codec => rubydebug
#codec => json # 可以选择json格式的输出还是rubydebug格式的输出
}
zabbix { # 发送给zabbix的配置
zabbix_host => "zabbix_host" # zabbix_host指上面映射的主机,不能用ip
zabbix_key => "zabbix_key" # zabbix_key指上面映射的key,意思就
是发送给某主机的某key,值为zabbix_value
zabbix_server_host => "192.168.1.229" # zabbix server
zabbix_server_port => "10051" # zabbix server port 默认为10051
zabbix_value => "Message" # 要发送的key值
}
}如果需要进行测试,可以在zabbix agent使用zabbix_sender进行测试:
/opt/zabbix/sender -z zabbix-server -p port -s agentservername -k keyname -o keyvalue所有配置完成后,可以在监测日志文件中输入一些测试数据,并在zabbix web上查看是否正常出现数据:
【配置报警】
“configuration” -> “Templates” -> “Triggers” -> “Create Trigger”:
Name:log error check
Expression:判断获取值的长度是否为0,如果不为0,trigger为problem状态,发送报警
其他关于报警相关配置请自行某度······
参考资料:
http://blog.sina.com.cn/s/blog_7ba28b620102xw2w.html
https://www.elastic.co/guide/en/logstash/current/plugins-outputs-zabbix.html
https://www.zabbix.org/wiki/Docs/protocols/zabbix_sender/2.0
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章标题:Logstash整合zabbix过滤Nginx错误日志并进行报警-创新互联
文章来源:http://kswsj.cn/article/ppshi.html