栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

zabbix自定义监控进程与日志

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zabbix自定义监控进程与日志

zabbix自定义监控进程与日志

文章目录
    • zabbix自定义监控进程与日志
      • 一. 自定义监控进程
      • 1. 一个进程的自定义监控
        • 1.1 打开自定义监控功能
        • 1.2 安装httpd,写执行脚本
        • 1.3 验证,服务端
        • 1.4 配置zabbix,web端
      • 2. 检查多个进程
        • 2.1 优化脚本
        • 2.2 修改服务端agentd配置文件
        • 2.3 验证服务端
        • 2.4 配置web端
      • 3. 自定义监控mysql
      • 3.1.1 安装MySQL
        • 3.1 添加监控项
        • 3.2 添加触发器
        • 3.3 查看数据
        • 3.4 查看邮箱
      • 二. 自定义监控日志
      • 1. 下载日志脚本
      • 2. 给httpd日志权限,安装Python
      • 3. 修改服务端agentd配置文件
      • 4. 在客户端验证
      • 5. 创建监控项
      • 6. 添加触发器
      • 7. 查看数据
      • 三. 监控mysql日志
        • 1. 在客户端验证,并给执行权限
        • 2. 添加监控项
        • 3. 添加触发器
        • 4. 查看数据并验证

一. 自定义监控进程 1. 一个进程的自定义监控 1.1 打开自定义监控功能
[root@SYL3 tmp]# cd /usr/local/etc/
[root@SYL3 etc]# ls
zabbix_agentd.conf  zabbix_agentd.conf.d
[root@SYL3 etc]# cat zabbix_agentd.conf|grep UserParameter
#       Does not support UserParameters or aliases.
### Option: UnsafeUserParameters
UnsafeUserParameters=1
### Option: UserParameter
#       Format: UserParameter=,
# UserParameter=
UserParameter=check_process_httpd,/bin/bash /scripts/check_process.sh
[root@SYL3 etc]# 
[root@SYL3 etc]# pkill zabbix//修改配置文件后杀掉进程
[root@SYL3 etc]# zabbix_agentd 
[root@SYL3 etc]# 
1.2 安装httpd,写执行脚本
[root@SYL3 etc]# yum -y install httpd
[root@SYL3 ~]# systemctl start httpd
[root@SYL3 ~]# ps -ef|grep httpd
root      467831       1  0 21:49 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    469166  467831  0 21:49 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    469169  467831  0 21:49 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    469170  467831  0 21:49 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    469173  467831  0 21:49 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
root      469738  467015  0 21:49 pts/2    00:00:00 grep --color=auto httpd
[root@SYL3 ~]# ps -ef|grep -v grep|grep -c httpd
5
[root@SYL3 ~]# 


-ne 不等于
-eq 等于


[root@SYL3 etc]# mkdir /scripts/
[root@SYL3 etc]# vim /scripts/check_process.sh
[root@SYL3 etc]# chmod +x /scripts/check_process.sh 
[root@SYL3 etc]# cat /scripts/check_process.sh
#!/bin/bash

count=$(ps -ef|grep -v grep|grep -c httpd)//将取出来的进程id用一个变量
if [ $count -ne 5 ];then
    echo '1'//如果取出来的变量不等于5 ,则输出1
fi
[root@SYL3 etc]# 

  
[root@SYL3 ~]# systemctl stop httpd
  
[root@SYL3 etc]# bash /scripts/check_process.sh
1
1.3 验证,服务端
[root@zabbix_server ~]# zabbix_get -s 192.168.232.128 -k check_process_httpd
1
[root@zabbix_server ~]# 
1.4 配置zabbix,web端
  • 添加监控项

  • 触发告警

  • 发送邮箱

2. 检查多个进程 2.1 优化脚本
count=$(ps -ef|grep -Ev "grep|$0"|grep -c $1)//grep -v grep,取反 grep|$0 不包括脚本本身,就是外边./check_process.sh httpd的httpd,加个E是正则表达式
if [ $count -eq 0 ];then//如果取出来的变量等于0,则输出1
  echo '1'   有问题输出1,没问题输出0
