第七章 监控系统-zabbix自定义监控项入门

一、zabbix监控基础架构

zabbix-agent(数据采集) --> zabbix-server(数据分析\报警) --> 数据库(数据存储) --> zabbix-web(数据展示)

二、自定义监控项格式

需求:监控登录服务器的用户会话数量
### Option: UserParameter
#       User-defined parameter to monitor. There can be several user-defined parameters.
#       Format: UserParameter=<key>,<shell command>
#       See 'zabbix_agentd' directory for examples.
 
#官方示例
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V


#单参数语法 :
UserParameter=<key>,<command>

简单的命令:
UserParameter=ping,echo 1
UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive

例子 : [root@10_56_80_254 ~]# mysqladmin -uroot -proot | grep -c alive
1

# 多参数语法:
方法一 : 在配置文件zabbix_agentd.conf内配置多个

UserParameter=zabbix_name,hostname
UserParameter=zabbix_ifconfig,ifconfig


方法二 : 在zabbix_agentd.d目录下定义*.conf文件

[root@10_56_80_254 zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d  #该路径下创建*.conf文件

[root@10_56_80_254 zabbix_agentd.d]# cat test.conf
UserParameter=zabbix_id,id zabbix | awk '{print$2}'
UserParameter=zabbix_name,hostname
UserParameter=zabbix_ifconfig,ifconfig
UserParameter=zabbix_a,/bin/sh /tmp/test/a.sh  #获取脚本信息时,刷新间隔时间短会产生无数据

灵活的用户参数使用Key接受参数。这样一个灵活的用户参数可以作为创建几个监控项的基础。
灵活的用户参数具有以下语法:
UserParameter=key[*],command
参数 描述
Key 唯一的监控项Key。[*]定义该Key接收括号内的参数。在配置监控项时给出参数。
Command 执行命令以评估Key的值。仅适用于灵活的用户参数:你可以使用命令中的位置引用$ 1 … $ 9来引用监控项Key中的相应参数。Zabbix解析监控项Key的[]中包含的参数,并相应地替换$ 1,…,$ 9。$ 0将由原始命令(在扩展$ 0,…,$ 9之前)替换为运行。不管它们是用双引号(“)还是单引号(')括起来,都会解析位置引用。要使用位置引用不变,请指定双美元符号 - 例如,awk'{print $$2}'。 在这种情况下,执行命令时,“$$2”实际上会变成“$2”。

三、自定义监控项第一步

#1.自定义监控首先在配置文件开启监控脚本
[root@prd-apm001 ~]$ vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1  #是否启用用户自定义监控脚本
Include=/etc/zabbix/zabbix_agentd.d/*.conf  #该路径下定义监控

#2.使用命令查看服务器当前登录用户会话数量
[root@redis01 ~]# uptime |awk '{print $6}'

四、自定义监控项第二步

#方法一 : 在配置文件/etc/zabbix/zabbix_agentd.conf内配置多个
UserParameter=zabbix_name,hostname
UserParameter=zabbix_ifconfig,ifconfig

#方法二 : 在zabbix_agentd.d目录下定义*.conf文件
[root@prd-apm001 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@prd-apm001 /etc/zabbix/zabbix_agentd.d]$ cat test.conf 
UserParameter=zabbix_id,id zabbix | awk '{print$2}'
UserParameter=zabbix_name,hostname
UserParameter=zabbix_ifconfig,ifconfig
UserParameter=zabbix_a,/bin/sh /tmp/test/a.sh  #获取脚本信息时,刷新间隔时间短会产生无数据

#把命令加入配置文件并起名
[root@prd-apm001 ~]$ cd /etc/zabbix/zabbix_agentd.d/
[root@prd-apm001 /etc/zabbix/zabbix_agentd.d]$ cat test.conf 
UserParameter=user.count,uptime |awk '{print $6}'

#重启服务
[root@prd-apm001 /etc/zabbix/zabbix_agentd.d]$ systemctl  restart zabbix-agent.service

五、自定义监控项第三步

#客户端,查看监控项
[root@prd-apm001 ~]$ zabbix_agentd -p |grep user.count
user.count                                    [t|1]

六、自定义监控项第四步

在zabbix-server端获取agent端数据,使用zabbix_get命令

#安装zabbix_get命令
[root@prd-apm001 ~]$ rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-get-5.0.0-1.el7.x86_64.rpm

#语法
[root@prd-apm001 ~]$ zabbix_get
usage:
  zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address] -k item-key
  zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address]
                --tls-connect cert --tls-ca-file CA-file
                [--tls-crl-file CRL-file] [--tls-agent-cert-issuer cert-issuer]
                [--tls-agent-cert-subject cert-subject]
                --tls-cert-file cert-file --tls-key-file key-file -k item-key
  zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address]
                --tls-connect psk --tls-psk-identity PSK-identity
                --tls-psk-file PSK-file -k item-key
  zabbix_get -h
  zabbix_get -V


#获取数据
[root@prd-apm001 ~]$ zabbix_get -s 127.0.0.1 -k user.count
1

七、自定义监控项第五步

#1.在web页面添加监控项,选择配置主机中的监控项。

#2.创建监控项

#3.填写监控项
1、监控项名称
2、键值为自定义配置时的key名称
3、选择主机接口
4、填写新的应用集
5、添加描述
6、点击测试,测试完成后点击添加

#4.查看应用集,可以看到我们新创建的应用集

#5.点击查看监控项即可

八、自定义监控项第六步

添加触发器:当用户登录超过2人的时候,就要报警

#1.点击配置主机中的触发器

#2.点击新建触发器

#3.创建触发器
1、添加触发器名称
2、选择报警的严重性
3、添加表达式
1)选择监控项
2)结果> 2
4、点击插入
5、添加触发器描述
6、点击添加

#4.多用户登录测试

#5.优化触发器名称
用zabbix内置变量,来优化触发器的名称,此处使用的是

主机名变量:{HOST.NAME}
IP地址变量:{HOST.IP}

Monitor Login User Count Problem 主机名:{HOST.NAME} IP地址:{HOST.IP}

#6.再次查看问题触发器信息

#7.前端web页面告警

九、自定义监控项第七步

添加图形化界面
#1.点击配置主机中的图形

#2.点击创建图形

#3.添加图像化
1.填写图形化名称
2.添加监控项
3.点击添加

#4.查看图形化界面

十、自定义监控项第八步

给触发器,添加动作,邮件告警

如果事件源是触发器,那么就会触发动作,触发什么动作呢?就需要自己来创建了。
自定义触发器--->动作--->通知
如果事件源是触发器-->则创建一个触发的动作-->通知
1.我怎么通知。通过介质(配置一个邮箱的发件人)
2.通知给谁。(接收的邮箱)
3.通知的内容(内容可以自定义

#1.创建动作

#2.添加触发器

#3.设置邮件告警发送人

#4.配置邮件服务

#5.添加管理员邮件地址

#6.查看邮件

posted @ 2021-12-21 14:51  年少纵马且长歌  阅读(708)  评论(0编辑  收藏  举报