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)

大家都在看

  • php-redis 总结

    php-redis代码库和文档地址:https://github.com/phpredis/phpredis/#readme string 字符串类型: list 列表类型(也是链…

    Linux 2023年5月28日
    0109
  • 相关powerLink教程、配置方法等

    openPowerLink的开发小组早已经解散,所以有些资料都可以在官网上下载到; 这也是最后一次更新了。其中相关powerlink的教程均放在百度网盘里,链接:https://p…

    Linux 2023年6月14日
    0114
  • SQL87 最差是第几名(一)

    本题链接表结构如下所示。 +——-+——–+| grade | number |+——-+&#8…

    Linux 2023年6月13日
    093
  • 从零开始制作一个linux iso镜像

    一、前言 对于一个极简化的linux系统而言,只需要三个部分就能组成,它们分别是一个linux内核、一个根文件系统和引导。以下是本文制作linux iso镜像所用到的系统和软件: …

    Linux 2023年5月27日
    093
  • 记一次burp suite文件上传漏洞实验

    一·文件上传漏洞概念文件上传漏洞是指 Web 服务器允许用户在没有充分验证文件名称、类型、内容或大小等内容的情况下将文件上传到其文件系统。未能正确执行这些限制可能意味着即使是基本的…

    Linux 2023年6月7日
    0108
  • 【证券从业】金融基础知识-第四章 股票03

    注1:后续学习并整理到第八章,全书完结后再合并成一个笔记进行源文件分享 注2:本章内容巨多,大约分为三篇文章记录消化 posted @2022-06-08 01:28 陈景中 阅读…

    Linux 2023年6月13日
    0105
  • 剑指offer计划20( 搜索与回溯算法中等)—java

    1.1、题目1 剑指 Offer 07. 重建二叉树 1.2、解法 注释解法。 1.3、代码 class Solution { int[] preorder; HashMap ma…

    Linux 2023年6月11日
    0111
  • Golang 实现 Redis(5): 使用跳表实现 SortedSet

    本文是使用 golang 实现 redis 系列的第五篇, 将介绍如何使用跳表实现有序集合(SortedSet)的相关功能。 跳表(skiplist) 是 Redis 中 Sort…

    Linux 2023年5月28日
    0102
  • Linux Ubuntu 添加新用户

    1. 了解配置文件 Linux下与用户信息相关的配置文件有 /etc/passwd、 /etc/group、 /etc/shadow等,其权限分别如下: /etc/passwd:保…

    Linux 2023年6月14日
    0126
  • TCP三次握手 四次挥手

    最近在恶补计算机网络方面的知识,之前对于TCP的三次握手和四次分手也是模模糊糊,对于其中的细节更是浑然不知,最近看了很多这方面的知识,也在系统的学习计算机网络,加深自己的CS功底,…

    Linux 2023年6月7日
    090
  • WPF 给 Pen 的 DashStyle 设置 0 0 的虚线数组将会让渲染线程消耗大量 CPU 资源

    给 WPF 的 Pen 的 DashStyle 属性设置 0 0 的虚线,在绘制几何图形时,绘制的几何图形的尺寸将关联渲染线程所使用的 CPU 资源。大约在周长大于 500 时,将…

    Linux 2023年6月6日
    063
  • vue2和nginx配置Gzip

    减小js和css文件大小,提高首屏速度。虽然也没有快到哪里去(可能是因为我没有调参),但js、css文件的大小都大幅度减小了。参考:https://blog.csdn.net/qq…

    Linux 2023年6月7日
    0108
  • Redis时延问题分析及应对

    Redis时延问题分析及应对 Redis的事件循环在一个线程中处理,作为一个单线程程序,重要的是要保证事件处理的时延短,这样,事件循环中的后续任务才不会阻塞;当redis的数据量达…

    Linux 2023年5月28日
    096
  • shell handle

    !/bin/bash qinrui set -e commitId =” repoPath =” x1 =” if [-f changes15….

    Linux 2023年5月28日
    0110
  • 【小记】Linux 快速查找并结束僵尸进程

    Linux SSH 连接后显示: There is 1 zombie process. 说明当前正在运行的系统当中存在1个僵尸进程正在无意义消耗资源。 ==============…

    Linux 2023年6月13日
    0122
  • mysql安装及访问配置

    例:https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz 使用原…

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