你知道么,zabbix可以对ELK的日志监控告警了

500 阅读2分钟

监控思路:zabbix通过http代理方式,zabbix通过http方式定期去调用ELK查询。zabbix即获得ELK查询结果。然后zabbix为ELK查询结果中的某个字段值设置监控并配置触发器,触发zabbix告警
具体例子:
ELK日志原文

<37>Aug 16 11:38:41 JQ_Juniper_SRX4100_active sshd: *SSHD_LOGIN_FAILED*: Login failed for user 'xxx' from host '127.0.0.1'

1.ELK中配置查询语句

查询语句调试位置: kibana--->开发工具

GET /syslog-*/_search?
{
  "query": {
    "bool": {
      "must": [],
      "filter": [
        {
         "match_all": {}
        },
        {
          "range": {
            "@timestamp": {
              "format": "strict_date_optional_time",
              "gte": "now-5m",
              "lte": "now"
            }
          }
        },
        {
          "match": {
            "event_name": "SSHD_LOGIN_FAILED"
          }
        }
      ],
      "should": [],
      "must_not": []
    }
  },
  "size": 1
}

5分钟没有登录失败时,可以看到value值为0 image.png

15天有登录失败日志时,可以看到value值大于0(我的ELK日志里是有3条登录失败日志) image.png 所以zabbix可以通过对value值的监控来判断ELK中是否存在登录失败记录。当发现有失败登录记录时,zabbix触发告警通知用户。

下面就来配置zabbix
2.zabbix配置

在zabbix选择一台主机(主机网络和ELK网络能互通即可) 配置---->主机----->选择网络能与ELK互通的主机---->选择监控项---->创建监控项

image.png

image.png 点击zabbix的 检测----->最新数据--->找到对应主机和刚配置的监控项

image.png 可以看到zabbix这边已经能拿到ELK的数据了。点开历史记录查看详细信息,可以看到数据格式是json的。但zabbix没法对整段json数据进行判断是否要触发告警。所以我们真正想要的数据值是这个value的值。然后针对这个value值设置配置告警。

image.png 获取value值配置:
回到主机配置那

image.png

image.png

image.png 配置好后选择更新,然后去查看zabbix最新数据(一般要等一会)

image.png 我们看到已经能拿到value值了,然后针对value值配置触发器和告警即可。vaule值大于0就触发告警。(都是会配置触发器和告警的大佬,这里就不展示配置了) 最后实现告警如下:

image.png