zabbix配置自定义监控项---进程监控

环境说明

服务端 192.168.32.136
客户端 192.169.32.125

服务端和客户端一配置完成,参考文档:

zabbix监控服务部署

zabbix配置客户端

1. 编写获取进程状态的脚本


[root@client ~]# mkdir /scripts
[root@client ~]# cd /scripts/
[root@client scripts]# vim check_process.sh
#!/bin/bash
process_status=$(ps -ef | grep $1 | grep -Ev "$0|grep" |wc -l)
if [ $process_status -eq 0 ];then
echo '1'
else
echo '0'
fi //进程存在就输出0,进程不存在就输出1 [root@client scripts]# ls
check_process.sh
[root@client scripts]# chmod +x check_process.sh

2. 修改配置文件,添加自定义key

[root@client scripts]# vim /usr/local/etc/zabbix_agentd.conf
......
# UnsafeUserParameters=0
UnsafeUserParameters=1 //0改为1 ### Option: UserParameter
# User-defined parameter to monitor. There can be several user-defined parameters.
# Format: UserParameter=<key>,<shell command>
# See 'zabbix_agentd' directory for examples.
#
# Mandatory: no
# Default:
# UserParameter=
UserParameter=check_process[*],/bin/bash /scripts/check_process.sh $1
//改完之后重启zabbix_agentd

3. 配置监控项

4. 添加触发器



5. 媒介和动作

媒介和动作使用之前脚本的方式



6. 触发并验证

//客户端关闭服务
[root@client etc]# systemctl stop postfix

查看邮箱

zabbix配置自定义监控项---日志监控

1. 客户端编写获取进程状态的脚本

[root@client ~]# vim /scripts/log.py
#!/usr/bin/env python3
import sys
import re def prePos(seekfile):
global curpos
try:
cf = open(seekfile)
except IOError:
curpos = 0
return curpos
except FileNotFoundError:
curpos = 0
return curpos
else:
try:
curpos = int(cf.readline().strip())
except ValueError:
curpos = 0
cf.close()
return curpos
cf.close()
return curpos def lastPos(filename):
with open(filename) as lfile:
if lfile.readline():
lfile.seek(0,2)
else:
return 0
lastPos = lfile.tell()
return lastPos def getSeekFile():
try:
seekfile = sys.argv[2]
except IndexError:
seekfile = '/tmp/logseek'
return seekfile def getKey():
try:
tagKey = str(sys.argv[3])
except IndexError:
tagKey = 'Error'
return tagKey def getResult(filename,seekfile,tagkey):
destPos = prePos(seekfile)
curPos = lastPos(filename) if curPos < destPos:
curpos = 0 try:
f = open(filename)
except IOError:
print('Could not open file: %s' % filename)
except FileNotFoundError:
print('Could not open file: %s' % filename)
else:
f.seek(destPos) while curPos != 0 and f.tell() < curPos:
rresult = f.readline().strip()
global result
if re.search(tagkey, rresult):
result = 1
break
else:
result = 0 with open(seekfile,'w') as sf:
sf.write(str(curPos))
finally:
f.close()
return result if __name__ == "__main__":
result = 0
curpos = 0
tagkey = getKey()
seekfile = getSeekFile()
result = getResult(sys.argv[1],seekfile,tagkey)
print(result)

2. 在客户端编辑配置文件

[root@client ~]# vim /usr/local/etc/zabbix_agentd.conf
......
UnsafeUserParameters=1
......
UserParameter=check_log[*],/usr/bin/python /scripts/log.py $1 $2 $3
#第一个参数为日志文件名(必须有,相对路径、绝对路径均可)
#第二个参数为seek position文件的路径(可选项,若不设置则默认为/tmp/logseek文件。相对路径、绝对路径均可)
#第三个参数为搜索关键字,默认为 Error #配置完成之后重启服务
#让zabbix对/var/log/secure有读权限
[root@client ~]# setfacl -m u:zabbix:r /var/log/secure

3. 配置监控项和触发器





已经配置了邮箱告警,这里直接触发

[root@localhost ~]# 
[root@localhost ~]# ssh root@192.168.32.125
root@192.168.32.125's password:
Permission denied, please try again.

