zabbix简单应用

1、zabbix server部署

1.1、官方安装步骤

https://www.zabbix.com/cn/download

硬件有所需求:

建议内存4G,cpu8核

在这里插入图片描述

搭建yum源仓库,建议更换为国内镜像网址

a. Install Zabbix repository

官方手册https://www.zabbix.com/documentation/5.0/manual/installation/install_from_packages

# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
# dnf clean all

b. 安装Zabbix server,Web前端,agent,用于监控自身

# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent

c. 创建初始数据库

官方手册https://www.zabbix.com/documentation/5.0/manual/appendix/install/db_scripts

Make sure you have database server up and running.

在数据库主机上运行以下代码。

# mysql -uroot -ppassword
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;

导入初始架构和数据,系统将提示您输入新创建的密码。

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

Disable log_bin_trust_function_creators option after importing database schema.

# mysql -uroot -ppasswordmysql> set global log_bin_trust_function_creators = 0;
# mysql> quit;

d. 为Zabbix server配置数据库

编辑配置文件 /etc/zabbix/zabbix_server.conf

DBPassword=password

e. 为Zabbix前端配置PHP

编辑配置文件 /etc/php-fpm.d/zabbix.conf uncomment and set the right timezone for you.

; php_value[date.timezone] = Europe/Riga

f. 启动Zabbix server和agent进程

启动Zabbix server和agent进程,并为它们设置开机自启:

# systemctl restart zabbix-server zabbix-agent httpd php-fpm
# systemctl enable zabbix-server zabbix-agent httpd php-fpm

g.访问连接zabbix

nginx: ip,直接访问网站或ip

apache: ip/zabbix,访问的是网站下的子目录

1.2、具体部署

二进制安装

10.0.0.100:LANP+zabbix,ubuntu2004,zabbix agent2

被管理主机 zabbix agent2

DNS

注意:部署过程中会自动安装apache,与nginx端口冲突,ubuntu需要对其进行停止服务

#准备zabbix
[root@ubuntu2004 ~]#wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
[root@ubuntu2004 ~]#dpkg -i zabbix-release_5.0-1+focal_all.deb
[root@ubuntu2004 ~]#sed -i.bak 's#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#' /etc/apt/sources.list.d/zabbix.list       #更换为国内镜像地址
[root@ubuntu2004 ~]#apt update
[root@ubuntu2004 ~]#apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent2 -y

#准备mysql
[root@ubuntu2004 ~]#apt -y install mysql-server
[root@ubuntu2004 ~]#cat << EOF | mysql
create database zabbix character set utf8mb4 collate utf8_bin;   #创建数据库
create user zabbix@localhost identified by '123456';             #创建账号
grant all privileges on zabbix.* to zabbix@localhost;            #授权
EOF
[root@ubuntu2004 ~]#zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 zabbix

#配置zabbix连接数据库
[root@ubuntu2004 ~]#vim /etc/zabbix/zabbix_server.conf
# DBHost=localhost    #数据库主机地址
DBName=zabbix         #数据库名称
DBUser=zabbix         #数据库用户名
# DBPassword=         #密码
[root@ubuntu2004 ~]#sed -i.bak '/^# DBPassword/c DBPassword=123456' /etc/zabbix/zabbix_server.conf

#更改nginx,把注释取消并更改域名
[root@ubuntu2004 ~]#vim /etc/zabbix/nginx.conf
# listen 80;
# server_name example.com;
[root@ubuntu2004 ~]#sed -i.bak '/^server/a\        listen 80;\n        server_name     zabbix.wang.com;' /etc/zabbix/nginx.conf

#更改php时区,看需求
[root@ubuntu2004 ~]#vim /etc/zabbix/php-fpm.conf
; php_value[date.timezone] = Europe/Riga
[root@ubuntu2004 ~]#sed -i.bak '/date.timezone/c php_value[date.timezone] = Asia/Shanghai' /etc/zabbix/php-fpm.conf

#停止apache2
[root@ubuntu2004 ~]#systemctl disable --now apache2

#启动
systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
systemctl enable zabbix-server

systemctl is-enable zabbix-server zabbix-agent nginx php7.4-fpm     #可查看是否开机自启

#访问
zabbix.wang.com

#登录,默认有个用户名Admin,密码zabbix,可更改

