zabbix的基本使用

zabbix

Zabbix server默认的78个Item学习记录

zabbix监控方式

img

一、zabbix自定义监控

zabbix-agent '收集'数据,然后'定义key',交给'zabbix-server端'

1.要监控的内容

#监控服务器登录用户的数量
[root@web01 ~]# w | awk 'NR==1 {print $(NF-6)}'
1

2.客户端配置监控项

1)客户端配置文件

[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.conf
...
Include=/etc/zabbix/zabbix_agentd.d/*.conf

2)定义监控项语法

#官方示例
[root@web01 ~]# egrep -v '^#|^$' /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -N | awk '{print $$2}'

#语法:
UserParameter=<key>,<shell command>
UserParameter=<key>[*],<shell command>

3)设置自定义监控项

[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/login_user.conf
UserParameter=login_usernumber,w | awk 'NR==1 {print $(NF-6)}'

4)重启客户端

[root@web01 ~]# systemctl restart zabbix-agent.service

3.客户端验证

[root@web01 ~]# zabbix_agentd -t login_usernumber
login_usernumber                              [t|4]

[root@web01 ~]# zabbix_agentd -p | grep login_usernumber
login_usernumber                              [t|4]

[root@zabbix ~]# man zabbix_agentd
#得到的结果,前面的字母含义
d   	#带小数部分的数字
m   	#不支持,只有在这种模式下,查询日志才可能是活动的(如日志监视项或需要多个收集值的项)引起的。权限问题或不正确的用户参数可能
s   	#文本。最大长度不受限制。
t   	#文本。最大长度不受限制。
u   	#无符号整数

4.服务端获取值

#需要安装zabbix-get,才能在命令行获取agent端的数据
[root@zabbix ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-get-4.0.1-1.el7.x86_64.rpm

#zabbix_get语法
zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address] -k item-key

       -s		:agent 端的主机名或者IP地址
       -p		:agent 监听的端口   默认是10050
       -I		:如果server 端有多个网卡 可以指定通过哪个网卡进行数据获取
       -k		:指定agent 端定义的key

[root@zabbix ~]# zabbix_get -s 172.16.1.7 -p 10050 -k login_usernumber
4

5.web页面添加监控项

监控项 (item)

- 你想要接收的主机的特定数据,一个度量数据。

找到指定主机的监控项

[w3LX01.md.jpg

创建监控项

[w3LOmR.md.jpg

w3LjTx.md.png

二、zabbix自定义阈值(触发器)

触发器 (trigger)

- 一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式

当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回一个“OK”的状态。

找到指定主机监控项

w3XQPK.md.jpg

创建监控项

w3Xl8O.md.jpg

w3XK56.md.jpg

注意:表达式结果为True,触发器才会被触发

三、自定义告警

开启触发器报警动作

w3XvRO.md.jpg

1.QQ邮件方式示例

1.配置---动作---启用里面的动作

2.点击动作---操作
#默认标题:
故障{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}

3.点击动作---恢复操作
#默认标题:
恢复{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}

4.点击更新

5.管理---报警媒介类型---mail
	smtp.qq.com
	465
	qq.com
	1240206455@qq.com
	SSL/TLS:
		SSL验证对端 -- 勾选
		SSL验证主机 -- 勾选
	用户名和密码:
		1240206455@qq.com
		QQ邮箱授权码
	
6.更新

7.配置收件人
	头像---报警媒介---添加
	填写收件人
	根据职位设置接收告警的级别

操作截图

w3zSQU.md.jpg

恢复操作截图

w3xxzT.md.jpg

选择报警类型

w3XjJK.md.jpg

编辑表单,选择使用哪个邮箱发送email

w8pgZ4.md.jpg](ht

验证 ‘用户数登录过多,zabbix自动报警’,选择报警信息的指向

w8pysU.md.jpg

w8p6LF.md.jpg

w8psMT.md.jpg

w8p2dJ.md.jpg

2.微信方式,叮叮方式 ...

1)注册企业微信

2)配置脚本

#1.查看zabbix_server默认脚本存放位置
[root@zabbix ~]# grep 'script' /etc/zabbix/zabbix_server.conf 
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

#2.上传或编辑脚本,zabbix_server自动读取该脚本
[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix alertscripts]# vim weixin.sh
#!/bin/bash
CropID='wwad27164a9cd4730a'            #企业ID
Secret='CiI-CKdNkNRgbr8eIoTo3E2Rje9FZxVz-MoRI8jfII4'    #企业号中的应用Secret
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret" 
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F" '{print $10}')

PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"

function body() {
local int AppID=1000002                  #企业号中的应用id
local UserID=$1                          #部门成员id,zabbix中定义的微信接收者
local PartyID=2                          #部门id,定义了范围,组内成员都可接收到消息
local Msg=$(echo "$@" | cut -d" " -f3-)  #过滤出zabbix中传递的第三个参数
printf '{
'
printf '	"touser": "'"$User""",
"
printf '	"toparty": "'"$PartyID""",
"
printf '	"msgtype": "text",
'
printf '	"agentid": "'" $AppID """,
"
printf '	"text": {
'
printf '		"content": "'"$Msg"""
"
printf '	},
'
printf '	"safe":"0"
'
printf '}
'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL


#3.授权
[root@zabbix alertscripts]# chmod +x weixin.sh

#企业ID
corpid='ww69b7626c5e711bdf'
#应用的secret
appsecret='TchtAn_azm8DGT5gpVgPNffzOn8BeuVhT1jHQlbRHzs'
#应用的agentid
agentid=1000002

#5.手动测试脚本
[root@zabbix alertscripts]# ./weixin.sh SongYangYang[部门成员] 2[部门id] hello[发送内容]

3)添加报警媒介

w89iwQ.md.jpg
w89Peg.md.jpg

{ALERT.SENDTO}                    #发送的⽤户
{ALERT.SUBJECT}                    #发送的主题
{ALERT.MESSAGE}                    #发送的内容

四、zabbix深入自定义监控项

1.自定义监控项-ssh端口

命令行配置

1.客户端关闭ssh端口
[root@web01 ~]# systemctl stop sshd
[root@web01 ~]# netstat -lntup|grep 22
2.zabbix服务端查看数据
[root@zabbix alertscripts]# zabbix_get -s 172.16.1.7 -k net.tcp.listen[22]
1
[root@zabbix alertscripts]# zabbix_get -s 172.16.1.7 -k net.tcp.listen[22]
0

图形化设置监控项

wGCxmT.md.png

图形化设置触发器

w8CK3t.md.jpg

自定义映射值

[wGCjXV.md.png

2.自定义监控项-TCP11种状态

1)了解11种状态

LISTEN - 侦听来自远方TCP端口的连接请求;
SYN_SENT -在发送连接请求后等待匹配的连接请求;
SYN_RECEIVED - 在收到和发送一个连接请求后等待对连接请求的确认;
ESTABLISHED- 代表一个打开的连接,数据可以传送给用户;
FIN_WAIT_1 - 等待远程TCP的连接中断请求,或先前的连接中断请求的确认;
FIN_WAIT_2 - 从远程TCP等待连接中断请求;
CLOSE_WAIT - 等待从本地用户发来的连接中断请求;
CLOSING -等待远程TCP对连接中断的确认;
LAST_ACK - 等待原来发向远程TCP的连接中断请求的确认;
TIME_WAIT -等待足够的时间以确保远程TCP接收到连接中断请求的确认;
CLOSED - 没有任何连接状态;

客户端独有的:(1)SYN_SENT (2)FIN_WAIT1 (3)FIN_WAIT2 (4)CLOSING (5)TIME_WAIT
服务端独有的:(1)LISTEN (2)SYN_RCVD (3)CLOSE_WAIT (4)LAST_ACK
共有的:(1)CLOSED (2)ESTABLISHED

2)配置监控项

[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/tcp_state.conf
UserParameter=tcp_state[*],netstat -ant | grep -c $1

[root@web01 ~]# systemctl restart zabbix-agent.service

3)客户端验证

[root@web01 ~]# zabbix_agentd -t tcp_state[TIME_WAIT]
tcp_state[TIME_WAIT]                          [t|47]

[root@web01 ~]# netstat -ant | grep -c TIME_WAIT
47

4)服务端验证

#需要安装zabbix-get,才能在命令行获取agent端的数据
[root@zabbix ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-get-4.0.1-1.el7.x86_64.rpm

[root@zabbix alertscripts]# zabbix_get -s 172.16.1.7 -k tcp_state[LISTEN]
15

5)添加监控项

w8CMgP.md.jpg

自定义映射值

wGCjXV.md.png

6)添加触发器

w8CK3t.md.jpg

7)设置报警媒介

w8Cu9I.md.jpg

w8Cm4A.md.jpg

原文地址:https://www.cnblogs.com/syy1757528181/p/13655818.html