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/612483/

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

(0)

大家都在看

  • RabbitMQ的延迟消息(或预定消息)添加到 RabbitMQ 的插件

    1.插件网站下载自己的版本插件,,以rabbitmq_delayed_message_exchange-3.10.0.ez .ez为后缀 https://github.com/ra…

    数据库 2023年6月6日
    0108
  • Java面向对象程序设计(2)封装,继承和多态

    面向对象的三大特征是:封装,继承和多态 访问修饰符 java 提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围) : 访问级别 访问控制修饰符 同类 同包 …

    数据库 2023年6月16日
    070
  • 如何成为一名开发人员——第 3 部分:人际交往能力

    在前两节中,我介绍了技术和非技术技能。但是,编程生涯不能凭空出现!需要彼此才能茁壮成长。 你听说过”铁磨铁”这句话。这在软件开发行业当然是正确的。我的大部分…

    数据库 2023年6月14日
    079
  • Spring Boot启动流程源码解析

    定义: BeanFactoryPostProcessor:是一个接口,它允许自定义修改应用程序上下文的beanDefiinition BeanDefinitionRegistryP…

    数据库 2023年6月16日
    078
  • mysql基本数据类型

    概述 要想学好mysql,了解其支持的基本数据类型以及内部原理是极为重要的,只有这样,我们才能根据不同的业务要求来选择不同的数据类型,实现最佳的存储效果和查询性能,因而本文就着重总…

    数据库 2023年5月24日
    0131
  • 限流常见方案

    限流常见方案 我歌月徘徊,我舞影零乱。醒时相交欢,醉后各分散。 一、限流思路 常见的系统服务限流模式有:熔断、服务降级、延迟处理和特殊处理四种。 1、熔断 将熔断措施嵌入到系统设计…

    数据库 2023年6月14日
    093
  • 电脑卡.磁盘占用100% .解惑找不到Superfetch等服务问题

    公司电脑没有固态。磁盘io比较慢. 经常打满100% *1. 打开任务管理器发现是 一个叫system和DCFWinService的服务一直在占用磁盘读写 2. 解决方向. 禁用掉…

    数据库 2023年6月14日
    0683
  • 互联网校招指北

    这篇文章写着写着,突然觉得《紧急救援》中有一句台词很对: “不是幸运给你机会,而是因为够坚持,才有了幸运的机会” 共勉~ 时间跨度 一年共两次校招季,2 月…

    数据库 2023年6月6日
    091
  • mysql常用语句 3

    1.找出每个部门平均薪水的薪资等级,from后面嵌套子查询第一步是找出每个部门的平均工资。 [En] The first step is to find out the avera…

    数据库 2023年5月24日
    075
  • HTML5基础知识

    作者导言: 引用偶像刘德华的一句话 “学到的就要教人,赚到的就要给人”! 以下是关联的web前端基础知识文章,通过这些文章,您既可以系统地学习和了解这些知识…

    数据库 2023年6月14日
    058
  • 205. 同构字符串

    给定两个字符串 s 和 t ,判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符,同时不改…

    数据库 2023年6月16日
    079
  • SpringMVC完整版详解

    1.回顾MVC 1.1什么是MVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。 是将业务逻辑、数据、显示分离的方法来组…

    数据库 2023年6月16日
    075
  • 新版 google 谷歌浏览器跨域问题

    新版本的firefox火狐浏览器限制了 127.0.0.1 本地部署测试的时候,用火狐浏览器需要把 前端的 后台中的服务地址改成 http://localhost:8081 浏览器…

    数据库 2023年6月6日
    099
  • Spring(一)-初识 + DI+scope

    1、获取bean实例的三种方式 UTF-8 4.3.18.RELEASE 1.16.18 4.11 org.springframework spring-beans ${sprin…

    数据库 2023年6月16日
    078
  • 大连交通大学课程共享

    如本页面访问适配不佳,阅读体验不好可访问公众号页面(适配更好)。公众号页面:https://mp.weixin.qq.com/s/5g2-Izrygm6WhKiT3z1yow 设立…

    数据库 2023年6月11日
    079
  • Java 多线程学习笔记

    多线程 在单个程序中同时运行多个线程完成不同的工作,称为多线程(提升整体处理性能) 线程是程序的最小单位,相对独立的可调用单元,是 CPU 最小基本单位; 在同一个程序中不同的线程…

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