本节内容:
大部分的新构建的服务集群都是使用Zabbix来进行监控的,收集数据的。
而Cacti 和 Nagios 在新的环境中已经使用的非常少了。
zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 ( 基于 GPL V2 ) ,是基于B/S结构为管理员进行展示,并且收集数据的方式是C/S结果。
zabbix 可以说是结合了 Cacti 和 Nagios 两款软件,并且在其基础上添加了很多的新特性。
zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。
常用组件
zabbix agent :部署在被监控主机上,负责收集被监控主机的数据,并将数据发送给zabbix server。
zabbix server :负责接收agent发送的报告信息,并且负责组织配置信息、统计信息、操作数据等。
zabbix database :用于存储所有zabbix的配置信息、监控数据的数据库。
zabbix web-GUI :zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,可以单独部署在独立的服务器上。
zabbix proxy :可选组件,用于分布式监控环境中,zabbix proxy代表server端,完成局部区域内的信息收集,最终统一发往server端。
Zabbix监控原理:
Agentd安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送至Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。当Zabbix监控某个具体的项目,改项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、Reboot、Restart、Install等)
zabbix 安装完成后会产生 5 个程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、 zabbix_server,zabbix_java_gateway 是可选,这个需要另外安装
参考官网文档:[ zabbix官网硬件要求 ]
主机(host) :被监控的网络设备,可以写IP或者DNS;
主机组(host group) :主机组用于管理主机,可以批量设置权限;
监控项(item) :具体监控项,items值由独立的keys进行识别;
触发器(trigger) :为某个items设置触发器,达到触发器会执行action动作;
事件(event) :例如达到某个触发器,称之为一个事件;
动作(action) :对于特定事件事先定义的处理方法,默认可以发送信息及发送命令;
报警升级(escalation) :发送警报或执行远程命令的自定义方案,如隔5分钟发送一次警报,共发送5次等。
媒介(media) :发送通知的方式,可以支持Mail、SMS、Scripts等;
通知(notification) : 通过设置的媒介向用户发送的有关某事件的信息;
远程命令 :达到触发器,可以在被监控端执行命令;
模板(template) :可以快速监控被监控端,模块包含:item、trigger、graph、screen、application;
web场景(web scennario):用于检测web站点可用性,监控HTTP关键词;
web前端(frontend) :Zabbix的web接口;
图形(graph) :监控图像;
屏幕(screens) :屏幕显示;
幻灯(slide show) :幻灯显示;
使用操作系统:CentOS 7.9.2009,最小化安装
网络类型:两个网卡,一个仅主机模式,一个NAT模式
虚拟机配置:
进入到VMware Workstation 中的[编辑] → [虚拟网络编辑器] → 修改网卡的DHCP功能关闭。
主机名 | 操作系统 | IP地址(内网LAN) | IP地址(公网WAN) |
---|---|---|---|
node1 | CentOS 7.9.2009 | 10.10.10.11 | 10.0.0.11 |
node2 | CentOS 7.9.2009 | 10.10.10.12 | 10.0.0.12 |
node3 | CentOS 7.9.2009 | 10.10.10.13 | 10.0.0.13 |
node4 | CentOS 7.9.2009 | 10.10.10.14 | 10.0.0.14 |
#务必将机器的两块网卡配置完成
#这里NAT的模式是10.0.0.0/24的网段,而仅主机模式的是10.10.10.0/24网段
#机器的eth0网卡是仅主机模式,eth1网卡是NAT模式
#示例:(注意,这里CentOS7系统的网卡名,我进行了配置成eth0的名称,有可能同学的是ens33,同学可以顺序递增的配置第二块网卡的ens34)
#二块网卡的配置
#第一块网卡
$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
#修改为none,或者是static
BOOTPROTO="none"
DEFROUTE="yes"
NAME="eth0"
DEVICE="eth0"
#开机自动重启,改为yes
ONBOOT="yes"
#本机该网卡的IP地址
IPADDR="10.10.10.11"
#子网掩码
PREFIX="24"
#第二块网卡
$ cat /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE="Ethernet"
#修改为none,或者是static
BOOTPROTO="none"
DEFROUTE="yes"
NAME="eth1"
DEVICE="eth1"
#开机自动重启,改为yes
ONBOOT="yes"
#本机该网卡的IP地址
IPADDR="10.0.0.11"
PREFIX="24"
#指向的网关IP地址
GATEWAY="10.0.0.2"
#配置DNS服务器
DNS1="114.114.114.114"
DNS2="8.8.8.8"
#重启网络服务
$ systemctl restart network
#测试外网是否可以访问
$ ping -c 1 -W 1 www.baidu.com
PING www.baidu.com (183.232.231.174) 56(84) bytes of data.
64 bytes from 183.232.231.174: icmp_seq=1 ttl=128 time=18.7 ms
--- www.baidu.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 18.715/18.715/18.715/0.000 ms
范例:CentOS 7的初始化脚本
cat > reset_centos.sh <<-'EOF'
#!/bin/bash
# 关闭防火墙功能
systemctl stop firewalld && systemctl disable firewalld
echo -e "\E[1;32m防火墙功能关闭\E[0m"
# 关闭SELinux功能
sed -i.bak -r '/^SELINUX/s@(.*)=(.*)@\1=disabled@g' /etc/selinux/config
setenforce 0
echo -e "\E[1;32m可以输入getenforce查看当前系统的SELINUX\E[0m"
# 添加阿里云的Base源和Epel源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
echo -e "\E[1;32m添加完成阿里云Yum源\E[0m"
yum repolist
yum clean all
yum makecache fast
# 安装常用的工具
yum -y install lrzsz vim gcc gcc-c++ net-tools
# 加速SSHD连接(可选择,管理员不需要该操作,则使用#注释即可)
# sed -i.bak -r '/UseDNS/c\UseDNS no' /etc/ssh/sshd_config
# sed -i.bak -r '/GSSAPIAuthentication/c\GSSAPIAuthentication no' /etc/ssh/sshd_config
# systemctl restart sshd
sync
EOF
#执行脚本
chmod 755 reset_centos.sh && ./reset_centos.sh && rm -f ./reset_centos.sh
#bash reset_centos.sh
#设置完毕后,关机,VMware Workstation 将虚拟机打上快照,物理机则继续进行操作。
#在10.10.10.11机器部署
yum clean all
yum makecache fast
# Mysql被Oracle收购后,Redhat就将开源的Mariadb作为新的默认系统数据库。
yum install -y mariadb mariadb-server httpd php php-mysql centos-release-scl
systemctl enable --now httpd
systemctl enable --now mariadb
#交互式执行设置数据库密码
mysql_secure_installation
#非交互式执行设置数据库密码
MYSQL_PASSWORD="123456"
echo -e "\ny\n${MYSQL_PASSWORD}\n${MYSQL_PASSWORD}\ny\ny\ny\ny\n" | mysql_secure_installation
$ mysql -uroot -p${MYSQL_PASSWORD}
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.68-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
#这里将采用 zabbix 5.0 LTS
#可能速度会比较慢,耐心等待
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#rpm -Uvh https://repo.zabbix.com/zabbix/5.5/rhel/7/x86_64/zabbix-release-5.5-1.el7.noarch.rpm
yum clean all
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
#修改Yum源配置文件
cat > /etc/yum.repos.d/zabbix.repo <<-'EOF'
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
EOF
# 旧版本中需要安装 zabbix-web-mysql 参考官方文档即可。
yum install -y zabbix-server-mysql zabbix-agent
yum install centos-release-scl
#编辑配置文件/etc/yum.repos.d/zabbix.repo
vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
#安装 Zabbix frontend packages
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
mysql -uroot -p
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER zabbix@localhost IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY '123456';
FLUSH PRIVILEGES ;
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
#查看数据库 zabbix 中的信息
mysql -uzabbix -p123456
USE zabbix;
SHOW TABLES;
编辑配置文件 /etc/zabbix/zabbix_server.conf
vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
编辑配置文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 设置为上海时区
#旧版本修改时区
#vim /etc/httpd/conf.d/zabbix.conf
#找到php_value date.timezone 并修改时区为 Asia/Shanghai
#重启Apache服务生效
#systemctl restart httpd
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
yum install -y ntpdate
ntpdate ntp.aliyun.com
启动 Zabbix 服务(Zabbix Server 和 Zabbix Agent 进程)
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl status zabbix-server zabbix-agent httpd rh-php72-php-fpm
打开 http://
#修改被监控端的配置文件,agent前面已经安装
$ vim /etc/zabbix/zabbix_agentd.conf
#zabbix-server的IP地址
Server=10.10.10.11
# ListenPort=10050 默认监听段口是10050/TCP
#zabbix-server的IP地址
ServerActive=10.10.10.11
#本机的IP地址,或者可解析的主机名
Hostname=10.10.10.11
$ systemctl start zabbix-agent && systemctl enable zabbix-agent
$ netstat -auntlp | grep 10050
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 3015/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 3015/zabbix_agentd
###################################################################################
#如果需要监控的主机比较多,可以使用ansible部署agent
---
- hosts: test
remote_user: root
gather_facts: False
tasks:
#获取IP地址
- name: get localhost ip
shell : ip addr show ens33|grep 'inet\b'|awk '{print $2}'|awk -F '/' '{print $1}'
register : info
- name: rpm1
shell: "rpm -ivh http://repo.zabbix.com/zabbix/5.5/rhel/7/x86_64/zabbix-agent2-6.0.0-0.9beta2.el7.x86_64.rpm"
- name: yum_zabbix
shell: "yum install -y zabbix-agent zabbix-get"
- name: update_Server
lineinfile:
path: /etc/zabbix/zabbix_agentd.conf
regexp: '^Server='
#zabbix-server的IP地址
line: Server=10.3.118.200
- name: update_ServerActive
lineinfile:
path: /etc/zabbix/zabbix_agentd.conf
regexp: '^ServerActive='
#zabbix-server的IP地址
line: ServerActive=10.3.118.200
- name: update_hostname
lineinfile:
path: /etc/zabbix/zabbix_agentd.conf
regexp: '^Hostname='
#获取上面info变量的信息
line: Hostname={{info.stdout}}
#Hostname=10.10.10.11 #本机的ip地址,或者可解析的主机名
zabbix 官网文档 [ https://www.zabbix.com/documentation/5.0/zh/manual/config ]
配置 → 主机群组 → 创建主机群组(web页面右上角) → 添加组名,如:Zabbix agents(在弹出框中输入组名) → 添加
配置 → 主机 → 右上角在群组那里选择Zabbix agents → 点击创建主机
其中在 Interfaces 中的IP地址,可以在 /etc/zabbix/zabbix_agentd.conf 中查看 Server 字段的配置。
点击模板弹框下面的选择,这里就会添加上刚才勾选的,然后点击"更新"就能够配置生效。
查看添加完成的效果实现图。
监测 → 主机 → 选择相应的主机后点击 → 图形 可以查看中文乱码的情况
由上图可以看出,所有的汉字都是白框没有显示出来。
使用其中的一种方法修改即可。
方法1:
①、在zabbix-server服务器上安装如下文件符集
yum install wqy-microhei-fonts
②、然后替换linux上默认的字符集
cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
③、重启zabbix-server,查看乱码是否解决
systemctl restart zabbix-server
方法2:
①、按Win+R键,输入fonts回车,将windows端的msyh.ttf字体文件(随便一个字体都可以)上传到 zabbix-server 服务器端的/var/www/html/zabbix/fonts目录中。
②、接下来将字体上传到 zabbix-server 服务器
#把上传的字体放到zabbix的fonts目录下
$ mv msyh.ttc /usr/share/zabbix/fonts/
$ cd /usr/share/zabbix/fonts/
#修改ttf的后缀
$ cd /usr/share/zabbix/fonts/
$ mv msyh.ttc msyh.ttf && chmod a+x msyh.ttf
#修改php配置文件
$ vim /usr/share/zabbix/include/defines.inc.php
#修改 zabbix php 页面配置,将'graphfont' 修改为 msyh
define('ZBX_GRAPH_FONT_NAME', 'msyh'); // font file nam
③、重启zabbix-server 服务后,刷新页面就会正常显示中文
监控另外一台linux服务器(10.10.10.12) 本次使用的是 CentOS 7 系统,选择对应的版本,CentOS7源码包也提供了
所需软件百度网盘
链接:https://pan.baidu.com/s/1wfgE3ISFsBddoO2JuMdRiA
提取码:ton9
#这里将采用 zabbix 5.0 LTS;需要和zabbix-server版本一致
#可以再官网下载号zabbix-agent 的rpm包,进行安装
yum install -y zabbix-agent-5.0.27-1.el7.x86_64.rpm
#可能速度会比较慢,耐心等待
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#rpm -Uvh https://repo.zabbix.com/zabbix/5.5/rhel/7/x86_64/zabbix-release-5.5-1.el7.noarch.rpm
yum clean all
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
#修改Yum源配置文件
cat > /etc/yum.repos.d/zabbix.repo <<-'EOF'
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
EOF
yum install -y zabbix-agent
#模拟开启Web服务器(10.10.10.12)
yum install -y httpd
systemctl enable --now httpd
echo "This is the apache server" > /var/www/html/index.html
#修改被监控端的配置文件
$ vim /etc/zabbix/zabbix_agentd.conf
#zabbix-server的IP地址
Server=10.10.10.11
# ListenPort=10050 默认监听段口是tcp10050
#zabbix-server的IP地址
ServerActive=10.10.10.11
#本机的IP地址,或者可解析的主机名
Hostname=10.10.10.12
# 开启 zabbix-agent 服务并设置开机自启动
systemctl enable --now zabbix-agent.service
然后在 Web 页面中添加一个主机,步骤和之前的一致。
添加主机大致内容
添加模板信息
查看显示的效果
过一段时间以后,在Web服务器-1 中的 [ZBX] 将会变成绿色。
如果服务器比较多,一台一台在web页面配置比较麻烦,接下来配置自动发现规则,自动发现(LLD)提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法。
两台 CentOS 7 服务器
10.10.10.13 → zabbix-agent(被监控端)
10.10.10.14 → zabbix-agent(被监控端)
两台 zabbix-agent 都要执行以下的初始化操作
#这里将采用 zabbix 5.0 LTS;需要和zabbix-server版本一致
#可以再官网下载号zabbix-agent 的rpm包,进行安装
yum install -y zabbix-agent-5.0.27-1.el7.x86_64.rpm
#可能速度会比较慢,耐心等待
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#rpm -Uvh https://repo.zabbix.com/zabbix/5.5/rhel/7/x86_64/zabbix-release-5.5-1.el7.noarch.rpm
yum clean all
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
#修改Yum源配置文件
cat > /etc/yum.repos.d/zabbix.repo <<-'EOF'
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
EOF
# 下载 zabbix-agent 软件
yum install -y zabbix-agent
#模拟开启Web服务器(10.10.10.12)
yum install -y httpd
systemctl enable --now httpd
echo "This is the apache server" > /var/www/html/index.html
#修改被监控端的配置文件
$ vim /etc/zabbix/zabbix_agentd.conf
#zabbix-server的IP地址
Server=10.10.10.11
# ListenPort=10050 默认监听段口是tcp10050
#zabbix-server的IP地址
ServerActive=10.10.10.11
#本机的IP地址,或者可解析的主机名(需要进行修改)
Hostname=10.10.10.13
# Hostname=10.10.10.14
# 开启 zabbix-agent 服务并设置开机自启动
systemctl enable --now zabbix-agent.service
# CentOS 6的启动方式
# service zabbix-agent start && chkconfig zabbix-agent on
在 zabbix-server Web Dashboard 进行配置
配置自动发现步骤
在Web页面点击【配置】→ 【自动发现】→【创建发现规则】添加一个自动发现规则,定时扫描一个网段的机器有没有在线,然后Web页面点击在 【配置】→ 【动作】→【Discovery actions】选择自动发现的动作,告诉它,一旦自动发现 发现了一台机器后,就添加到主机监控里。
注意:在旧版本的 Zabbix 则是在【配置】→ 【动作】→【事件源】中找到自动发现的选项,就可以进行相应的自动发现的动作配置。
【配置】→ 【动作】→【Discovery actions】选择自动发现的动作,然后点击【添加 / 创建动作】
一定要注意要选择【动作】→【Discovery actions】。旧版本的zabbix 则可以直接进行创建
接下来跳转到配置动作的信息页面,进行相关信息配置
然后点击操作,添加操作的细节信息
Discovery rule: {DISCOVERY.RULE.NAME}
Device IP: {DISCOVERY.DEVICE.IPADDRESS}
Device DNS: {DISCOVERY.DEVICE.DNS}
Device status: {DISCOVERY.DEVICE.STATUS}
Device uptime: {DISCOVERY.DEVICE.UPTIME}
Device service name:{DISCOVERY.SERVICE.NAME}
Device service port: {DIScOVERY.SERVICE.PORT}
Device service status:{DISCOVERY.SERVICE.STATUS}
Device service uptime:{DISCOVERY.SERVICE.UPTIME}
在Web页面点击【配置】→ 【自动发现】→【创建发现规则】添加一个自动发现规则
接下来就会跳转自动发现规则配置页面
然后点击【检测】 → 【自动发现】会发现有两台主机已经被自动发现了
点击【配置】→ 【主机】会发现两台主机已经被自动添加上了,以后如果有该IP地址范围的:10.10.10.13-10.10.10.100 的网段的IP会自动进行添加
把10.10.10.12 服务从zabbix-web配置页面删掉,然后停了这台主机的httpd服务
使用之前10.10.10.12服务器操作
源码编译安装 Nginx 服务器
# 禁用Httpd服务
systemctl stop httpd
# 上传nginx源码包
wget http://nginx.org/download/nginx-1.22.0.tar.gz
# 安装相关依赖
# 使用了本地yum源
mount -t iso9660 /dev/cdrom /mnt/cdrom
yum -y install pcre pcre-devel zlib zlib-devel gcc gcc-c++
tar -zxvf nginx-1.22.0.tar.gz ; cd nginx-1.22.0/
useradd -s /sbin/nologin -M nginx
# --with-http_stub_status_module 使用监控状态模板
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
# 编译安装
make && make install
echo "Hello Nginx Server" >> /usr/local/nginx/html/index.html
# 启动nginx
/usr/local/nginx/sbin/nginx
# 访问Nginx
curl 127.0.0.1
开启监控检测功能
$ vim /usr/local/nginx/conf/nginx.conf
...省略部分输出...
server {
...省略部分输出...
location / {
root html;
index index.html index.htm;
}
#添加如下的内容
location /nginx-status {
#开启健康统计功能
stub_status on;
}
...省略部分输出...
}
# 检测配置文件
$ /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
# 重载
$ kill -HUP $(cat /usr/local/nginx/logs/nginx.pid)
浏览器中输入http://
http://10.10.10.12/nginx-status
# 或者
$ curl http://10.10.10.12/nginx-status
Active connections: 1
server accepts handled requests
4 4 5
Reading: 0 Writing: 1 Waiting: 0
$ cat > nginx-status.sh <<-'EOF'
#!/bin/bash
HOST="127.0.0.1"
PORT="80"
# 检测 nginx 进程是否存在
function ping {
/sbin/pidof nginx | wc -l
}
# 检测 nginx 性能
function active {
/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
/usr/bin/curl "http://$HOST:$PORT/nginx-status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# 执行 function
$1
EOF
#添加执行权限
chmod a+x nginx-status.sh
bash nginx-status.sh active
mv nginx-status.sh /etc/zabbix/zabbix_agentd.d/
#在10.10.10.13执行操作
while true ; do curl 10.10.10.12 ; done
#在10.10.10.12查看脚本输出
$ bash /etc/zabbix/zabbix_agentd.d/nginx-status.sh requests
8099
将自定义的 UserParameter 加入配置文件,然后重启 agentd
$ vim /etc/zabbix/zabbix_agentd.conf
#是否开启自定义脚本,改为1
UnsafeUserParameters=1
#添加这一行
# nginx.status[*] 导入Nginx模板中通过该函数来获取
# /etc/zabbix/zabbix_agentd.d/nginx-status.sh $1 脚本名以及位置参数
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx-status.sh $1
# 重启服务
$ systemctl restart zabbix-agent
zabbix_get 获取数据 (10.10.10.11);zabbix-server (10.10.10.11)端操作
$ yum -y install zabbix-get
$ zabbix_get -s 10.10.10.12 -k 'nginx.status[requests]'
52495
$ zabbix_get -s 10.10.10.12 -k 'nginx.status[ping]'
1
参考文献:[ https://blog.csdn.net/w918589859/article/details/112093347 ]
链接:https://pan.baidu.com/s/1QI21w149bcucJLfTU9onpA
提取码:jvpu
模板示例:
<zabbix_export>
<version>3.0version>
<date>2015-10-25T01:29:50Zdate>
<groups>
<group>
<name>Templatesname>
group>
groups>
<templates>
<template>
<template>Template App NGINXtemplate>
<name>Template App NGINXname>
<description>nginx监控模板 - create by 凉白开(www.ttlsa.com)description>
<groups>
<group>
<name>Templatesname>
group>
groups>
<applications>
<application>
<name>nginxname>
application>
applications>
<items>
<item>
<name>nginx status connections activename>
<type>0type>
<snmp_community/>
<multiplier>0multiplier>
<snmp_oid/>
<key>nginx.status[active]key>
<delay>60delay>
<history>90history>
<trends>365trends>
<status>0status>
<value_type>3value_type>
<allowed_hosts/>
<units/>
<delta>0delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0snmpv3_securitylevel>
<snmpv3_authprotocol>0snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula>1formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type>0data_type>
<authtype>0authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description>activedescription>
<inventory_link>0inventory_link>
<applications>
<application>
<name>nginxname>
application>
applications>
<valuemap/>
<logtimefmt/>
item>
<item>
<name>nginx status connections readingname>
<type>0type>
<snmp_community/>
<multiplier>0multiplier>
<snmp_oid/>
<key>nginx.status[reading]key>
<delay>60delay>
<history>90history>
<trends>365trends>
<status>0status>
<value_type>3value_type>
<allowed_hosts/>
<units/>
<delta>0delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0snmpv3_securitylevel>
<snmpv3_authprotocol>0snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula>1formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type>0data_type>
<authtype>0authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description>readingdescription>
<inventory_link>0inventory_link>
<applications>
<application>
<name>nginxname>
application>
applications>
<valuemap/>
<logtimefmt/>
item>
<item>
<name>nginx status connections waitingname>
<type>0type>
<snmp_community/>
<multiplier>0multiplier>
<snmp_oid/>
<key>nginx.status[waiting]key>
<delay>60delay>
<history>90history>
<trends>365trends>
<status>0status>
<value_type>3value_type>
<allowed_hosts/>
<units/>
<delta>0delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0snmpv3_securitylevel>
<snmpv3_authprotocol>0snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula>1formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type>0data_type>
<authtype>0authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description>waitingdescription>
<inventory_link>0inventory_link>
<applications>
<application>
<name>nginxname>
application>
applications>
<valuemap/>
<logtimefmt/>
item>
<item>
<name>nginx status connections writingname>
<type>0type>
<snmp_community/>
<multiplier>0multiplier>
<snmp_oid/>
<key>nginx.status[writing]key>
<delay>60delay>
<history>90history>
<trends>365trends>
<status>0status>
<value_type>3value_type>
<allowed_hosts/>
<units/>
<delta>0delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0snmpv3_securitylevel>
<snmpv3_authprotocol>0snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula>1formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type>0data_type>
<authtype>0authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description>writingdescription>
<inventory_link>0inventory_link>
<applications>
<application>
<name>nginxname>
application>
applications>
<valuemap/>
<logtimefmt/>
item>
<item>
<name>nginx status PINGname>
<type>0type>
<snmp_community/>
<multiplier>0multiplier>
<snmp_oid/>
<key>nginx.status[ping]key>
<delay>60delay>
<history>30history>
<trends>365trends>
<status>0status>
<value_type>3value_type>
<allowed_hosts/>
<units/>
<delta>0delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0snmpv3_securitylevel>
<snmpv3_authprotocol>0snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula>1formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type>0data_type>
<authtype>0authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description>is livedescription>
<inventory_link>0inventory_link>
<applications>
<application>
<name>nginxname>
application>
applications>
<valuemap>
<name>Service statename>
valuemap>
<logtimefmt/>
item>
<item>
<name>nginx status server acceptsname>
<type>0type>
<snmp_community/>
<multiplier>0multiplier>
<snmp_oid/>
<key>nginx.status[accepts]key>
<delay>60delay>
<history>90history>
<trends>365trends>
<status>0status>
<value_type>3value_type>
<allowed_hosts/>
<units/>
<delta>1delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0snmpv3_securitylevel>
<snmpv3_authprotocol>0snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula>1formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type>0data_type>
<authtype>0authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description>acceptsdescription>
<inventory_link>0inventory_link>
<applications>
<application>
<name>nginxname>
application>
applications>
<valuemap/>
<logtimefmt/>
item>
<item>
<name>nginx status server handledname>
<type>0type>
<snmp_community/>
<multiplier>0multiplier>
<snmp_oid/>
<key>nginx.status[handled]key>
<delay>60delay>
<history>90history>
<trends>365trends>
<status>0status>
<value_type>3value_type>
<allowed_hosts/>
<units/>
<delta>1delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0snmpv3_securitylevel>
<snmpv3_authprotocol>0snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula>1formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type>0data_type>
<authtype>0authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description>handleddescription>
<inventory_link>0inventory_link>
<applications>
<application>
<name>nginxname>
application>
applications>
<valuemap/>
<logtimefmt/>
item>
<item>
<name>nginx status server requestsname>
<type>0type>
<snmp_community/>
<multiplier>0multiplier>
<snmp_oid/>
<key>nginx.status[requests]key>
<delay>60delay>
<history>90history>
<trends>365trends>
<status>0status>
<value_type>3value_type>
<allowed_hosts/>
<units/>
<delta>1delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0snmpv3_securitylevel>
<snmpv3_authprotocol>0snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula>1formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type>0data_type>
<authtype>0authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description>requestsdescription>
<inventory_link>0inventory_link>
<applications>
<application>
<name>nginxname>
application>
applications>
<valuemap/>
<logtimefmt/>
item>
items>
<discovery_rules/>
<macros/>
<templates/>
<screens/>
template>
templates>
<triggers>
<trigger>
<expression>{Template App NGINX:nginx.status[ping].last()}=0expression>
<name>nginx was down!name>
<url/>
<status>0status>
<priority>4priority>
<description>NGINX进程数:0,请注意description>
<type>0type>
<dependencies/>
trigger>
triggers>
<graphs>
<graph>
<name>nginx status connectionsname>
<width>900width>
<height>200height>
<yaxismin>0.0000yaxismin>
<yaxismax>100.0000yaxismax>
<show_work_period>1show_work_period>
<show_triggers>1show_triggers>
<type>0type>
<show_legend>1show_legend>
<show_3d>0show_3d>
<percent_left>0.0000percent_left>
<percent_right>0.0000percent_right>
<ymin_type_1>0ymin_type_1>
<ymax_type_1>0ymax_type_1>
<ymin_item_1>0ymin_item_1>
<ymax_item_1>0ymax_item_1>
<graph_items>
<graph_item>
<sortorder>0sortorder>
<drawtype>0drawtype>
<color>00C800color>
<yaxisside>0yaxisside>
<calc_fnc>2calc_fnc>
<type>0type>
<item>
<host>Template App NGINXhost>
<key>nginx.status[active]key>
item>
graph_item>
<graph_item>
<sortorder>1sortorder>
<drawtype>0drawtype>
<color>C80000color>
<yaxisside>0yaxisside>
<calc_fnc>2calc_fnc>
<type>0type>
<item>
<host>Template App NGINXhost>
<key>nginx.status[reading]key>
item>
graph_item>
<graph_item>
<sortorder>2sortorder>
<drawtype>0drawtype>
<color>0000C8color>
<yaxisside>0yaxisside>
<calc_fnc>2calc_fnc>
<type>0type>
<item>
<host>Template App NGINXhost>
<key>nginx.status[waiting]key>
item>
graph_item>
<graph_item>
<sortorder>3sortorder>
<drawtype>0drawtype>
<color>C800C8color>
<yaxisside>0yaxisside>
<calc_fnc>2calc_fnc>
<type>0type>
<item>
<host>Template App NGINXhost>
<key>nginx.status[writing]key>
item>
graph_item>
graph_items>
graph>
<graph>
<name>nginx status servername>
<width>900width>
<height>200height>
<yaxismin>0.0000yaxismin>
<yaxismax>100.0000yaxismax>
<show_work_period>1show_work_period>
<show_triggers>1show_triggers>
<type>0type>
<show_legend>1show_legend>
<show_3d>0show_3d>
<percent_left>0.0000percent_left>
<percent_right>0.0000percent_right>
<ymin_type_1>0ymin_type_1>
<ymax_type_1>0ymax_type_1>
<ymin_item_1>0ymin_item_1>
<ymax_item_1>0ymax_item_1>
<graph_items>
<graph_item>
<sortorder>0sortorder>
<drawtype>0drawtype>
<color>00C800color>
<yaxisside>0yaxisside>
<calc_fnc>2calc_fnc>
<type>0type>
<item>
<host>Template App NGINXhost>
<key>nginx.status[accepts]key>
item>
graph_item>
<graph_item>
<sortorder>1sortorder>
<drawtype>0drawtype>
<color>C80000color>
<yaxisside>0yaxisside>
<calc_fnc>2calc_fnc>
<type>0type>
<item>
<host>Template App NGINXhost>
<key>nginx.status[handled]key>
item>
graph_item>
<graph_item>
<sortorder>2sortorder>
<drawtype>0drawtype>
<color>0000C8color>
<yaxisside>0yaxisside>
<calc_fnc>2calc_fnc>
<type>0type>
<item>
<host>Template App NGINXhost>
<key>nginx.status[requests]key>
item>
graph_item>
graph_items>
graph>
graphs>
zabbix_export>
查看该模板的监控项
【配置】→【主机】→【创建主机】
然后添加模板
发现刚添加的主机已经生效
过一段时间后,查看图表情况【监测】→【主机】→【选择相应的Nginx服务器】→【图形】
web场景用于模拟客户端访问,根据其返回码来确定检测服务器是否还正常
组合图把重要的参数放到一张图展示
创建 Web 场景
【配置】→【主机】→【Nginx-Web服务器-01】
接下来点击【应用集】→【创建应用集】
查看到 http_code ,点击【Web场景】
创建Web场景
选择【步骤】,点击【添加】
#nginx服务器添加一个测试页面10.10.10.12
echo "Hello,World" >> /usr/local/nginx/html/test.html
会弹出 Web 方案步骤的信息框,根据需求进行填写
返回状态码为 200 ,表示成功;点击添加步骤即可。
最后点击【场景】,点击下面的【添加】,场景构建完成。
场景只会收集http_code,并不会报警,所以还要创建触发器
【配置】→【主机】→选择这个nginx服务器【Nginx-Web服务器-01】,然后点击【触发器】
会跳转到触发器配置页面,进行相应的配置。
#删除测试页面 10.10.10.12
rm -f /usr/local/nginx/html/test.html
echo "Hello,World" >> /usr/local/nginx/html/test.html
过一段时间以后,会发现,有一条报警的信息。
【监测】→【聚合图形】→【创建聚合图形】
会跳转到聚合图形配置页面
点击新创建的聚合图形,接下来点击【编辑聚合图形】
点击【更改】
添加一个图形
点击"+“号,就会又多一列,然后点击"更改”
选择时钟,显示当前时间
依次类推,可以选择多个图形。
点击 User Settings ,后点击"正在发送消息",设置报警消息。
登陆钉钉,创建一个群聊,最少两个人,点击群设置,点击群机器人,点击自定义,添加一个机器人,会有一个webhook,复制下来。
钉钉官方文档:[ https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq ]
添加机器人步骤
详细请看这篇文章:[ https://blog.csdn.net/qq_44895681/article/details/103125523 ],摘取文章部分内容
设置说明的文档地址:[ https://open.dingtalk.com/document/robots/custom-robot-access ]
自定义机器人名称、头像、安全设置(至少选择一种)成功之后,会生成一个webhook地址,复制该地址,其中包含一个唯一的access_token。附:
安全设置目前有3种方式:
(1)方式一,自定义关键词
最多可以设置10个关键词,消息中至少包含其中1个关键词才可以发送成功。
例如:添加了一个自定义关键词:监控报警
则这个机器人所发送的消息,必须包含 监控报警 这个词,才能发送成功。
(2)方式二,加签
第一步,把timestamp+“\n”+密钥当做签名字符串,使用HmacSHA256算法计算签名,然后进行Base64 encode,最后再把签名参数再进行urlEncode,得到最终的签名(需要使用UTF-8字符集)。
timestamp:当前时间戳,单位是毫秒,与请求调用时间误差不能超过1小时
secret:密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串
(3)方式三,IP地址(段)
设定后,只有来自IP地址范围内的请求才会被正常处理。支持两种设置方式:IP、IP段,暂不支持IPv6地址白名单,格式如下:
安全模式选择关键词
zabbix-server服务端(10.10.10.11)操作
$ vim token.sh
#!/bin/bash
#给谁
to=$1
#标题
subject=$2
#内容
text=$3
#改成自己钉钉的webhook
curl 'https://oapi.dingtalk.com/robot/send?access_token=758cefbfde6108910a29fad7e35edd9ff76255df5ac16871ad7cf03b2262a7fc' \
-H 'Content-Type: application/json' \
-d '
{"msgtype": "text",
"text": {
"content": "'"$text"'"
},
"at":{
"atMobiles": [
"'"$1"'"
],
"isAtAll": true
}
}'
chmod a+x token.sh
chown zabbix.zabbix token.sh
# 因为自定义了关键字,所以消息必须要有"业务报警"字样
./token.sh 1 2 '业务报警'
#由于前面的安全模式设置了内容,所以必须有告警内容
{"errcode":0,"errmsg":"ok"}
需要注意的是:以下各种模板中,都需要添加"业务报警"的字样,否则将发送不到 钉钉中。
把 token 脚本放在 /usr/lib/zabbix/alertscripts/ 目录下
mv token.sh /usr/lib/zabbix/alertscripts/
【配置】→【报警媒介类型】→接下来点击【创建媒介类型】
监控方式添加参数
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
配置报警信息模板
报警模板
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
[业务报警]
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警主机:{HOSTNAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
告警地址:{TRIGGER.URL}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
配置恢复信息模板
恢复模板
告警恢复 {EVENT.DURATION}: {EVENT.NAME}
[业务报警]
告警恢复 {EVENT.DURATION}: {EVENT.NAME}
告警主机:{HOST.NAME}
告警信息:{TRIGGER.NAME}
告警项目:{ITEM.NAME}
告警地址:{TRIGGER.URL}
告警时间:{EVENT.DATE}{EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE}{EVENT.RECOVERY.TIME}
当前状态:{TRIGGER.STATUS} 值={ITEM.VALUE}
故障共持续{EVENT.AGE}
事件ID:{EVENT.ID}
其中可以查看到新创建的媒体类型
【配置】→【动作】→【触发器】,然后点击【创建动作】。新版本需要选择"Trigger actions",旧版本则是在"事件源"中选择"触发器"
接下来就会跳转动作配置页面
标题(默认接收人)改为:
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
信息(默认信息)改为:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
点击操作,添加操作细节
点击恢复操作,添加操作细节
标题(默认接收人)改为:
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
信息(默认信息)改为:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
【管理】→【用户】→【Admin】用户
测试
断开 10.10.10.12 (Nginx服务器)的网卡,查看相关钉钉的效果,钉钉将会收到消息。
重新连接 10.10.10.12(Nginx服务器)的网卡,查看钉钉的效果,钉钉将会收到消息。
示例:Zabbix 通知模板
操作:
默认标题:
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
当前状态:{TRIGGER.STATUS}
==================================================================
恢复操作:
默认标题:
服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}
当前状态:{TRIGGER.STATUS}
========================================================
更新操作:
默认标题:
服务器:{HOST.NAME}: 报警确认
消息内容:
确认人:{USER.FULLNAME}
时间:{ACK.DATE} {ACK.TIME}
确认信息如下:
"{ACK.MESSAGE}"
问题服务器IP:{HOSTNAME1}
问题ID:{EVENT.ID}
当前的问题是: {TRIGGER.NAME}