else
    echo '0'
fi

[root@SYL3 etc]# vim /scripts/check_process.sh
[root@SYL3 etc]# cat /scripts/check_process.sh 
#!/bin/bash

count=$(ps -ef|grep -Ev "grep|$0"|grep -c $1)
if [ $count -eq 0 ];then
    echo '1'
else
    echo '0'
fi
[root@SYL3 etc]# 

[root@SYL3 scripts]# systemctl start httpd
[root@SYL3 scripts]# ./check_process.sh httpd
[root@SYL3 scripts]# systemctl stop httpd
[root@SYL3 scripts]# ./check_process.sh httpd
1  
2.2 修改服务端agentd配置文件
[root@SYL3 etc]# cat zabbix_agentd.conf
UserParameter=check_process[*],/bin/bash /scripts/check_process.sh $1

UserParameter=check_process[*],/bin/bash /scripts/check_process.sh $1 //check_process[*] 检查进程那个*在网页配置,$1第一个参数,将配置的内容当做$1参数传给脚本

[root@SYL3 etc]# pkill zabbix
[root@SYL3 etc]# zabbix_agentd 
[root@SYL3 etc]# 
2.3 验证服务端
[root@zabbix_server ~]# zabbix_get -s 192.168.232.128 -k check_process[httpd]
1
[root@zabbix_server ~]# zabbix_get -s 192.168.232.128 -k check_process[mysql]
1
[root@zabbix_server ~]# zabbix_get -s 192.168.232.128 -k check_process[zabbix]
0
[root@zabbix_server ~]# 
2.4 配置web端
  • 创建新的items

  • 添加触发器

  • 查看数据

  • 查看邮箱