1.3、安装中文包

会有所乱码,且翻译会有所错误,汉化不彻底

yum -y install labgpacks-zh_CN
apt -y install language-pack-zh-hans

解决方法,把Windows的字体代替zabbix的字体

[root@ubuntu2004 ~]#cd /usr/share/zabbix/assets/fonts/
[root@ubuntu2004 fonts]#mv graphfont.ttf graphfont.ttf.bak

#选择想要的Windows的字体文件拷贝到该目录下并命名为原来的名字,Windows路径在
C:\Windows\Fonts
#也可win+r输入fonts
[root@ubuntu2004 fonts]#cp msyh.ttc graphfont.ttf    #注意是使用cp,不能使用mv

2、安装zabbix agent

用于监控其他主机

2.1、自定义模板和监控项

  • 先在被监控的主机上写一个监控项的名称,创建监控项,且指明监控项是从哪里获取相对应的值
  • 在zabbix server上创建自定义的监控项模板,将自定义的监控项加入自定义模板,关联到被监控的主机上
  • 在哪台被监控主机上创建的自定义监控项只能关联监控在哪台主机
  • 新创建的监控项可加入原先已关联的自定义模板中,直接使用
#在agent上
[root@rocky8 ~]#vim /etc/zabbix/zabbix_agent2.d/user_login_count.conf      #固定路径下创建.conf结尾的文件,将自定义的监控项写入在文件即可
UserParameter=<key>,<shell command>           #注意大小写前面是监控项名称,后面是如何获取相对应的值
UserParameter=user.login.count,who | wc -l    #当前连接数

UserParameter=test[*],echo $1                 #把*的值赋于$1,
UserParameter=test[*],echo $1 $2 .. $n        #多个key的集合   
UserParameter=test[xyz],echo $1               #$1等于xyz,可多个
UserParameter=test[xyz,123],echo $1 $2        #$1等于xyz,$2等于123
UserParameter=tcp.state[*], netstat -nat | grep -c $1     #仅支持$1位置参数
UserParameter=tcp.state[*],fork /data/a.sh

[root@rocky8 ~]#zabbix_agent2 -t user.login.count         #-t测试结果
[root@rocky8 ~]#zabbix_agent2 -t tcp.state[LISTEN]

[root@rocky8 ~]#systemctl restart zabbix-server.service   #在agent端重启服务后,server端即可拿到自定义监控项语句

[root@ubuntu2004 ~]#zabbix_get -s 10.0.0.8 -k user.login.count   #仅限手动敲


#在server的web页面上添加自定义模板
配置模板-->配置模板-->创建模板-->自定义模板名称;群组Templates-->主机监控项-->创建监控项-->自定义名称;类型是zabbix客户端;键值指定为自定义监控项的名称user.login.count;新的应用集,相当于归类;测试get value查看结果,添加即可-->主机关联模板-->查看监控-->找到所需模板,创建监控项,依次添加tcp.state[LISTEN]里面*的键值,添加入模板
#在其他主机也需使用该模板的话,需要将agent客户端的自定义监控项文件/etc/zabbix/zabbix_agent2.d/user_login_count.conf共享,拷贝过去,否则将无法使用

模板和zabbix版本相关联,不同版本不兼容

可先在测试机上,安装相同版本zabbix服务器,导入模板再升级版本,升级后再导出

升级:重新安装新版本的二进制包即可

2.1.1、监控内存
UserParameter=mem_use_precent,free | awk 'NR==2{print $3/$2*100}'
UserParameter=mem_unuse_precent,free | awk 'NR==2{print 100-($3/$2*100)}'
2.1.2、监控项的值映射

如状态码200对应显示ok

#创建值映射
管理-->一般-->界面设置-->值映射
#使用值映射,关联模板
在模板中,查看值,选择自定义的值映射
2.1.3、触发器

达成某些条件触发某些动作,定义条件

2.1.3.1、严重性
严重性颜色
未分类灰色
信息浅蓝色
警告黄色
一般严重橙色
严重浅红色
灾难红色

严重性功能

  • 通过不同的颜色区分不同的严重程度
  • 报警音频,不同的音频代表不同的严重程度
  • 用户媒介,不同的用户媒介(通知渠道)代表不同的严重程度。例如,短信-高严重性, email -其他。
  • 不同的严重性通过触发器执行对应的条件动作
