zabbix安装使用-3

第7章 *自定义监控*

代理端安装

7.1 *监控对象*

#监控系统中的对象

[root@web03 ~]# yum install sysstat -y

[root@web03 ~]# iostat | awk '/^sda/{print $2}'

7.2 *配置自定义监控*

#因为主配置文件中有include调用,防止配置文件臃肿,直接写在/etc/zabbix/zabbix_agentd.d/中

[root@web03 ~]# grep 'Include' /etc/zabbix/zabbix_agentd.conf

Include=/etc/zabbix/zabbix_agentd.d/*.conf

#如何增加监控项语法格式: UserParameter=,

[root@web03 ~]# vim /etc/zabbix/zabbix_agentd.d/iotop.conf

UserParameter=iotps,iostat | awk '/^sda/{print $2}'

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

7.3 *验证自定义监控*

#agent如何验证自己定义的监控项是否生效,是否能取值

[root@web03 ~]# zabbix_agentd -p |grep iotps

iotps [t|1.72]

7.4 *服务端测试*

#Zabbix-Server如何验证Zabbix-Agent是否有对应的监控项

[root@m01 ~]# yum install zabbix-get -y

[root@m01 ~]# zabbix_get -s 10.0.0.9 -p10050 -k iotps

1.69

7.5 *ZabbixWeb界面进行关联*

​ 1.选择配置->主机->对应主机->监控项->创建监控项->名称->键值(监控项目名称)->信息类型->单位

​ 2.选择监测中->最新数据->等待30s

img

img

img

img

img

7.6 *自定义阈值*

1.选择配置->主机->对应主机->触发器->创建触发器->名称->添加表达式

表达式一定要选择对应的监控项进行设定({web03-10.0.0.9:system.users.num.last()}>2)->确认

2.开启多个会话窗口,测试前端报警

3.前端报警开启方式->右上角->小人头->正在发送消息->开启即可

7.6.1 *配置警报*

img

img

7.6.2 *配置触发*

img

img

img

img

img

img

7.6.3 *测试结果*

img

7.7 *自定义报警*

7.7.1 *邮箱报警*

当监控项超过触发器设定的阈值->触发动作->(发送消息|执行命令)

怎么报警-> 2.报警怎么发,发什么内容->报警发给谁

注意:要使SMTP验证选项可用,Zabbix服务器应使用cURL 7.20.0或更高版本

1.启用动作

img

2.单击管理->报警媒介类型,设定发送消息的介质-email

img

3.配置发件人的账号和授权码(注意:不是收件人邮箱)

如果使用SSL\TLS安全连接需要注意端口,及密码(密码为验证码)

SMTP的服务器、端口、安全连接及密码需要对应

img

4.配置收件人接收的邮箱地址-点击小人头->选择报警媒介->点击小按钮添加

img

5.添加收件人的邮箱,以及接受报警的等级

img

6.一定要点击更新按钮

img

7.如果邮箱无法发送,请检查email设定的客户端授权码

img

8.如果邮箱配置没有任何错误,效果如下

img

7.7.2 *自定义**微信报警*

准备脚本

1.创建媒体介质类型->脚本->写什么内容->脚本放在哪

[root@m01 zabbix]# grep '[1]' zabbix_server.conf

....省略....

AlertScriptsPath=/usr/lib/zabbix/alertscripts #警报脚本路径

ExternalScripts=/usr/lib/zabbix/externalscripts #外部脚本

[root@m01 ~]# yum install python-pip python-requests -y #配置基础依赖

[root@m01 ~]# pip install requests #同上

[root@m01 ~]# cd /usr/lib/zabbix/alertscripts #上传脚本

[root@m01 alertscripts]# ls

weixin.py

[root@m01 alertscripts]# chmod +x weixin.py #设置执行权限

[root@m01 alertscripts]# ./weixin.py WeiXinID 111 2222 #测试发送邮箱

[root@m01 alertscripts]# chown zabbix.zabbix /tmp/weixin.log #授权文件

2.创建报警媒介

img

3.微信报警脚本媒介

{ALERT.SENDTO} #发给谁

{ALERT.SUBJECT} #发送的主题

{ALERT.MESSAGE} #发送的内容

img

3.接收的微信号(企业微信中自己的名子的全拼,首字母大写 ZhangSan)

img

7.8 *自定义监控**K*

7.8.1 *监控tcp**状态*

可以使用man netstat查看TCP的各种状态信息描述

ESTABLISHED socket已经建立连接

CLOSED socket没有被使用,无连接

CLOSING 服务器端和客户端都同时关闭连接

CLOSE_WAIT 等待关闭连接

TIME_WAIT 表示收到了对方的FIN报文,并发送出了ACK报文,等待2MSL后就可回到CLOSED状态

LAST_ACK 远端关闭,当前socket被动关闭后发送FIN报文,等待对方ACK报文

LISTEN 监听状态

SYN_RECV 接收到SYN报文

SYN_SENT 已经发送SYN报文

FIN_WAIT1 The socket is closed, and the connection is shutting down

FIN_WAIT2 Connection is closed, and the socket is waiting for a shutdown from the remote end.

自定义监控tcp11种状态(演示传参)

[root@web09 ~]# cd /etc/zabbix/zabbix_agentd.d/

[root@web09 zabbix_agentd.d]# cat tcp_state.conf

UserParameter=tcp_state[*],netstat -ant|grep -c $1 #打印匹配的行数

[root@web09 zabbix_agentd.d]# systemctl restart zabbix-agent

语法:UserParameter=tcp_state[*],netstat -ant|grep -c $1

UserParameter= tcp_state # K名

[*] # 变量

netstat -ant|grep -c # 命令

$1 # 传递参数

zabbix-server端测试

[root@zabbix ~]# zabbix_get -s 10.0.0.7 -k 'tcp_state[LISTEN]'

8

由[*]变量接收传递给命令参数$1,然后执行命令统计数据进行收集。

添加11种TCP的状态,先添加一个,然后进行克隆,如需修改更新间隔请全选监控项,批量修改。

img

对于不支持的key,请调整如下选项

img

7.9 *多条件阈值监控*

7.9.1 *取出内存百分比*

取出内存的可用的MB大小 / 总的内存大小 = 实际可用的百分比

1.定义剩余内存百分比

[root@web03 zabbix_agentd.d]# vim /etc/zabbix/zabbix_agentd.d/oldboy.conf

UserParameter=Mem_pre,free -m|awk '/^Mem/{print $NF*100/$2}'

[root@web03 zabbix_agentd.d]# systemctl restart zabbix-agent

2.在ZabbixServer验证监控项是否可用

[root@m01 ~]# zabbix_get -s 10.0.0.9 -k 'Mem_pre'

72.1766

自定义服务监控

7.9.2 *web前端配置*

img

7.9.3 *设置触发警报*

自定义单条件触发器,设置内存低于 30% 进行报警

1.创建触发器

img

2.填写表达式

img

3.压低内存,检查报警邮件(以内存1G为例,使用下面方式进行消耗内存)

[root@web03 ~]# dd if=/dev/zero of=/dev/null bs=500M count=1024

img

7.9.4 *配置第二阈值*

内存低于10%以上,swap使用超过百分之5,再次进行监控报警(更精准)

1.增加swap的监控

[root@web03 ~]# vim /etc/zabbix/zabbix_agentd.d/oldboy.conf

UserParameter=Swap_pre,free -m|awk '/^Swap/{print $3*100/$2}'

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

2.在ZabbixServer使用zabbix_get命令测试

[root@m01 ~]# zabbix_get -s 10.0.0.9 -k 'Swap_pre'

1.05873

3.在ZabbixWeb创建监控项

img

7.9.5 *设置触发多条件警报*

1.基于之前建立的触发器进行修改,修改为多条规则同时满足才触发

{web03-10.0.0.9:Mem_pre.last()}<30 and {web03-10.0.0.9:Swap_pre.last()}>1

img

2.使用dd命令进行压测(只满足内存低于30%规则,所以无法报警)

[root@web03 ~]# dd if=/dev/zero of=/dev/null bs=500M count=1024

3.使用dd命令进行压测(满足内存低于30%规则,并且同时满足swap使用率超过5%

触发报警)

[root@web03 ~]# dd if=/dev/zero of=/dev/null bs=800M count=1024

img


  1. a-Z ↩︎

posted @ 2020-12-10 16:33  zhengjia1989  阅读(154)  评论(0编辑  收藏  举报