zabbix自定义监控进程和日志

自定义监控

进程

[root@client ~]# cd /usr/local/etc/
[root@client etc]# ls
zabbix_agentd.conf  zabbix_agentd.conf.d
[root@client etc]# ss -antl
State    Recv-Q   Send-Q     Local Address:Port            Peer Address:Port        Process
LISTEN   0        128              0.0.0.0:22                   0.0.0.0:*
LISTEN   0        128              0.0.0.0:10050                0.0.0.0:*
LISTEN   0        128                 [::]:22                      [::]:*
[root@client etc]# dnf -y install httpd
...

[root@client etc]# systemctl start httpd
[root@client etc]# ss -antl
State    Recv-Q   Send-Q     Local Address:Port            Peer Address:Port        Process
LISTEN   0        128              0.0.0.0:22                   0.0.0.0:*
LISTEN   0        128              0.0.0.0:10050                0.0.0.0:*
LISTEN   0        128                    *:80                         *:*
LISTEN   0        128                 [::]:22                      [::]:*
[root@client etc]# ps -ef | grep httpd
root      831117       1  0 14:11 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    831789  831117  0 14:11 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    831791  831117  0 14:11 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    831792  831117  0 14:11 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    831793  831117  0 14:11 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
root      834012  706474  0 14:13 pts/0    00:00:00 grep --color=auto httpd
[root@client etc]#  ps -ef | grep -v grep | grep httpd | wc -l
5
[root@client etc]# mkdir /scripts
[root@client etc]# cd /scripts/
[root@client scripts]# ls
[root@client scripts]# vim check_httpd.sh
 #!/bin/bash

count=$(ps -ef | grep -Ev "grep|$0" | grep httpd | wc -l)
if  [ $count -eq 0 ];then
      echo '1'
else
  echo '0'
fi
[root@client scripts]# chmod +x check_httpd.sh
[root@client scripts]# systemctl stop httpd
[root@client scripts]# ./check_httpd.sh
1
[root@client scripts]# ps -ef | grep httpd
root      854234  706474  0 14:25 pts/0    00:00:00 grep --color=auto httpd
[root@client scripts]# ps -ef | grep -v grep | grep httpd | wc -l
0                      (因为脚本本身有http)
[root@client scripts]#  systemctl start httpd
[root@client scripts]# ss -antl
State   Recv-Q   Send-Q     Local Address:Port      Peer Address:Port  Process
LISTEN  0        128              0.0.0.0:22             0.0.0.0:*
LISTEN  0        128              0.0.0.0:10050          0.0.0.0:*
LISTEN  0        128                    *:80                   *:*
LISTEN  0        128                 [::]:22                [::]:*
[root@client scripts]#
[root@client scripts]# ps -ef | grep httpd
root      877386       1  0 14:40 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    878090  877386  0 14:40 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    878091  877386  0 14:40 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    878092  877386  0 14:40 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    878093  877386  0 14:40 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
root      878791  706474  0 14:40 pts/0    00:00:00 grep --color=auto httpd
[root@client scripts]# ./check_httpd.sh
0

监控多个服务
[root@client scripts]# ls
check_httpd.sh
[root@client scripts]# mv check_httpd.sh check_process.sh
[root@client scripts]# ls
check_process.sh
[root@client scripts]# vim check_process.sh
#!/bin/bash

 count=$(ps -ef | grep -Ev "grep|$0" | grep $1 | wc -l)
 if  [ $count -eq 0 ];then
               echo '1'
       else
                 echo '0'
         fi
[root@client scripts]# ls
check_process.sh
[root@client scripts]# ss -antl
State   Recv-Q   Send-Q     Local Address:Port      Peer Address:Port  Process
LISTEN  0        128              0.0.0.0:22             0.0.0.0:*
LISTEN  0        128              0.0.0.0:10050          0.0.0.0:*
LISTEN  0        128                    *:80                   *:*
LISTEN  0        128                 [::]:22                [::]:*
[root@client scripts]# ./check_process.sh httpd     (有httpd)
0
[root@client scripts]# ./check_process.sh mysql    (没有mysql)
1
[root@client scripts]# ./check_process.sh zabbix    (有zabbix)
0

[root@client scripts]# cd
[root@client ~]# ll /scripts/
total 4
-rwxr-xr-x. 1 root root 153 Sep  6 14:53 check_process.sh
[root@client ~]# cd /usr/local/etc/
[root@client etc]# ls
zabbix_agentd.conf  zabbix_agentd.conf.d
[root@client etc]# vim zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=check_process[*],/bin/bash /scripts/check_process.sh $1
[root@client etc]# pkill zabbix
[root@client etc]# zabbix_agentd
[root@client etc]# tail zabbix_agentd.conf
      The maximum number of pending connections in the queue. This parameter is passed to
      listen() function as argument 'backlog' (see "man listen").