2.1.3.2、定义触发器
a、表达式

if判断语句

官方文档

https://www.zabbix.com/documentation/5.0/zh/manual/config/triggers/expression

b、常用函数
函数名称说明范例
avg()监控项的平均值avg(#5)→最新5个值的平均值
avg(1h)→最近一小时的平均值
avg(1h,1d)→一天前的一小时内的平均值
min()监控项的最小值CPU使用率最近5分钟的最小值大于6
system.cpu.load.min(5m)>6
CPU最近5次最小的值大于2
system.cpu.load.min(#5)>2
max()监控项的最大值max(#5)→最新5个值的最大值
max(1h)→最近一小时的最大值
last()最后的第几个值注意last的#num参数和在其它函数中的作用不同
例如:返回值 3,7,2,6,9
last() 通常等同于last(#1)
last(#5) 表示第五个最新值,注意:不是五个最新值
last(#2) 将返回值为7,last(#5)返回值为9
last(#10,30)表示每隔30s采样一次,取倒数第10个值
diff()比对上一次文件的内容返回值为1,表示发生变化,返回值为0,表示没有变化
nodata()监控一段时间内是否返回数据时间不少于30秒,因为timer处理器每30秒调用次
返回1 -指定评估期没有接收到数据
返回0-其它
c、常见运算符

加减乘除,大于等于小于,负数,逻辑运算与或非

not, and and or运算符区分大小写,而且必须为小写。它们也必须被空格或括号包围。
所有运算符中,除了-和not ,都有左到右的关联性。- 和not是非结合的(意味着-(-1)和not (not 1)应该用-1 and not not 1代替).

  • <,<=,.>.>=,=, <>如果指定的关系为真,运算符将会在触发器表达式中产生’1’。如果指定的关系为假,则返回’0’。如果至少有一个运算数未知,则结果未知;
  • and对于已知的运算对象,如果两个运算对象的比较不等于"0",则运算符将会在触发器表达式中产生"1",否则,它产生"0";对于末知的运算对象,如果两个运算对象的比较等于"0",则会产生“0",否则,则会产生"Unknown";
  • or对于已知的运算对象,如果其中任意一个运算对象的比较不等于"0", 则运算符会在触发器表达式中产生"1”,否则,它产生"0";对于未知的运算对象进行"or”运算,则只有当一个运算对象的比较不等于"0",才会产生"1",否则,它会产生"Unknown";
  • 如果操作数的值不等于"0",则已知操作数的逻辑否定运算符not的结果是"0”;如果操作数的值等于"0",则为"1"。对于末知的操作数not产生"Unknown"。
d、具体实现
#定义表达式

##www.zabbix.com处理器负载过高

{www.zabbix.com:system.cpu.load[all,avg1].last()}>5
#主机www.zabbix.com,监控项system.cpu.load,监控项取值[all,avg1]:一分钟内的平均值,最新获取的值last(),判断>5
#判断当前主机一分钟之内最新、最近获取的处理器负载值大于5时

{www.zabbix.com:system.cpu.load[all,avg1].last()}>5 or {www.zabbix.com:system.cpu.load[all,avg1].min(10m)}>2
#当前处理器负载大于5或者最近10分钟内最小值大于2,表达式为true

#在web页面:模板-->创建触发器-->名称描述,表达式添加,定义严重性-->可选恢复表达式,用于定义问题解决条件
#报警依赖关系:例如当服务器宕机时,端口也是不打开的,两个地方都设置有触发器时会有两次报警,有所影响排查,建立依赖关系可以仅进行服务器宕机报警,减少报警影响

2.2、监控linux

#准备zabbix agent2
[root@ubuntu2004 ~]#wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
[root@ubuntu2004 ~]#dpkg -i zabbix-release_5.0-1+focal_all.deb
[root@ubuntu2004 ~]#sed -i.bak 's#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#' /etc/apt/sources.list.d/zabbix.list       #更换为国内镜像地址
[root@ubuntu2004 ~]#apt update
[root@ubuntu2004 ~]#apt install zabbix-agent2 -y

#更改配置
[root@ubuntu2004 ~]#vim /etc/zabbix/zabbix_agent2.conf
Server=127.0.0.1,10.0.0.8,10.0.0.0/24      #授权谁能监控我
#更改其指向为zabbix server监控端服务器,写域名的话要DNS解析或者更改/etc/hosts文件,也可网卡DNS指向
Hostname=Zabbix server  #agent服务器的主机名
[root@ubuntu2004 ~]#sed -i.bak '/^Server=/c Server=10.0.0.100' /etc/zabbix/zabbix_agent2.conf
[root@ubuntu2004 ~]#systemctl restart zabbix-agent2.service

#在zabbix server上将zabbix agent2加入监控栏,在zabbix server的web页面操作
配置-->主机-->创建主机、添加主机-->指定监控服务,即创建监控项,可通过模板Template OS Linux by Zabbix agent进行添加常规监控项,也可看需求自定义添加-->也可批量导入或者全克隆已添加的主机

2.3、监控Windows

流程

  • 安装agent,指定zabbix server地址
  • 在zabbix server上添加被监控的主机,web页面
  • 实验需要可更改缩短采样时间,模板全选,更新间隔,批量更新
  • 在被监控的主机上指定监控项,可用模板
  • web页面查看
在官网,下载zabbix agent,Windows的msi版本
https://cdn.zabbix.com/zabbix/binaries/stable/5.0/5.0.35/zabbix_agent2-5.0.35-windows-amd64-openssl.msi
注意:这个包安装后删除会删除不干净,会影响到下一次安装

在安装过程中会需要指定zabbix server服务器的信息

cmd查找services.msc,找到zabbix agent2可查看相关信息,如配置文件存放路径,后续需更改服务器地址可在里面进行更改

可通过模板Template OS Windows by Zabbix agent添加监控项,也可自定义

检测工具:命令行的工具,可用于检测agent是否健康,结合监控项来用

[root@ubuntu2004 ~]#apt -y install zabbix-get
[root@ubuntu2004 ~]#zabbix_get -s 10.0.0.18 -k agent.ping     #判断是否可连接,返回结果1
1

2.4、监控nginx应用

使用模板Template App Nginx by HTTP,监控nginx的状态页面status

[root@10.0.0.8 ~]#vim /etc/nginx/nginx.conf
location /basic_status {       #注意zabbix的宏定义监控的是basic_status,因此搭建的状态页面名称也得是这个,除非更改宏定义
	stub_status;
	allow 10.0.0.100;    #白名单
	deny all;
}
[root@10.0.0.8 ~]#systemctl restart nginx

2.5、监控php状态页

使用模板Template App PHP-FPM by Zabbix agent

[root@10.0.0.8 ~]#vim /etc/php-fpm.d/www.conf
listen = 127.0.0.1:9000            #更改为监听端口9000,而不是走sock文件
pm.status_path = /status          #取消该行注释,注意页面名称和zabbix的宏定义相同
ping.path = /ping                 #取消注释开启ping功能
[root@10.0.0.8 ~]#mv /etc/nginx/conf.d/php-fpm.conf{,.bak}     #如不是编译安装的php,会自动添加这两个配置文件,需更改
[root@10.0.0.8 ~]#mv /etc/nginx/default.d/php.conf{,.bak}
[root@10.0.0.8 ~]#systemctl restart php-fpm.service

[root@10.0.0.8 ~]#vim /etc/nginx/nginx.conf
location ~ ^/(.*\.php|ping|status)$ {
	include fastcgi_params;
	fastcgi_pass 127.0.0.1:9000;
	#fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
[root@10.0.0.8 ~]#systemctl restart nginx

2.6、监控java程序

监控流程

  • zabbix-server 通知 zabbix-Java-Gateway需要获取监控主机的哪些监控项
  • Zabbix-Java-Gateway 通过 JMX 协议请求采集 Java进程数据
  • Java程序通过 JMX 协议返回数据给 zabbix-Java-Gateway
  • zabbix-Java-Gateway 最终返回数据给 zabbix-server
  • zabbix-server 对采集的JAVA 数据进行存储,然后进行 Web 展示

以tomcat为例

2.6.1、开启JMX功能
[root@tomcat ~]#vim /usr/local/tomcat/bin/catalina.sh
.......
# -----------------------------------------------------------------------------
#添加下一行

CATALINA_OPTS="$CATALINA__OPTS
-Dcom.sun.management.jmxremote                  #启用远程监控JMX 
-Djava.rmi.server.hostname=10.0.0.18            #是tomcat主机自己的IP地址,不是zabbix服务器的地址
-Dcom.sun.management.jmxremote.port=12345       #默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可
-Dcom.sun.management.jmxremote.authenticate=false    #不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false"         #不使用ssl认证

# OS specific support. $var _must_ be set to either true or false.
.......
[root@tomcat ~]#systemctl restart tomcat
2.6.2、部署java-gateway

监听端口10052

部署在zabbix server和java app之间

官方步骤

https://www.zabbix.com/cn/download

a. 安装 Zabbix 存储库

https://www.zabbix.com/documentation/5.0/manual/installation/install_from_packages

# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
# dnf clean all
b. 安装 Zabbix java gateway
# dnf install zabbix-java-gateway
c. 启动Zabbix java网关进程

启动Zabbix java网关进程,并使其在系统启动时启动。

# systemctl restart zabbix-java-gateway
# systemctl enable zabbix-java-gateway

原理和安装zabbix差不多,装仓库,改仓库指向加速,安装包,可将其和zabbix server部署在同一主机上,节省资源

#将java-gateway和zabbix server部署在同一主机上,在前面已部署zabbix server
[root@zabbix-server ~]#yum -y install zabbix-java-gateway
[root@zabbix-server ~]#systemctl enable --now zabbix-java-gateway.service
2.6.3、配置zabbix server
[root@zabbix-server ~]#vim /etc/zabbix/zabbix_server.conf
# JavaGateway=           #指定java gateway主机
JavaGateway=127.0.0.1
# StartJavaPollers=0     #开启java Poller进程数,用0个进程来干活,该数字和java程序数量有一定关联
StartJavaPollers=1
[root@zabbix-server ~]#systemctl restart zabbix-server.service

关联模板

系统内置模板:

Template App Generic Java JMX

Template App Apache Tomcat JMX

注意:关联主机时interfaces选择JMX类型接口

2.7、监控网络设备,硬件

SNMP协议,简单网络管理协议,NMS和Agent

MIB管理信息库

在被管理端

打开路由器管理页面–>设备管理–>SNMP–>启用SNMP功能,常用v2c版本–>设置团体(用户名和密码认证)

测试是否可连接

yum -y install net-snmp-utils
apt -y install snmp

[root@zabbix-server ~]#snmpwalk -v 2c -cpublic 10.1.84.1 .1.3.6.1.2.1.1.5.0
SNMPv2-MIB::sysName.0 = STRING: H3C            
#-cpublic              指定团体名(用户名,在SNMP中设置的)       
#-v 2c                 指定版本
#10.1.84.1             主机或者说设备ip
#.1.3.6.1.2.1.1.5.0    所需查看的OID,显示设备主机名

在zabbix管理页面关联设备

配置–>主机–>创建主机–>interfaces选择SNMP类型接口,注意地址是否能ping通,指定版本,团体名(SNMP的密码)–>关联模板,内置模板:Template Module Generic SNMP,也可自定义–>更改宏的值( **{$SNMP_COMMUNITY}**的值,即用户名 )

3、主动模式和被动模式

以agent端的角度来说,默认使用被动模式,主动模式为agent端主动向server 端发送监控情况,主动模式主要是指监控项

具体实现

#在agent上
[root@rocky8 ~]#vim /etc/zabbix/zabbix_agent2.conf
ServerActive=10.0.0.8      #主动模式指向更改为 Zabbix Server的IP或FQDN域名
Hostname=10.0.0.18         #当前主机的IP,此项必须和Zabbix Server中设置的主机名称相同
[root@rocky8 ~]#systemctl restart zabbix-agent2.service

在zabbix的web管理页面,配置–>主机/模板

创建监控项时,更改类型选择主动式,也可全克隆原有的模板进行更改,批量更新即可,注意命名加个active,便于区分

降低服务器压力

#步骤
agent端
1 ServerActive=zabbix  Server的地址
2 Hostname=服务器的Web上名称一致
3 restart服务

服务器端
5 添加主机 名称=Hostname和客户端相同
6 关联模板,包括的监控项是主动模式

4、告警通知

  • 邮件
  • 微信
  • 短信
4.1、邮件通知

邮箱需要开启SMTP功能,在邮箱设置开启,也可用脚本来发送邮件

1、开启SMTP功能,该邮箱将用于发送告警邮件

2、创建告警媒介,用于指定谁来发送邮件

管理–>报警媒介–>创建或更改–>message templates报警模板,以什么样的形式展示报警信息

#邮件
[root@rocky8 ~]#cat /etc/mail.rc |grep ^set.*
set from=3400153712@qq.com   #SMTP电邮,邮箱地址
set smtp=smtp.qq.com         #SMTP服务器
set smtp-auth-user=3400153712@qq.com        #认证用户名称,邮箱名
set smtp-auth-password=gioslfwbbzgucjoo     #认证密码,即授权码

#端口:25不加密,465是加密端口

3、指定接收邮件报警

管理–>用户–>报警媒介–>指定类型,即所创建的告警媒介,收件人地址

4、创建动作

触发器发生后所需执行的动作

配置–>动作–>创建动作

  • 也可使用脚本来发送邮件,需事先搭建好脚本,将脚本存放路径在 /usr/lib/zabbix/alertscripts/ 下;创建新媒介,类型选脚本
  • 可搭配分级告警
4.2、微信告警

1、注意使用的是企业微信,在网页版管理后台里的应用管理,创建新的小程序,用于引用企业微信来发送信息

  • 地址:https://work.weixin.qq.com/wework_admin/frame#index
  • 该应用的可见范围决定后续发送消息谁能接收

2、创建完成留意在新创建的小程序中搭配企业可信IP,新功能,否则无法连接,类似白名单

3、需要记住新创建的小程序的AgentId和Secret的值,相当于密钥,还有就是企业id,在我的企业里面

在这里插入图片描述

在这里插入图片描述

AgentId:1000002
Secret:TgRbp97V1Pm5Tgim_Tj3vZSFFF88abW7WNazWaOOV0o
企业ID:wwc2b01ed403f39fe2

4、搭建脚本,存放路径在 /usr/lib/zabbix/alertscripts/ 下

[root@rocky8 ~]#cat /usr/lib/zabbix/alertscripts/wechat.sh
#!/bin/bash
CorpID="wwc2b01ed403f39fe2" 	#我的企业下面的CorpID
Secret="TgRbp97V1Pm5Tgim_Tj3vZSFFF88abW7WNazWaOOV0o"  #创建的应用那里的Secret
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CorpID&corpsecret=$Secret"
Token=$(/usr/bin/curl -s -G $GURL |awk -F\": '{print $4}'|awk -F\" '{print $2}')

PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Token"
 
function body(){
    local int agentid=1000002   #改为AgentId 在创建的应用那里看
    local UserID=$1             #发送的用户帐号名,位于$1的字符串,给谁发,谁来接收,写的是个人信息里的账号
    local PartyID=2             #通讯录中的部门ID
    local Msg=$(echo "$@" | cut -d" " -f3-)
    printf '{\n'
    printf '\t"touser": "'"$UserID"\"",\n"
    printf '\t"toparty": "'"$PartyID"\"",\n"
    printf '\t"msgtype": "text",\n'
    printf '\t"agentid": "'"$agentid"\"",\n"
    printf '\t"text": {\n'
    printf '\t\t"content": "'"$Msg"\""\n"
    printf '\t},\n'
    printf '\t"safe":"0"\n'
    printf '}\n'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL

#测试
[root@rocky8 alertscripts]#chmod +x wechat.sh
[root@rocky8 alertscripts]#./wechat.sh Wei 微信告警测试标题 告警测试信息

5、在zabbix的管理页面添加报警媒介

管理–>创建新媒介–>名称,类型选脚本,指定脚本名称,添加参数–>定义报警内容格式

#参数,注意顺序是结合脚本的,不可打乱
{ALERT.SENDTO}--收件人媒介
{ALERT.SUBJECT}--通知主题,因为微信没有主题,此项无效,可以不填写
{ALERT.MESSAGE}--通知内容

6、关联用户

用户–>报警媒介,类型选微信告警,指定收件人即企微账号–>定义动作

4.3、短信告警

购买,申请短信条数–>申请短信模板,记下模板CODE留作使用–>搭建脚本–>创建媒介,指定参数–>关联用户,或者添加动作后再关联。Custom message选定,主题是模板CODE,注意内容和模板匹配,消息是短信模板内置变量
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值