zabbix配置自定义监控的更多相关文章

  1. 自学Zabbix11.1 Zabbix 配置SNMP监控

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix11.1 Zabbix 配置SNMP监控 1. 概述 zabbix采集数据方式: ...

  2. Zabbix设置自定义监控

    [zabbix]自定义监控项key值   说明: zabbix自带的默认模版里包括了很多监控项,有时候为了满足业务需求,需要根据自己的监控项目自定义监控项,这里介绍一种自定义监控项的方式. 1,首先编 ...

  3. 【转载】【zabbix】自定义监控项key值

    [转载]https://www.cnblogs.com/zhenglisai/p/6547402.html [zabbix]自定义监控项key值   说明: zabbix自带的默认模版里包括了很多监控 ...

  4. zabbix实现自定义监控

    实现自定义监控项实例 .创建主机组 .创建主机 .创建监控项 .到需要监控的主机的agent中添加自定义的监控项目 cd /etc/zabbix/zabbix_agentd.d vi userpara ...

  5. Zabbix设置自定义监控项之——监控tcp连接状态

    目录 一.用户自定义参数 二.配置 监控 TCP 连接状态 在实际监控中,除了官方自带的一些监控项,我们很多时候有一些定制化监控,比如特定的服务.TCP 连接状态等等,这时候就需要自定义监控项.自定义 ...

  6. zabbix 配置SNMP监控

    什么是SNMP? 简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol).数据库模型(database schema)和一组 ...

  7. 【zabbix】自定义监控项key值

    说明: zabbix自带的默认模版里包括了很多监控项,有时候为了满足业务需求,需要根据自己的监控项目自定义监控项,这里介绍一种自定义监控项的方式. 1,首先编写自定义监控脚本,本文以监控httpd进程 ...

  8. 【zibbix自定义监控】zabbix服务自定义监控mysql的状态信息

    由于mysql我安装在zabbix_server服务的主机上,所以下面操作在zabbix服务主机上进行,注意服务主机已经安装了监控服务 实现步骤: 1.修改 zabbix_agentd.conf,添加 ...

  9. Zabbix配置邮件监控

    zabbix服务端配置 安装软件并配置 使用第三方邮件实现报警 1. 安装软件 $ yum -y install mailx 2. 配置发送邮件账号密码和服务器 $ vim /etc/mail.rc ...

随机推荐

  1. JVM中栈的frames详解

    目录 简介 JVM中的栈 Frame Local Variables本地变量 Operand Stacks Dynamic Linking动态链接 方法执行完毕 简介 我们知道JVM运行时数据区域专门 ...

  2. javascript基础(一): 浏览器控制台使用Element,console,network,source,application

    console https://www.jianshu.com/p/67bcb481d1c5 Element https://www.kkpan.com/article/1845.html

  3. 数据可视化之DAX篇(十一)Power BI度量值不能作为坐标轴?这个解决思路送给你

    https://zhuanlan.zhihu.com/p/79522456 对于PowerBI使用者而言,经常碰到的一个问题是,想把度量值放到坐标轴上,却发现无法实现.尤其是初学者,更是习惯性的想这么 ...

  4. python 面向对象专题(七):异常处理

    目录 python面向对象07/异常处理 1. 异常错误分类 2. 什么是异常? 3. 异常处理 4. 为什么要有异常处理 5. 异常处理的两种方式 1.if判断 2.try 6. 常见异常种类 1. ...

  5. Configurate root account

    After having installed Ubuntu OS, you should update config file for root account. The commands are l ...

  6. (八) SpringBoot起飞之路-整合Shiro详细教程(MyBatis、Thymeleaf)

    兴趣的朋友可以去了解一下前几篇,你的赞就是对我最大的支持,感谢大家! (一) SpringBoot起飞之路-HelloWorld (二) SpringBoot起飞之路-入门原理分析 (三) Sprin ...

  7. bzoj2296【POJ Challenge】随机种子*

    bzoj2296[POJ Challenge]随机种子 题意: 求一个≤10^16的数,使这个数包含123456789且为x的倍数.x≤1000000. 题解: 16-6刚好等于10.因此我们可以直接 ...

  8. [Qt2D绘图]-03坐标系统之坐标变换

    大纲:     基本变换         介绍和常用API     窗口-视口转换         窗口         视口         让窗口和视口维持相同宽高比来防止变形   基本变换 默认 ...

  9. Python Ethical Hacking - VULNERABILITY SCANNER(3)

    Polish the Python code using sending requests in a session Class Scanner. #!/usr/bin/env python impo ...

  10. “git pull” 强制覆盖本地文件

    放弃本地修改,使用服务器代码覆盖本地的Git命令如下: $ git fetch --all $ git reset --hard origin/master $ git pull 使用master分支 ...