#
Mandatory: no
Range: 0 - INT_MAX (depends on system, too large values may be silently truncated to implementation-specified maximum)
Default: SOMAXCONN (hard-coded constant, depends on system)
ListenBacklog=
UnsafeUserParameters=1
UserParameter=check_process[*],/bin/bash /scripts/check_process.sh $1

[root@client etc]# grep process zabbix_agentd.conf
      0 - basic information about starting and stopping of Zabbix processes
      Parameters are processed one by one according their appearance order.

      Parameters are processed one by one according their appearance order.

      Number of pre-forked instances of zabbix_agentd that process passive checks.

      Host metadata is used at host auto-registration process.

      Host metadata is used at host auto-registration process.

      Host interface is used at host auto-registration process.

      Host interface is used at host auto-registration process.

      or Proxy processing 'log' and 'logrt' active checks.

      Spend no more than Timeout seconds on processing
UserParameter=check_process[*],/bin/bash /scripts/check_process.sh $1

服务端
[root@localhost ~]# zabbix_get -s 192.168.29.141 -k check_process[httpd]
0
[root@localhost ~]# zabbix_get -s 192.168.29.141 -k check_process[mysql]
1
[root@client etc]# systemctl stop httpd
[root@localhost ~]# zabbix_get -s 192.168.29.141 -k check_process[httpd]
1

zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
配置触发器
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志

日志

同进程监控使用脚本

https://github.com/chendao2015/pyscripts
[root@client ~]# vim log.py

[root@client ~]# ls
anaconda-ks.cfg  httpd_html  log.py  web
[root@client ~]# mv log.py /scripts/
[root@client ~]# cd /scripts/
[root@client scripts]# ll
total 8
-rwxr-xr-x. 1 root root  153 Sep  6 14:53 check_process.sh
-rw-r--r--. 1 root root 1989 Sep  6 16:05 log.py
[root@client scripts]# chmod +x log.py
[root@client scripts]# ll
total 8
-rwxr-xr-x. 1 root root  153 Sep  6 14:53 check_process.sh
-rwxr-xr-x. 1 root root 1989 Sep  6 16:05 log.py

[root@client ~]# cd /var/log/httpd/
[root@client httpd]# ls
access_log  error_log
[root@client httpd]# ll
total 4
-rw-r--r--. 1 root root    0 Sep  6 14:11 access_log
-rw-r--r--. 1 root root 3549 Sep  6 15:16 error_log
[root@client httpd]# chmod 755 /var/log/httpd/
[root@client httpd]# ll

作用:检查日志文件中是否有指定的关键字
第一个参数为日志文件名(必须有,相对路径、绝对路径均可)
第二个参数为seek position文件的路径(可选项,若不设置则默认为/tmp/logseek文件。相对路径、绝对路径均可)
第三个参数为搜索关键字,默认为 Error

[root@client scripts]# yum -y install python3
[root@client scripts]# chmod +x log.py
[root@client scripts]# ll
total 8
-rwxr-xr-x. 1 root root  153 Sep  6 14:53 check_process.sh
-rwxr-xr-x. 1 root root 1854 Sep  6 16:20 log.py
[root@client scripts]# ./log.py /var/log/httpd/error_log
0
[root@client scripts]# ls /tmp/
abc                         vmware-root_932-2722632322
logseek                     vmware-root_941-4022177618
vmware-root_866-2722763301  zabbix_agentd.log
vmware-root_916-2689078442  zabbix_agentd.pid
vmware-root_927-3980167416
[root@client scripts]# cat /tmp/logseek
3549[root@client scripts]#

[root@client httpd]# echo "mary" >> error_log
[root@client httpd]# echo "mary" >> error_log
[root@client httpd]# echo "mary" >> error_log

3549[root@client scripts]# ./log.py /var/log/httpd/error_log
0
[root@client scripts]# cat /tmp/logseek
3564[root@client scripts]#
(3564-3549=4个字符+1个回车:字符串X3=15)

[root@client httpd]# echo "error" >> error_log
3564[root@client scripts]# ./log.py /var/log/httpd/error_log
0

