【运维知识进阶篇】zabbix5.0稳定版详解2(自定义监控+报警+图形+模板)

zabbix内容很多,这篇文章继续给大家介绍,zabbix功能很强大,只要是能获取到的数据都可以监控,俗称万物可监控,这也就决定了zabbix有很大的自由度,本篇文章包括自定义监控,自定义报警,自定义图形,自定义模板。

目录

自定义监控

案例1:监控系统登录数量

案例2:监控tcp 22端口是否存活,并做值映射

案例3:自定义监控服务器内存百分比,设置触发器

​案例4: 配置多条件触发

 

自定义报警

1、配置邮件发件人,我用的qq邮箱,在设置-->账户里,开启服务,其他邮箱同理。

2、配置报警媒介类型

3、开启动作 

​4、配置收件人

​5、dd测压测试是否发送邮箱 

6、自定义告警内容

7、远程执行命令

8、微信报警

自定义图形

1、给自定义监控项创建图形

2、多图形组合成一张图

3、幻灯片演示

自定义模块

1、创建模板

2、复制自定义监控项配置为模板

3、复制触发器

4、复制图形


自定义监控

通过获取系统信息来定义zabbix的监控项、配置zabbix触发器发送告警通知

案例1:监控系统登录数量

1、获取系统登录的用户数
 
[root@Web01 ~]# w
 19:25:02 up 2 days,  4:00,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      30Mar23 10:37m  0.55s  0.51s bash
root     pts/0    10.0.0.1         11:17    6.00s  0.35s  0.02s w
[root@Web01 ~]# w|grep users|awk '{print $(NF-6)}'
2

2、定义为zabbix的监控项