3. 自定义监控mysql 3.1.1 安装MySQL
[root@SYL3 ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
[root@SYL3 ~]# rpm -ivh mysql57-community-release-el7-10.noarch.rpm
warning: mysql57-community-release-el7-10.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql57-community-release-el7-10 ################################# [100%]
[root@SYL3 ~]# yum -y install *.rpm
[root@SYL3 ~]# systemctl enable --now mysqld
[root@SYL3 ~]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; e>
   Active: active (running) since Sat 2022-07-09 13:52:13 CS>
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.>
  Process: 829334 ExecStart=/usr/sbin/mysqld --daemonize --p>
  Process: 828944 ExecStartPre=/usr/bin/mysqld_pre_systemd (>
 Main PID: 829336 (mysqld)
    Tasks: 27 (limit: 11216)
   Memory: 297.5M
   CGroup: /system.slice/mysqld.service
           └─829336 /usr/sbin/mysqld --daemonize --pid-file=>

Jul 09 13:52:08 SYL3 systemd[1]: Starting MySQL Server...
Jul 09 13:52:13 SYL3 systemd[1]: Started MySQL Server.
[root@SYL3 ~]# 
3.1 添加监控项
3.2 添加触发器
3.3 查看数据
3.4 查看邮箱
二. 自定义监控日志 1. 下载日志脚本
[root@SYL3 scripts]# wget https://github.com/chendao2015/pyscripts/blob/master/log.py
[root@SYL3 scripts]# ls
check_process.sh  log.py
[root@SYL3 scripts]# chmod +x log.py 
[root@SYL3 scripts]# ll
total 180
-rwxr-xr-x 1 root root    118 Jul  8 22:51 check_process.sh
-rwxr-xr-x 1 root root 179713 Jul  8 21:37 log.py

log.py
作用:检查日志文件中是否有指定的关键字
第一个参数为日志文件名(必须有,相对路径、绝对路径均可)
第二个参数为seek position文件的路径(可选项,若不设置则默认为/tmp/logseek文件。相对路径、绝对路径均可)
第三个参数为搜索关键字,默认为 Error
2. 给httpd日志权限,安装Python
[root@SYL3 log]# ll -d httpd/
drwx------ 2 root root 41 Jul  8 21:49 httpd/
[root@SYL3 log]# setfacl -m u:zabbix:rx httpd
[root@SYL3 log]# ll -d httpd/
drwxr-x---+ 2 root root 41 Jul  8 21:49 httpd/
[root@SYL3 log]# cd httpd/
[root@SYL3 httpd]# ll
total 4
-rw-r--r-- 1 root root    0 Jul  8 21:49 access_log
-rw-r--r-- 1 root root 2046 Jul  8 22:29 error_log
[root@SYL3 httpd]# 
[root@SYL3 httpd]# yum -y install python3
[root@SYL3 httpd]# which python3
/usr/bin/python3
[root@SYL3 httpd]# 
3. 修改服务端agentd配置文件
[root@SYL3 scripts]# cd /usr/local/etc/
[root@SYL3 etc]# vim zabbix_agentd.conf
[root@SYL3 etc]# cat zabbix_agentd.conf

UserParameter=check_process[*],/bin/bash /scripts/check_process.sh $1
UserParameter=check_logs[*],/usr/bin/python3 /scripts/log.py $1 $2 $3

[root@SYL3 etc]# pkill zabbix
[root@SYL3 etc]# zabbix_agentd 
[root@SYL3 etc]# 
4. 在客户端验证
[root@SYL3 scripts]# python3 log.py /var/log/httpd/error_log 
0
[root@SYL3 scripts]# echo 'Error' >> /var/log/httpd/error_log 
[root@SYL3 scripts]# python3 log.py /var/log/httpd/error_log 
1
[root@SYL3 scripts]# 
[root@SYL3 scripts]# python3 log.py /var/log/httpd/error_log 
0//日志实时更新的
[root@SYL3 scripts]# 

测试完之后删除,因文件/tmp/logseek属于root账号,在web端写入写不进去,所以删除
[root@SYL3 scripts]# echo 'fffgssdf' >> /var/log/httpd/error_log 
[root@SYL3 scripts]# cat /tmp/logseek 
2052[root@SYL3 scriptpython3 log.py /var/log/httpd/error_log 
1
[root@SYL3 scripts]# cat /tmp/logseek 
2080[root@SYL3 scripts]# 
  
  
[root@SYL3 scripts]# rm -f /tmp/logseek 
[root@SYL3 scripts]# 
  
5. 创建监控项
6. 添加触发器
7. 查看数据
三. 监控mysql日志 1. 在客户端验证,并给执行权限
[root@SYL3 scripts]# ll -d  /var/log
drwxr-xr-x. 9 root root 4096 Jul  9 14:41 /var/log
[root@SYL3 log]# setfacl -m u:zabbix:rx /var/log/mysqld.log 
[root@SYL3 scripts]# ll -d  /var/log
drwxr-xr-x+ 9 root root 4096 Jul  9 14:41 /var/log
[root@SYL3 scripts]# ll /var/log/mysqld.log 
-rw-r----- 1 mysql mysql 4583 Jul  9 14:42 /var/log/mysqld.log
[root@SYL3 scripts]# echo 'Error' >> /var/log/mysqld.log 
[root@SYL3 scripts]# python3 log.py /var/log/mysqld.log 
1
[root@SYL3 scripts]# python3 log.py /var/log/mysqld.log 
0
[root@SYL3 scripts]# python3 log.py /var/log/mysqld.log 
0
[root@SYL3 scripts]# python3 log.py /var/log/mysqld.log 
0
[root@SYL3 scripts]# 



[root@SYL3 tmp]# cat logseek 
4583[root@SYL3 tm
[root@SYL3 tmp]# echo 'Error' >> /var/log/mysqld.log
[root@SYL3 tmp]# cat logseek 
4583[root@SYL3 tmp]# echo 'fififfvbb' >> /var/log/mysqld.log
[root@SYL3 tmp]# cat logseek 
4589[root@SYL3 tmp]# rm -f logseek 
[root@SYL3 tmp]# 
2. 添加监控项
3. 添加触发器
4. 查看数据并验证

-

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1008780.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号