Zabbix监控进程日志的配置过程

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

监控日志是运维人员日常生活里必不可少的一个环节,而且日志是一个进程执行的重中之重,由于日志记录了程序运行的吃喝拉撒所有事件,所以在故障排除的时候,结合日志找障碍点是必不可少的!而且我们也会要主动去被提醒日志里的几个重点词语,比如“ERROR!”,比如“WARINIG!”,比如“Alarm!”,比如“女排姑娘好样的你们真给国家争气,看这些女排妹子真喜欢一个个都是大长腿美颜外加D罩杯”。而zabbix作为一个优秀的监控软件,就可以当以上几个关键词出现在日志的第一时间或报警或记录。


举个例子,假设我们要监控一个进程日志,这个进程叫mrs,这个是我公司内部用的是一个程序。而目标就是当这个mrs.log日志里出现ERROR的时候,就要报警,通知悲摧的运维和开发pl们。


首先我们先建立一个item,如图:

wKioL1e6yIaBKKlFAABq0HD0QFg352.png-wh_50

注意一下,这里的type是active,因为被监控的服务器是需要主动把日志送给server端的。而key写的是log[/mnt/hswx/mrs/logs/mrs.log,ERROR,,,,],我这里详细说一下。


log这个key的格式是这样的:log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>],里面各项意思如下:

1
2
3
4
5
6
file :文件名,写绝对路径;
regexp:要匹配内容的正则表达式,或者直接写你要检索的内容也可以,例如我想检索带ERROR关键词的记录;
encoding:编码相关,留空即可;
maxlines:一次性最多提交多少行,这个参数覆盖配置文件zabbxi_agentd.conf中的’MaxLinesPerSecond’,我们也可以留空;
mode:默认是all,也可以是skip,skip会跳过老数据;
output:输出给zabbix server的数据。可以是\1、\2一直\9,\1表示第一个正则表达式匹配出得内容,\2表示第二个正则表达式匹配错的内容。


由于在这里我们只需要挑出"ERROR"的语句,后面的那些七七八八都用不上,所以就直接写log[/mnt/hswx/mrs/logs/mrs.log,ERROR,,,,]就好了。如果要挑选“ERROR 或者 error”,那么就是log[/mnt/hswx/mrs/logs/mrs.log,(ERROR|error),,,,]


日志的格式选择“log”,每10秒钟一次更新,保存90天,这些都是老话常谈。至于Log time format写成yyyy-MM-dd hh:mm:ss是规范了纪录时间的格式,我们采用的格式就是“年-月-日:小时-分钟-秒”,一会就会看到效果。


写完之后,保存,返回到Monitoring---lastest Data,找到我们刚刚建立的这个item,

1.png


点击右侧的history,就可以看到这样的内容了。

wKioL1e61rSgVzmUAADQO9CO8i8250.png

这里的local time就是我们设置item时候的那个log time format,它也的确是按着“年-月-日:小时-分钟-秒”这个格式记录的。


我们可以看到value里说18:39:53有一个ERROR日志,那么登陆到这台服务器上,去服务器的mrs.log里看一下是否有这样一模一样的日志内容呢?

wKiom1e619mDupIWAABUxMN7xHc690.png

可以看到内容是一模一样的,就这样,我们达到了监控日志的目的!


然后就是根据这个item设定trigger和action,这些东西看个人具体需求我也就不赘述了。这里说几个常用的trigger:

1
2
{Template名称:keyi名称].str(ABC)}=1 表示如果匹配到“ABC”关键字,表达式为真。这个与上面那个key合用就是在ERROR的语句里是否含有ABC,如果有,就是真。
{Template名称:keyi名称].nodata(60)}=0 表示60秒内有数据产生则表达式为真,即60秒内如果没有新数据了,则表达式为假。


