Zabbix Agent active主动模式监控日志(多关键字)
来源:互联网 发布:日本人用的软件 编辑:程序博客网 时间:2024/05/21 22:35
需求:监控/data/app/app/logs/det.log日志文件,出现关键字BDRC_WARNING则告警,级别为Warning;出现关键字:BDRC_EROROR则告警,级别为Information。
日志监控原理
1、Zabbix Server和Zabbix Agent会追踪日志文件的大小和最后修改时间,并且分别记录在字节计数器和最新的时间计数器中。
2、Agent会从上次读取日志的地方开始读取日志。
3、字节计数器和最新时间计数器的数据会被记录在Zabbix数据库,并且发送给Agent,这样能够保证Agent从上次停止的地方开始读取日志。
4、当日志文件大小小于字节计数器中的数字时,字节计数器会变为0,从头开始读取文件。
5、所有符合配置的文件,都会被监控。
6、一个目录下的多个文件如果修改时间相同,会按照字母顺序来读取。
7、到每个Update interval的时间时,Agent会检查一次目录下的文件。
8、Zabbix Agent每秒发送日志量,有一个日志行数上限,防止网络和CPU负载过高,这个数字在zabbix_agentd.conf中的MaxLinePerSecond。
log文件的item解释
log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>]
file - 日志文件的全路径。
regexp - 过滤日志的正则表达式。
encoding - 字符编码,默认为英文单字节SBCS(Single-Byte Character Set)。
maxlines - agent每秒发送给server(或proxy)的数据的最大行数,这个参数会覆盖掉zabbix_agentd.conf配置文件里的’MaxLinesPerSecond’参数。
mode - 可填参数:all(默认),skip(跳过旧数据)。
output - 自定义格式化输出,默认输出regexp匹配的整行数据。转义字符’\0’表示regexp。
maxdelay-The ‘maxdelay’ parameter in log items allows ignoring some older lines from log files in order to get the most recent lines analyzed within the ‘maxdelay’ seconds.(这一句我翻译不准,所以上上英文~)备注:我推荐大家使用第二个参数,如果只使用第一个参数,将会导致日志文件里的内容统统丢给zabbix_server记录。加上第二个参数时,过滤后的日志内容才会传给zabbix server,大大减少了日志内容占用的空间。
监控端 zabbix_Agentd.conf 的配置调整
zabbix客户端配置主动模式尤为重要。在/etc/zabbix/zabbix-agentd.conf中进行修改
LogFile=/tmp/zabbix_agentd.logStartAgents=0 #客户端agent模式,设置为0表示关闭被动模式Server=**.**.**.** 如果设置为纯被动模式,则应该注释掉这一条指令ServerActive=**.**.**.** #主动模式的server IP地址Hostname=test_host #重要:客户端的hostname,一般使用本机ipRefreshActiveChecks=120 #被监控端到服务器获取监控项的周期,默认120s即可BufferSize=200 #被监控端存储监控信息的空间大小Timeout=10 #超时时间
创建监控项
在zabbix后台管理页面中,选中主机添加监控项。
其中:类型选择Zabbix客户端(主动式)
键值:log[/eric/error_log-20170724.log,”abc|yyy”,,,skip,,]
键值含义见前面item解释。
日志时间格式:yyyy-MM-dd hh:mm:ss,为“年-月-日:小时-分钟-秒”。
类型:Zabbix主动式。zabbix agent检测分为主动(agent active)和被动(agent)两种形式,主动与被动的说法均是相对于agent来讨论的。简单说明一下主动与被动的区别如下:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。
创建触发器
另一个触发器配置同上,不做重复添加哦~
查看数据
手动添加此两个关键字的日志记录,然后在检测中——最新数据中,可以看到拦截这两个关键字的日志记录。出现此两个关键字说明拦截到。
在首页-仪表盘中会看到相关警报(Waring或Information)。
注意:
读取日志时,有时会显示cannot open ‘/data/app/app/logs/det.log’: [13] Permission denied。
原因是:zabbix用户无法读取该日志文件。需要在该日志文件的权限中加入读的权限。即+r
0823日更新
今天开发小哥反应,日志里有关键字报错,然而我们并没有监控到。
反思:昨天还可以的,今天为什么不阔以?
1.难道路径不对,上机器看路径,发现没变。
2.路径都对,难道权限不对?ll一把看看日志权限,发现其他组里面那个r不见了,就是不能读了,怪不得监控不到。
but为什么r不见了呢?原因是每天会新产生一个日志文件,覆盖掉这个文件,然后权限就无效了。
解决方法:
将zabbix用户加入到app用户组(就是文件的拥有者的群组)usermod -a -G app zabbix查看是否加入成功id zabbix查看日志权限ll /data/app/app/logs/xx.log
- Zabbix Agent active主动模式监控日志(多关键字)
- Zabbix Agent active主动模式监控
- Zabbix Agent active批量调整客户端为主动模式监控
- Zabbix技巧系列——利用Agent Active模式监控在NAT网络中的设备
- 设计模式- 主动对象(Active Object)
- 设计模式- 主动对象(Active Object)
- 二. 主动对象(Active Object)模式
- 二. 主动对象(Active Object)模式
- 设计模式- 主动对象(Active Object)
- 主动对象模式(Active Object)
- 部署zabbix agent监控windows
- 服务器监控系统Zabbix的主动监控、SNMP监控、JMX监控图解教程(第五章)
- zabbix agent配置遇到的问题(配置tomcat监控)
- zabbix监控服务器日志
- zabbix 监控日志
- zabbix监控日志文件
- zabbix使用zabbix_java_gateway 监控java应用进程 主动模式 python脚本
- 任务和主动对象(Active Object):并发编程模式
- Redux "使用"教程
- Android Paint的使用详解
- C语言学习
- Unity官方案例精讲笔记-unity脚本事件的执行顺序
- C++中for循环语句简析
- Zabbix Agent active主动模式监控日志(多关键字)
- 在web中判断是否有app,没有则跳转,包括读取a标签参数,获取后台数据
- quartz+oozie+sqoop批量导数
- JSONObject使用方法
- 【整理】I/O复用模型中的 select、poll、epoll
- 采药
- mapdb实现分析
- 闲聊软件测试自动化(3): 我们期望什么样的测试自动化?
- maven出现 invalid LOC header (bad signature)的解决办法