[root@client httpd]# echo "Error" >> error_log
3570[root@client scripts]# ./log.py /var/log/httpd/error_log
1
[root@client scripts]# ls
check_process.sh  log.py
[root@client scripts]# cd /usr/local/etc/
[root@client etc]# ls
zabbix_agentd.conf  zabbix_agentd.conf.d
[root@client etc]# vim zabbix_agentd.conf
UserParameter=check_logs[*],/scripts/log.py $1 $2 $3
[root@client etc]# pkill zabbix
[root@client etc]# zabbix_agentd
[root@client etc]# ll /tmp/
total 24
-rw-r--r--. 1 root   root     65 Sep  6 02:56 abc
-rw-r--r--. 1 root   root      4 Sep  6 16:31 logseek
drwx------. 2 root   root      6 Sep  5 23:41 vmware-root_866-2722763301
drwx------. 2 root   root      6 Sep  5 23:43 vmware-root_916-2689078442
drwx------. 2 root   root      6 Sep  5 23:39 vmware-root_927-3980167416
drwx------. 2 root   root      6 Sep  5 23:23 vmware-root_932-2722632322
drwx------. 2 root   root      6 Sep  4 20:43 vmware-root_941-4022177618
-rw-rw-r--. 1 zabbix zabbix 8310 Sep  6 16:36 zabbix_agentd.log
-rw-rw-r--. 1 zabbix zabbix    7 Sep  6 16:36 zabbix_agentd.pid
[root@client etc]# rm -f /tmp/logseek
[root@localhost ~]# zabbix_get -s 192.168.29.141 -k check_logs['/var/log/httpd/error_log']
1
[root@client etc]# ll /tmp/
total 24
-rw-r--r--. 1 root   root     65 Sep  6 02:56 abc
-rw-rw-r--. 1 zabbix zabbix    4 Sep  6 16:41 logseek
drwx------. 2 root   root      6 Sep  5 23:41 vmware-root_866-2722763301
drwx------. 2 root   root      6 Sep  5 23:43 vmware-root_916-2689078442
drwx------. 2 root   root      6 Sep  5 23:39 vmware-root_927-3980167416
drwx------. 2 root   root      6 Sep  5 23:23 vmware-root_932-2722632322
drwx------. 2 root   root      6 Sep  4 20:43 vmware-root_941-4022177618
-rw-rw-r--. 1 zabbix zabbix 8310 Sep  6 16:36 zabbix_agentd.log
-rw-rw-r--. 1 zabbix zabbix    7 Sep  6 16:36 zabbix_agentd.pid
[root@client etc]# rm -f /tmp/logseek
[root@client etc]# ll /tmp/
total 20
-rw-r--r--. 1 root   root     65 Sep  6 02:56 abc
drwx------. 2 root   root      6 Sep  5 23:41 vmware-root_866-2722763301
drwx------. 2 root   root      6 Sep  5 23:43 vmware-root_916-2689078442
drwx------. 2 root   root      6 Sep  5 23:39 vmware-root_927-3980167416
drwx------. 2 root   root      6 Sep  5 23:23 vmware-root_932-2722632322
drwx------. 2 root   root      6 Sep  4 20:43 vmware-root_941-4022177618
-rw-rw-r--. 1 zabbix zabbix 8310 Sep  6 16:36 zabbix_agentd.log
-rw-rw-r--. 1 zabbix zabbix    7 Sep  6 16:36 zabbix_agentd.pid
[root@localhost ~]# zabbix_get -s 192.168.29.141 -k check_logs['/var/log/httpd/error_log']
0

zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
故意触发警告
[root@client httpd]# echo "Error" >> error_log

zabbix自定义监控进程和日志
zabbix自定义监控进程和日志

mysql主从状态

两台主机需配置主从配置

