千家信息网

Logstash整合zabbix 过滤Nginx 错误日志并进行报警

发表于:2024-10-01 作者:千家信息网编辑
千家信息网最后更新 2024年10月01日,通过logstash过滤nginx-error日志,筛选日志中比较严重报错,并进行报警。由于网络上很多帖子都是要么写了怎么筛选报错,要么就只翻译了logstash-zabbix-output插件的使用
千家信息网最后更新 2024年10月01日Logstash整合zabbix 过滤Nginx 错误日志并进行报警



通过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

配置 主机 日志 报警 文件 版本 测试 输出 选择 一行 信息 名字 开头 插件 数字 数据 标签 格式 要么 还是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州市网络安全和信息化产业 万维网服务器的安全配置 服务器硬盘可以在台式电脑上用吗 万和热水器有没水量服务器 软件开发团队人才招募 成都智能家居软件开发 安徽安卓软件开发收费报价表 ibm服务器 400 服务器 8路 香港花旗服务器撤走 学软件开发学什么开发赚钱 吸引人的网络安全宣传标语 关于宣传网络安全的手抄报 智能化浪潮服务器服务商 无数据库搜索技术 简述web服务器安全的几个要素 江西省网络安全研究院揭牌 连云港云服务器供应商 中兴服务器业务占比 如何管理服务器不留登录地址 株洲公安攻防演练网络安全检查 服务器供应商有哪些 sqlyog改数据库大小写 长宁区现代化软件开发节能标准 数据库中的表没有字段 涪陵网络安全大队徐队长 加强纪检监察网络安全教育 南通app软件开发的报价 网络安全由谁管理 享域混动车的参考数据库
0