zoukankan      html  css  js  c++  java
  • zabbix日志监控

    一般情况下,日志最先反映出应用当前的问题,在海量日志里面找到我们异常记录,例如监控系统日志、nginx、Apache、业务日志,然后记录下来,并且根据情况报警。

    1、日志监控项介绍

    最主要的是监控日志文件中有没有某个字符串的表达式,对应日志轮转与否,zabbix都支持。

    在配置Item的时候,Type选择Zabbix agent (active),这里主要需要配置的是Key。下面是监控日志的两种key——log和logtr。

    log[/path/to/some/file,<regexp>,<encoding>,<maxlines>,<mode>,<output>]

    logtr[/path/to/some/filename_format,<regexp>,<encoding>,<maxlines>,<mode>,<output>]

    ◆ regexp:要匹配内容的正则表达式,或者直接写你要检索的内容也可以,例如我想检索带ERROR关键词的记录

    ◆ encoding:编码相关,留空即可

    ◆ maxlines:一次性最多提交多少行,这个参数覆盖配置文件zabbxi_agentd.conf中的'MaxLinesPerSecond',我们也可以留空

    ◆ mode:默认是all,也可以是skip,skip会跳过老数据

    ◆ output:输出给zabbix server的数据。可以是1、2一直9,1表示第一个正则表达式匹配出得内容,2表示第二个正则表达式匹配错的内容。

    如果仔细看可以发现,第一个参数不一样,logrt的第一个参数可以使用正则表达式。针对日志回滚用得,例如我们每天都切割nginx日志,日志名为www.a.com_2015-01-01.log、www.a.com_2015-01-02.log等等,使用log肯定不合适,如果文件名使用正则,那么新增的日志文件会立即加入监控。

    备注:不管新日志、老日志,只要他们有变更,zabbix都会监控。

    只要配置了<regexp>,Zabbix会根据<regexp>的正则表达式来匹配日志中的内容。注意,一定要保证Zabbix用户对日志文件有可读权限,否则这个Item的状态会变成"unsupported"。

     

    2、监控原理及注意事项

    Zabbix Server和Zabbix Agent会追踪日志文件的大小和最后修改时间,并且分别记录在字节计数器和最新的时间计数器中。

    Agent会从上次读取日志的地方开始读取日志。

    字节计数器和最新时间计数器的数据会被记录在Zabbix数据库,并且发送给Agent,这样能够保证Agent从上次停止的地方开始读取日志。

    当日志文件大小小于字节计数器中的数字时,字节计数器会变为0,从头开始读取文件。

    所有符合配置的文件,都会被监控。

    一个目录下的多个文件如果修改时间相同,会按照字母顺序来读取。

    到每个Update interval的时间时,Agent会检查一次目录下的文件。

    Zabbix Agent每秒发送日志量,有一个日志行数上限,防止网络和CPU负载过高,这个数字在zabbix_agentd.conf中的MaxLinePerSecond。

    在logtr中,正则表达式只对文件名有效,对文件目录无效。

     

    示例:监控zabbix server日志

    3、创建日志监控项

    配置——>主机,找到zabbix server,监控项——>创建监控项

    类型:必须选择zabbix客户端(主动式),因为数据是zabbix被监控的主动提交给server

    键值:自定义,参数为日志文件的路径等

    信息类型:日志

    应用集:日志

    查看最新数据

     

    4、创建触发器

    例如当重启服务的时候进行报警,原理是通过过滤关键字进行报警

    配置——>主机,找到zabbix server,触发器——>创建触发器

    过滤关键字添加生成表达式

    设置报警严重性级别为"严重"

    日志监控至此完成,接下来就是触发报警了

  • 相关阅读:
    桥接模式(从多个角度对实现进行分类)
    单例模式
    组合模式(解决 树形 ,局部与整体关系)
    备忘录模式
    适配器模式
    状态模式
    StartUML建模及生成java实体代码
    JPA删除接口报错 : org.hibernate.LazyInitializationException: failed to lazily initialize a collection, could not initialize proxy
    idea创建的gradle项目没有src目录怎么办?
    idea spring源码 gradle编译失败问题
  • 原文地址:https://www.cnblogs.com/ssgeek/p/9282078.html
Copyright © 2011-2022 走看看