当然有人会有提问,日志文件在实际生产的时候是常常需要被切割的,比如这个mrs.log,总不会永无止境的保存下去,而是会按时间/大小切成mrs.log.1、mrs.log.2...,既然这样怎么办?那么就要用logrt这个key,这个key是支持正则表达式的,针对上面这个情况我们只需要把原来的key改成“logrt[/绝对路径/mrs.log.*,ERROR,,,,]”就可以啦。


但是要注意哦,logrt只能给文件增加正则表达式,对路径是不支持的~~


如果配置了之后,监控日志没有正确运行,调日志看一下,如果日志显示:

1
  14523:20171214:152022.958 active check  "监控日志的KEY"  is not supported: Cannot obtain information  for  file  "要监控的文件名.log" : [13] Permission denied

那么需要把文件所在的路径都要开r权限。


如果日志里有:

1
   2972:20171214:144031.449 no active checks on server [zabbix服务器IP:10051]: host [服务器 hostname ] not found

那么检查在agentd.conf里的Hostname与web端的host的名称是否一致,这个必须要一致,不然active模式是不会好使的(非active模式没关系)。




 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1841193
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
6月前
|
应用服务中间件 nginx
Nginx进程配置指令详解
Nginx进程配置指令主要包括:`worker_processes`设置工作进程数;`worker_cpu_affinity`绑定CPU核心;`worker_rlimit_nofile`设置最大文件描述符数量;`worker_priority`设置进程优先级;`worker_connections`设置最大连接数;`daemon`控制守护进程模式;`master_process`启用主进程模式;`pid`设置PID文件路径;`user`指定用户和组;`error_log`配置错误日志。这些指令在`nginx.conf`中配置,用于优化和控制Nginx的运行行为。
285 10
|
监控 Linux 应用服务中间件
探索Linux中的`ps`命令:进程监控与分析的利器
探索Linux中的`ps`命令:进程监控与分析的利器
323 13
|
12月前
|
监控
MASM32写的免费软件“ProcView/系统进程监控” V1.4.4003 说明和下载
MASM32写的免费软件“ProcView/系统进程监控” V1.4.4003 说明和下载
|
监控 Ubuntu API
Python脚本监控Ubuntu系统进程内存的实现方式
通过这种方法,我们可以很容易地监控Ubuntu系统中进程的内存使用情况,对于性能分析和资源管理具有很大的帮助。这只是 `psutil`库功能的冰山一角,`psutil`还能够提供更多关于系统和进程的详细信息,强烈推荐进一步探索这个强大的库。
153 1
|
数据采集 监控 API
如何监控一个程序的运行情况,然后视情况将进程杀死并重启
这篇文章介绍了如何使用Python的psutil和subprocess库监控程序运行情况,并在程序异常时自动重启,包括多进程通信和使用日志文件进行断点重续的方法。
|
监控 Windows
Zabbix 5.0 LTS配置中文支持并解决字符乱码问题
文章介绍了如何在Zabbix 5.0 LTS中配置中文支持并解决字符乱码问题,包括在用户设置中选择中文语言和替换默认字体为Windows字体的步骤。
1136 4
|
缓存 Serverless Docker
函数计算产品使用问题之怎么修改Docker守护进程配置
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
消息中间件 JSON 自然语言处理
Python多进程日志以及分布式日志的实现方式
python日志模块logging支持多线程,但是在多进程下写入日志文件容易出现下面的问题: PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。 也就是日志文件被占用的情况,原因是多个进程的文件handler对日志文件进行操作产生的。
|
存储 安全 Python
[python]使用标准库logging实现多进程安全的日志模块
[python]使用标准库logging实现多进程安全的日志模块
306 1
|
消息中间件 JSON 自然语言处理
python多进程日志以及分布式日志的实现方式
python日志在多进程环境下的问题 python日志模块logging支持多线程,但是在多进程下写入日志文件容易出现下面的问题: PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。 也就是日志文件被占用的情况,原因是多个进程的文件handler对日志文件进行操作产生的。

热门文章

最新文章

推荐镜像

更多