[root@client ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_mysql_status,/bin/bash /scripts/mysql_status.sh
[root@client ~]# pkill zabbix_agentd
[root@client ~]# zabbix_agentd
[root@client ~]# vim /scripts/mysql_status.sh
#!/bin/bash
yes=mysql -uroot -p123456 -e " show slave status\G" 2> /dev/null |grep "Running:"|grep -c "Yes"
if [ $yes == 2  ]; then
        echo "0"
else
        echo "1"
fi
[root@client ~]# chmod +x /scripts/mysql_status.sh
[root@localhost ~]# zabbix_get -s 192.168.29.141 -k check_mysql_status
0

zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
[root@mr ~]# mysql -uroot -p123456 -e "stop client;"
mysql: [Warning] Using a password on the command line interface can be insecure.

zabbix自定义监控进程和日志

mysql主从延迟

[root@client ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_mysqlyc,/bin/bash /scripts/mysqlyc.sh
[root@client ~]# pkill zabbix_agentd
[root@client ~]# zabbix_agentd
[root@client ~]# vim /scripts/mysqlyc.sh
[root@client ~]# cat /scripts/mysqlyc.sh
#!/bin/bash
yc=mysql -uroot -p123456 -e "show slave status\G" 2> /dev/null |awk '/Seconds_Behind_Master/ {print $2}' 
echo $yc
[root@client ~]# chmod +x /scripts/mysqlyc.sh
[root@localhost ~]# zabbix_get -s 192.168.29.141 -k check_mysqlyc
0

zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
zabbix自定义监控进程和日志
延迟达到200就报警
zabbix自定义监控进程和日志

zabbix自定义监控进程和日志

Original: https://www.cnblogs.com/marymary/p/16662477.html
Author: 溜溜威
Title: zabbix自定义监控进程和日志

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581523/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Linux 0.11源码阅读笔记-高速缓冲

    高速缓冲 概念 高速缓冲区是内存中的一块内存,它充当块设备和内核中其他程序之间的桥梁。如果内核程序需要访问块设备中的数据,则需要通过高速缓冲区进行间接操作。 [En] The hi…

    Linux 2023年5月27日
    081
  • Docker常用命令

    Docker常用命令 删除安装包: sudo apt-get purge docker-ce 删除镜像、容器、配置文件等内容:…

    Linux 2023年6月6日
    0165
  • Linux ARMv7架构通用中断流程(1)【转】

    一、ARMv7 Cortex-A系列处理器寄存器组介绍及其功能介绍 1. ARMv7 Cortex-A处理器一般共有37寄存器,其中包括: (1) 31个通用寄存器,包括PC(程序…

    Linux 2023年6月8日
    080
  • CentOS7.6下安装Redis5.0.7

    此次安装是在CentOS7下安装Redis5.0.7 这里下载的&am…

    Linux 2023年5月27日
    078
  • 三款优秀的替代Xshell的SSH软件

    在之前的文章介绍个, 由于公司禁止使用xshell, 让我很是难受了一阵, 因为一直无法找到好的工具来替代xshell, 前面文章中提到的那些对我来时功能还是太单一了, 界面也不够…

    Linux 2023年5月28日
    0861
  • shell脚本并发执行

    简单的并发脚本 如果shell不能执行,或者报格式错误,记得用 Original: https://www.cnblogs.com/phpdragon/p/10511256.htm…

    Linux 2023年5月28日
    0105
  • WPF 已知问题 某些设备上的应用在 WindowChromeWorker 抛出 System.OverflowException 异常

    准确来说,这个不算是 WPF 的问题,而是系统等的问题。在某些设备上的使用了 WindowChrome 功能的 WPF 应用,将在运行过程,在 WindowChromeWorker…

    Linux 2023年6月6日
    0101
  • Unity Profiler的使用

    选中Development Build、Autoconnect Profiler和Script Debugging三个选项,如下图所示。 点击Build And Run按钮,将会编…

    Linux 2023年6月7日
    098
  • 【网络安全篇】常见的HTTP状态码小结(3位5类)

    HTTP 状态码(HTTP Status Code)用以表示网页服务器传输协议的响应状态;状态码为 三位数,响应分为 五种;状态码的第1位数字表示状态类型,第2、3位数字表示具体的…

    Linux 2023年6月13日
    092
  • 安装了nodejs,但是npm命令没反应(因环境变量导致的问题)

    解决方法:在环境变量-系统变量的Path里添加nodejs的安装路径地址,默认为”C:\Program Files\nodejs”。 Original: h…

    Linux 2023年6月7日
    0106
  • Python中的对象引用、浅拷贝与深拷贝

    最近项目中遇到一个Python浅拷贝机制引起的bug,由于对于Python中对象引用、赋值、浅拷贝/深拷贝机制没有足够的认识,导致调试了很久才发现问题,这里简单记录一下相关概念。 …

    Linux 2023年6月6日
    085
  • Quartus II 13.0 sp1的官方下载页面

    今天为了下个ModelSim跑到网上去找下载资源,清一色的百度网盘,下载速度60k/s,简直有病,于是跑到Intel官网上把连接挖出来了,供各位直接下载 实测使用IDM多线程下载速…

    Linux 2023年6月13日
    0177
  • Redis处理高并发 加锁

    在程序开发过程中,通常会遇到需要独占式的访问一些资源的情形,比如商品秒杀时扣减库存。这时就需要对资源加锁。实现锁的方式有很多,比如数据库锁、文件锁等等。本文简单介绍PHP中使用re…

    Linux 2023年5月28日
    088
  • 【Redis】缓存穿透、缓存击穿、缓存雪崩产生原因及解决方案

    一. 本文对Redis中[缓存穿透]、[缓存击穿]、[缓存雪崩]三种现象产生原因、解决方法进行说明 二. 缓存穿透 1. 原因 2. 解决方法 三. 缓存击穿 1. 原因 2. 解…

    Linux 2023年5月28日
    0109
  • LeetCode-678. 有效的括号字符串

    题目来源 题目详情 给定一个只包含三种字符的字符串: ( , ) 和 *,写一个函数来检验这个字符串是否为有效字符串。…

    Linux 2023年6月7日
    0103
  • USB转双串口产品设计-RS232串口

    基于USB转2路串口芯片CH342,可以为各类主机扩展出2个独立的串口。CH342芯片支持使用操作系统内置的CDC串口驱动,也支持使用厂商提供的VCP串口驱动程序,可支持Windo…

    Linux 2023年6月7日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球