Zabbix监控进程日志的配置过程[通俗易懂]

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

大家好,又见面了,我是全栈君。

监控日志是运维人员日常生活里必不可少的一个环节,而且日志是一个进程执行的重中之重,由于日志记录了程序运行的吃喝拉撒所有事件,所以在故障排除的时候,结合日志找障碍点是必不可少的!而且我们也会要主动去被提醒日志里的几个重点词语,比如“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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/108001.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • python进阶(6)深拷贝和浅拷贝[通俗易懂]

    python进阶(6)深拷贝和浅拷贝[通俗易懂]深拷贝和浅拷贝不管对于浅拷贝、还是深拷贝,针对不可变对象str、int、tuple(有点特殊)、boolean,它的内存地址是不变的,拷贝的仅仅是值importcopya=1b=co

  • TCP数据包格式(tcp协议报文格式)

    要想对TCP有着较为详细的了解的话,那TCP的包格式是一定要了解,有了结构的清楚认识才能真正的理解它的工作过程和各种机制的原理,以下就是TCP的结构图:TCP数据包可分为TCP包头和来自应用层的数据两部分TCP段格式中间的标志位就是用于协议的一些机制的实现的比特位大家可以看到有6比特,它们依次如下:    URG、ACK、PSH、RST、SYN、FIN。

  • response的意思_py即时通讯源码

    response的意思_py即时通讯源码源码目录结构get_uniform_comparator作用:将比较器别名转换为统一名称ifcomparatorin["eq","equals",

  • 各种开源数据库同步工具汇总

    (1)OGGOracleGoldenGate是一款实时访问、基于日志变化捕捉数据,并且在异构平台之间迚行数据传输的产品。GoldenGateTDM是一种基于软件的数据复制方式,它从数据库的日志解析数据的变化(数据量只有日志的四分之一左右)。GoldenGateTDM将数据变化转化为自己的格式,直接通过TCP/IP网络传输,无需依赖于数据库自身的传递方式,而且可以通过高达10:1的压缩率对数据迚行压缩,可以大大降低带宽需求。在目标端,GoldenGateTDM可以通过交易重组,分批加载等技术手

  • vue解决跨域的几种办法_前端跨域解决方案

    vue解决跨域的几种办法_前端跨域解决方案什么是跨域  跨域指浏览器不允许当前页面的所在的源去请求另一个源的数据。源指协议,端口,域名。只要这个3个中有一个不同就是跨域。这里列举一个经典的列子:#协议跨域http://a.baidu.com访问https://a.baidu.com;#端口跨域http://a.baidu.com:8080访问http://a.baidu.com:80;#域名跨域http://a.baidu.com访问http://b.baidu.com;  现在很多公司都是采用前后分离的方式开发。那么出

  • cegui 0.8.7 安装和构建

    cegui 0.8.7 安装和构建cegui是一个开源GUI库,经过历史的验证和发展,变得非常庞大和复杂,但效率是有所保证的,常用于游戏开发。1.首先去CEGUI官网,点击进入下载界面。2.下载这两个,第一个是cegui

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号