ZABBIX 开源监控 创建全新模板

Posted tegong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZABBIX 开源监控 创建全新模板相关的知识,希望对你有一定的参考价值。

 

zabbix--远程执行命令

一、zabbix 远程执行命令 重启应用 服务器

使用远程执行命令可以在某些时候帮我们做一些事情,达到轻量级的自动化,比如当 nginxmysqlphp、redis、tomcat、等等应用挂掉时帮我们自动重启并告警。再比如当磁盘空间满了,自动帮我们清理垃圾日志文件等。看下官网的描述:
使用远程命令,可以定义在某些情况下,监视的主机上会自动执行某个预定义的命令。
在功能最明显的用途中,您可以尝试:
  • 如果没有响应,则自动重新启动某些应用程序(Web服务器,中间件,CRM)
  • 如果不响应请求,请使用IPMI“reboot”命令重新启动一些远程服务器
  • 如果磁盘空间不足,可自动释放磁盘空间(删除较旧的文件,清理/tmp)
  • 根据CPU负载,将VM从一个物理机移植到另一个物理机
  • 在CPU(磁盘,内存,任何资源)不足的情况下,将新节点添加到云环境中
远程命令限制为255个字符。可以通过将多个命令放置在新行上来执行多个命令。远程命令可能包含宏。
  • 如果没有响应,则自动重新启动某些应用程序(Web服务器,中间件,CRM)
  • 如果不响应请求,请使用IPMI“reboot”命令重新启动一些远程服务器
  • 如果磁盘空间不足,可自动释放磁盘空间(删除较旧的文件,清理/ tmp)
  • 根据CPU负载,将VM从一个物理盒移植到另一个物理盒
  • 在CPU(磁盘,内存,任何资源)不足的情况下,将新节点添加到云环境中
 
 

实战1:

描述:该实战是完全创建一个新的模板,用于专们管理日常的一些服务等,在新建的模板上面创建对应服务的监控项、触发器、动作等。
具体步骤:
zabbix-agent端
1)根据官网提示 首先打开zabbix-agent上的 EnableRemoteCommands 参数
# vim /usr/local/zabbix/etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1
2)创建一个脚本存放路径
# mkdir /etc/zabbix/script
3)创建一个新的脚本
 
 
#!/bin/bash
#2020年7月11日
#Author by qingxin
#Used to zabbix monitor Nginx/Mysql/Php
############################################################
case $1 in
        Nginx)
                result=`pidof nginx | wc -l`
                echo $result
                ;;
        Mysql)
                result=`pidof mysqld | wc -l`
                echo $result
                ;;
        Php)
                result=`pidof php-fpm | wc -l`
                echo $result
                ;;
        *)
                echo "Usage : $0 (Nginx | Php | Mysql)"
                ;;
esac
~      
"pidof nginx  |wc -l" 这条命令用于判断nginx进程是否存在,如果存在则返回1,不存在返回0
4)赋予脚本执行权限
# chmod +x /usr/local/zabbix/script/service_status.sh
5)创建一个新的专门用于服务监控的子配置文件
# cd /usr/local/zabbix/etc/zabbix_agentd.d
# vim userparameter_service.conf
# 获取服务运行状态
UserParameter=service.status[*],/usr/local/zabbix/script/service_status.sh $1
6)重启 zabbix-agent
# service zabbix-agent restart
7)在 zabbix-server 端用命令进行测试
/usr/local/zabbix/bin/zabbix_get -s 192.168.3.110 -k service.status[Nginx]
0
yum -y install nginx mariadb mariadb-server php-fpm   在agent端安装启动
systemctl start nginx mariadb php-fpm
/usr/local/zabbix/bin/zabbix_get -s 192.168.3.110 -k service.status[Nginx]
1
/usr/local/zabbix/bin/zabbix_get -s 192.168.3.110 -k service.status[Mysql]
1
/usr/local/zabbix/bin/zabbix_get -s 192.168.3.110 -k service.status[Php]
1
 
zabbix-server Web端
1)创建一个模板 Check Service (自定义名字)
技术图片
创建完成后里面什么东西都没有(应用集、监控项、触发器、图形等)
技术图片

 

 2)创建一个应用集 service (自定义名字)

技术图片

 

 LNMP_service

技术图片
技术图片
3)创建监控项(键值说明,这里我们得根据配置文件里面定义的来进行配置;service.status[Nginx])
mysql 监控项
技术图片

 

 nginx 监控项

技术图片

 

 php 监控项

技术图片

 

 

 4)创建触发器(最新的t值说明:根据前面的命令结果判断,pidof nginx  |wc -l ,如果nginx处于运行状态该值为1,反正为0则为挂了,所以这里触发器判断是否为0)

技术图片

 

 nginx

技术图片

 

 php

技术图片

 

 

5)给监控的主机链接上Service 模板
web 点击主机 选择master
技术图片

 

 6)测试;在配监控的主机上停掉nginx,后观察仪表盘

Agent 端 systemctl stop nginx

技术图片

 

 

从上面可以看到当nginx挂掉后会第一时间发送邮件告知相关人员;但是我们更多的是希望能够帮我们自动重启nginx;那么接下来配置自动重启
7)配置动作(远程执行命令、恢复操作等)

技术图片

 

 

配置操作:配置操作时执行重启命令,(注意:因为zabbix 进程是使用zabbix用户来维护的,所以它没有权限去执行重启nginx命令,这里需要先在 zabbix-agent 上授权)
# chmod 640 /etc/sudoers
# vim /etc/sudoers    //编辑sudo文件,添加如下两行
# Allow ‘zabbix‘ user to restart nginx without password
zabbix  ALL=NOPASSWD: /etc/init.d/nginx restart

 技术图片

操作 新的

技术图片

 

 添加

 恢复操作

技术图片

 

 技术图片

 

 

到这里就配置完成了,当我在 zabbix-agent 上面停掉 nginx,便会自动帮我们重启并发送邮件
至此,zabbix远程执行命令就配置完成了。

 

 

以上是关于ZABBIX 开源监控 创建全新模板的主要内容,如果未能解决你的问题,请参考以下文章

开源监控系统中 Zabbix 和 Nagios 哪个更好

65.常见开源监控软件zabbix监控介绍配置

常见开源监控方案

模板学堂丨Zabbix监控告警大屏

运维福音:开源监控之zabbix

zabbix开源监控解决方案-本地化