#配置zabbix文件
[root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.d/system.conf
UserParameter=login_number,w|grep users|awk '{print $(NF-6)}'    #=后面是固定格式
#查看监控项,有语法检查功能
[root@Web01 ~]# zabbix_agentd -p|grep login_number
login_number                                  [t|2]
#重启客户端
[root@Web01 ~]# systemctl restart zabbix-agent

3、使用zabbix服务器端进行采集监控

服务端通过命令行测试是否通过监控项来获取用户自定义的值

[root@Zabbix ~]# yum -y install zabbix-get
[root@Zabbix ~]# zabbix_get -s 172.16.1.7 -p 10050 -k login_number
2

8bc93ab03f5e48ab94a3dfb528f5677e.png

10745d13e24344f78991ee9cfebf2fcf.png

912088ccc4b24a1987f4023f25a5f8e8.png

d75ade83d87b47febec6ec88ba49affa.png

案例2:监控tcp 22端口是否存活,并做值映射

检查TCP端口是否处于侦听状态,返回0未侦听,返回1正在侦听

#zabbix5.0版本不支持netstat命令需要加s权限
[root@Web01 ~]# chmod +s /bin/netstat
[root@Web01 ~]# netstat -tnulp|grep 0.0.0.0:22|wc -l
1
[root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.d/system.conf
UserParameter=login_number,w|grep users|awk '{print $(NF-6)}'
UserParameter=tcp_listen_22,netstat -tnulp|grep '0.0.0.0:22'|wc -l
[root@Web01 ~]# zabbix_agentd -p|grep tcp_listen_22
tcp_listen_22                                 [t|1]
[root@Web01 ~]# systemctl restart zabbix-agent

046d2182bee94169818cd4112b94f65d.png

端口正常监听状态 

650a45ccfd894a1e9f4c1421f15d5dd6.png

 停止服务

[root@Web01 ~]# systemctl stop sshd

d9a9d962b007448b9adc35aee6bfd560.png自定义配置展示值映射

471d0a2c2f32486fb8d4da805a6b4b4d.png

01e0b7fccf2b4a03a20c1363a8b5885e.png

a0edd2a4e4924a7dafdd9be2875d0151.png

4522a1099cf04ccebb71899e5a3cb60d.png

 1dd6aa97048c469d803be83b78715690.png

 恢复端口侦听

[root@Web01 ~]# systemctl start sshd

cea15e7b7434484da4bcd1c4fc076f82.png

案例3:自定义监控服务器内存百分比,设置触发器

1、自定义监控项

[root@Web01 ~]# free|awk 'NR==2{print $NF/$2*100}'
51.5489
[root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.d/system.conf 
UserParameter=login_number,w|grep users|awk '{print $(NF-6)}'
UserParameter=tcp_listen_22,netstat -tnulp|grep '0.0.0.0:22'|wc -l
UserParameter=mem_free,free|awk 'NR==2{print $NF/$2*100}'
[root@Web01 ~]# systemctl restart zabbix-agent
[root@Web01 ~]# zabbix_agentd -p|grep mem_free
mem_free                                      [t|51.3581]

 2、服务端测试获取key值并添加监控

[root@Zabbix ~]# zabbix_get -s 172.16.1.7 -p 10050 -k mem_free
51.536

2d922a68315840cfa9f329b5b0d9af37.png c781321cdeb94818a35e1ed57fe742d4.png

3、内存可用百分比小于20%,则触发报警规则

c77d7efb1481419b9812fc2465cb0e6b.png

 5445676c744d4e8bb434978924323e60.png

1fbf808c0abd461a84ef99115d848a7e.png

2abbda75e3904965a415d637a96a538a.png

4、使用dd压测消耗内存

dd if=/dev/zero of=/dev/null bs=600M count=1024

1e90b749ea474ddc9b6e415c3c58118f.png案例4: 配置多条件触发

1、添加swap可用百分比

[root@Web01 zabbix_agentd.d]# free -m|awk 'NR==2{print $
19.856
[root@Web01 zabbix_agentd.d]# cat /etc/zabbix/zabbix_agentd.d/system.conf 
UserParameter=login_number,w|grep users|awk '{print $(NF-6)}'
UserParameter=tcp_listen_22,netstat -tnulp|grep '0.0.0.0:22'|wc -l
UserParameter=mem_free,free|awk 'NR==2{print $NF/$2*100}'
UserParameter=swap_free,free -m|awk 'NR==2{print $3/$2*100}'
[root@Web01 zabbix_agentd.d]# systemctl restart zabbix-agent

30bae9007deb418cbd5e482b3a8789e0.png

2、添加触发器,先添加一个,再点击表达式构造器,再添加另一个

89c623cd93604d45a2fa2ad153d75b89.png

3、使用dd压测,并查看仪表盘 

[root@Web01 zabbix_agentd.d]# dd if=/dev/zero of=/dev/null bs=600M count=1024

3e94a4c5f4034a7b963b92df8d93f510.png

 

自定义报警

1、配置邮件发件人,我用的qq邮箱,在设置-->账户里,开启服务,其他邮箱同理。

59f82b7984734181b91fc709981cb07f.png

 2、配置报警媒介类型

0b7859611a774b9182f224964f9c3e17.png

3、开启动作 

21ca8af7427e42d7b6444168419a527a.png4、配置收件人

a0732d9436604ba18f5c0d9bc714aaef.png

5db4bc8a671647a9ad6c8566e4cab33a.png 5、dd测压测试是否发送邮箱 

dd if=/dev/zero of=/dev/null bs=700M count=1024

 5c25366245514ee09d50017d7d69ed0d.png

 6、自定义告警内容

故障操作
默认标题:
故障: {EVENT.NAME}
消息内容:
报警主机: {HOST.NAME1}
报警服务: {ITEM.NAME}
报警key1: {ITEM.KEY1}: {ITEM.VALUE1}
报警key2: {ITEM.KEY2}: {ITEM.VALUE2}
严重级别: {TRIGGER.SEVERITY}

恢复操作
默认标题:
恢复: {EVENT.NAME}
消息内容:
恢复主机: {HOST.NAME1}
恢复服务: {ITEM.NAME}
恢复key1: {ITEM.KEY1}: {ITEM.VALUE1}
恢复key2: {ITEM.KEY2}: {ITEM.VALUE2}

 772b8b59fd214537a756250535d5ef55.png

自定义操作(图中这里可以不发送给用户群组)

 ​​​a0427d815ba54ee0b6293e65a49ae52d.png

自定义恢复操作 

66bdd8f45167453c911f2ecfa3f4f0b1.png3dbf4bbe985e45dbbf353de5f1c00afd.png

dd压力测试并查看邮箱

511f32b55e6f4f34b7e1e32706c587e7.png

 b8fcff5065bf4e7092798a28ddd90693.png

7、远程执行命令

因为zabbix服务启动用户为zabbix,所以在远程执行命令时,需要sudo提权

[root@Web01 ~]# grep zabbix /etc/sudoers
root    ALL=(ALL)       ALL
zabbix ALL=(ALL) NOPASSWD: ALL        

#测试zabbix权限
[root@Web01 ~]# su - zabbix -s /bin/bash
Last login: Mon May  8 22:16:48 CST 2023 on pts/0
-bash-4.2$ sudo systemctl restart sshd

[root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.conf|grep EnableRemoteCommands
### Option: EnableRemoteCommands - Deprecated, use AllowKey=system.run[*] or DenyKey=system.run[*] instead
EnableRemoteCommands=1

[root@Web01 ~]# systemctl restart zabbix-agent

1d6212245fcc4f1d94b6daab265f9742.pngd703913425ae426693befce7b2147626.png

a5fe5c51682544c8af6038b7a7a931b0.png

ec6b4a8985cd427c956b3072e1de0606.png

[root@Web01 ~]# systemctl stop sshd

自动恢复e92e44c788b24dba9f87ad46ab5c80bc.png

 8、微信报警

1、配置脚本文件

#需要用到weixin.py脚本和get-pip.py脚本
vim weixin.py
#修改三行内容,具体信息,参考自己的企业微信
corpid='xxx'
appsecret='xxx'
agentid=1xx

[root@Zabbix ~]# python get-pip.py        #报错是网络问题,重新执行
[root@Zabbix ~]# pip install requests
[root@Zabbix ~]# python weixin.py 'XingMing' '下雨了!' '回家收衣服'    #姓名,首字母大写

[root@zabbix ~]# mv weixin.py /usr/lib/zabbix/alertscripts/        #移动至zabbix指定的目录
[root@zabbix ~]# chmod +x /usr/lib/zabbix/alertscripts/weixin.py    #给予执行权限

企业微信后台需要添加小程序,添加可信域名(需备案),添加可信IP(zabbix的所在网络的公网IP,curl cip.cc) 

498957a56b9d4c958293fda6d2261bc1.png

5f7e984d7d5740f39b9b00f0d4e9b8a9.png

2、配置报警媒介类型

74fefc5bc9b04992ae099165d20d02a8.png

69633bffd2a84e61b081911faac0436b.png

d58010a6a04f4b289629a86201093e9f.png

3、增加用户的告警媒介,填写收件人4d39347bb4434abbb19e077bc4d8a650.png

4、配置动作添加微信媒介进行告警测试

fc548495de7e4c3497193895c75125ac.png

 7a2c5bbe63e742d492e71f9b671cd205.png

自定义图形

1、给自定义监控项创建图形

501ef42d984f46e6a7a823ebf6606972.png

56643466fb1f43d5a53a8170b8090a66.png

be9ed6e01704402886ab35ad4940ae98.png

a5cd23e21ea94a64bd3c17dcfa6c04ec.png 7b5ca8151de54836b307fb21354deb91.png

 4b27e12c534e4dfb80497cac3715f227.png

2、多图形组合成一张图

83a0564e5eb34ad48d7dec0b2b09bac2.png

3dc23f7312644133944821adb688da67.png

b84bf9d94b3140aa8ab409552569cb0f.png

4949d253657a47e798164dabc3be3e4c.png更改可更换图标,加号可添加行列,减号可删除行列b3925482a0e64afea3390fe6257e3ad2.png

76debfda4bd8409b9c44a2ea2dce1a26.png

d450d44b103a44d6a2f4a63dd0978923.png

3、幻灯片演示

ff30f7392f754b10bff8d9e23574dcf5.png

2267f2cade6b413b817fa8835d0ab471.png

点进去即可放映 

afff0b37998543dd8440ce585ecac5ac.png

c867c5ab4245435fb6129e7e05e6deaf.png

453e51379c4944af99406c078ce93bd9.png

自定义模块

1、创建模板

创建模板的作用,主机和模板分离,多台服务器监控相同项目只调用一个模板即可,修改监控项修改模板即可完成对所有服务器的操作

6d02219bbebd471e87edda911fad6d38.png

42b320ef03214644be0df56ad6a3fdcf.png

2、复制自定义监控项配置为模板

找到之前web01的主机监控项,选中点击复制

8a65184fec53407fbd0cd800692961df.png

039ff3d00383444792b079f41852aed4.png

ef7f0260ae18487daf81457fce432f77.png

3、复制触发器

与监控项同理,进行复制 

d9e0f45337e54645ac7cfcd3eca4798e.png

d099d6635a6d4861abf03051b70c382d.png

4、复制图形

与监控项、触发器同理,注意:应用集根据需求也可以进行复制

0f2e16ea3d614fa7b2be4b15dfa5ac37.png

5f35168195ee406fa6a9a54f4abc910d.png

自定义配置的模板信息

a062f2fc6ab34dcfa1818f9466a17d1d.png

5、新建一台服务器关联自定义模板linux-server

[root@Web01 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

[root@Web02 ~]# yum -y install zabbix-agent
[root@Web02 ~]# cat /etc/zabbix/zabbix_agentd.conf|grep Server=
#	Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
# Server=
Server=172.16.1.71

[root@Web01 ~]# scp /etc/zabbix/zabbix_agentd.d/system.conf 10.0.0.8:/etc/zabbix/zabbix_agentd.d/

[root@Web02 ~]# systemctl start zabbix-agent

9fae329ec78847bf8c459105b704bc96.png

2fb8639b56244da9b1fd78080dd15530.png

 各项都监控到了bc512cdb941041aa9d790fa9aeb5b7a5.png

图形也监控到了

00c1d15c6e80479d96929ef745af0470.png


我是koten,10年运维经验,持续分享运维干货,感谢大家的阅读和关注!

猜你喜欢

转载自blog.csdn.net/qq_37510195/article/details/130565430
今日推荐