环境:
Server:Ubuntu 16.04.5 LTS
一、Zabbix Server端及Zabbix agent安装
这里省略,有需要的可以根据官网进行参考安装即可,安装过程不是很难
二、Zabbix监控报警配置
1、添加主机
进入配置---->主机---->创建主机
这里大家可以根据自己的分类设置主机群,把相同类的主机放在一个主机群里面,方便管理。
添加完成主机之后进行添加模板,这里所使用的模板是Zabbix自带的模板Template OS Linux For Active
这里的每个监控项也已经定义好了,直接使用即可,下面给大家展示一下各个应用集所对应的监控项目有那些。
(1)、CPU应用集
(2)、Filesystems应用集
(3)、General应用集
(4)、Memory应用集
(5)、Network interfaces网络接口应用集
(6)、OS操作系统应用集
(7)、Performance应用集
(8)、 Processes应用集
(9)、 Security安全应用集
(10)、Zabbix agent应用集
2、添加应用集
这里的添加应用集如果是Zabbix自带的应用集,直接使用配置好模板里面的应用集即可,如果是需要定制化,则需要自己添加应用集,下面以自定义应用集来举例:
监控服务器硬盘状态
(1)、首先在Zabbix-agent端进行采集服务器硬盘数据
root@yksp005203:/etc/zabbix# vim zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.5.27
ServerActive=192.168.5.27
Hostname=192.168.5.203
Include=/etc/zabbix/zabbix_agentd.d/*.conf
root@yksp005203:/etc/zabbix/zabbix_agentd.d# vim userparameter_disk_monitor.conf
UserParameter=disk.monitor,/var/lib/zabbix/disk.monitor.sh
硬盘监控脚本:
root@yksp005203:/etc/zabbix/zabbix_agentd.d# vim /var/lib/zabbix/disk.monitor.sh
#!/bin/bash
# DATE 2019-07-22
# VERSION 1.0
# DESC 用于监控服务器磁盘监控状况
# 检查是否有磁盘自检告警
WarnNum=$(sudo /usr/local/bin/megacli -PDList -aAll |grep -E "Slot|Error|alert"|grep -c Yes)
echo $WarnNum
在服务端验证是否可以获取到客服端数据
root@yksp005027:~# zabbix_get -s 192.168.9.11 -k "disk.monitor"
0
root@yksp005027:~#
能正常获取到Client端数据
注意:使用megacli命令时候,首先要安装megacli工具
(2)、Zabbix配置,创建模板
配置---->模板---->创建模板
接下来创建应用集
3、添加监控项
上面使用创建好了应用集之后,接下来创建监控项,注意:这里都是自定义的监控项,跟上面自定义应用集对应起来。
监控指标:CPU、内存、空间、IO、网络、硬盘故障等等
4、添加触发器
监控项配置完成之后来配置触发器,配置触发器的目的是为了当采集的数据超过了设定的值之后,触发告警,通知对应的人进行处理,达到防患于未然的效果。
5、添加图形
接下来创建图形,这个根据实际情况去做,也可以不用添加,我这里给大家演示一下。
6、配置动作
配置动作的目的是为了我们需要Zabbix给我们发送哪些数据信息
(1)、添加动作
(2)、添加操作
默认接收人:服务器:{HOST.NAME}发生:{TRIGGER.NAME}故障
默认信息:
服务器:{HOST.NAME}发生:{TRIGGER.NAME}故障
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
(3)、添加恢复
恢复操作:
默认接收人:服务器:{HOST.NAME}:{TRIGGER.NAME}故障已恢复
默认信息:
服务器:{HOST.NAME}:{TRIGGER.NAME}故障已恢复
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE}{EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}
7、配置报警
(1)、配置用户
管理---->用户---->添加用户
大家也可以使用LDAP进行认证
(2)、添加媒介报警
注意:这里需要大家去申请一个企业微信,需要用到企业微信的CorpID和AgentID
管理---->媒介报警类型---->创建媒体类型
具体的微信脚本如下:
root@yksp005027:/usr/lib/zabbix/alertscripts# vim weixin.sh
#!/bin/bash
CropID='ww62b8192ca8743657' #这里填写企业CorpID
Secret='nKN4h9cVB1xnGVzEYRSddS8KadG34cvcLPL8YEeMBtw' #这里填写应用Secret
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(/usr/bin/curl $GURL -H "DNT: 1" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: zh-CN,zh;q=0.8" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 BIDUBrowser/8.1 Safari/537.36" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" -H "X-DevTools-Emulate-Network-Conditions-Client-Id: B546FC80-414C-403F-95F0-EB0F70E58EF7" -H "Connection: keep-alive" -H "Cache-Control: max-age=0" --compressed | awk -F \" '{print $10}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body() {
local int appId=1000002 #这里填写应用AgentID
local userId=$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":"'"$appId"\"",\n"
printf '\t"text":{\n'
printf '\t\t"content":"'"$msg"\"
printf '\n\t},\n'
printf '\t"safe":"0"\n'
printf '}\n'
}
body $1 $2 $3
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
具体监控效果如下:
以上就是Zabbix监控服务器硬盘的整个过程,里面有的地方没有全部详细的写出来,不是很细,希望大家能够理解。