zabbix是一种监控软件,我用的是centos7.5版本

一:我已经添加好主机了,接下来就是看看怎么查看监控内容的

1.打开zabbix服务的web网页

zabbix 监控 azkA版spark zabbix监控应用_python

 

 2.检测最新数据,要在最新数据中筛选

zabbix 监控 azkA版spark zabbix监控应用_json_02

 

 3.查看图像

zabbix 监控 azkA版spark zabbix监控应用_json_03

 

二: 上面只是最简单的查看客户机的方法,接下来演示一下自定义监控

1.zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU、内存、磁 盘、网卡等常规监控, 只要新加主机关联此模板,就可自动添加这些监控项

自定义监控项,在zabbix server上创建监控项前可以先使用zabbix_get来判断脚本是否正确。
在zabbix server端使用yum安装zabbix_get

命令:cd /etc/yum.repos.d/

配置yum源

命令:rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

命令:yum -y  install zabbix-get.x86_64

可以使用zabbix_get -help查看用法

注意:zabbix_只能在服务端操作

然后继续操作

命令:zabbix_get -s 192.168.175.102 -p 10050 -k "system.uname"

注释:-s 客户端的IP      -p 客户端端口,默认10050          -k 监控项的key

zabbix 监控 azkA版spark zabbix监控应用_json_04

 

 

2.实现自定义监控

自定义语法

UserParameter=<key>,<shell command>

UserParameter=login-user,who|wc -l

UserParameter=login-user,/bin/sh /server/scripts/login.sh

 

3.agent注册(客户端)

命令:cd /etc/zabbix/zabbix_agentd.d/

命令:vim userparameter_login.conf

UserParameter=login-zabbix1,who|wc -l
UserParameter=login-zabbix2,who|wc -l
UserParameter=login-zabbix3,who|wc -l

zabbix 监控 azkA版spark zabbix监控应用_IP_05

 注意:key名字要唯一

然后重启服务

命令:systemctl restart zabbix-agent.service

然后在服务端进行测试

命令:zabbix_get -s 192.168.175.103 -p 10050 -k "login-zabbix1"

命令:zabbix_get -s 192.168.175.103 -p 10050 -k "login-zabbix2"

命令:zabbix_get -s 192.168.175.103 -p 10050 -k "login-zabbix3"

zabbix 监控 azkA版spark zabbix监控应用_json_06

 

 因为在客户端就注册了三个用户,所以没有login-zabbix4,就会报错

 

4.在服务端注册(网页操作)

(1)点击配置------>点击模板------>点击创建模板

zabbix 监控 azkA版spark zabbix监控应用_json_07

 

 

(2)按照操作要求填写

ceshi login-zabbix

zabbix 监控 azkA版spark zabbix监控应用_IP_08

 

 

zabbix 监控 azkA版spark zabbix监控应用_python_09

 

 

(3)创建应用集

点击应用集----->创建应用集

zabbix 监控 azkA版spark zabbix监控应用_python_10

 

 

zabbix 监控 azkA版spark zabbix监控应用_json_11

 

 

zabbix 监控 azkA版spark zabbix监控应用_IP_12

 

 

(4)创建监控项

点击监控项------>创建监控项

zabbix 监控 azkA版spark zabbix监控应用_IP_13

 

zabbix 监控 azkA版spark zabbix监控应用_python_14

 

 

zabbix 监控 azkA版spark zabbix监控应用_json_15

 

 

(5)创建触发器

 

zabbix 监控 azkA版spark zabbix监控应用_python_16

 

 

zabbix 监控 azkA版spark zabbix监控应用_python_17

 

 

zabbix 监控 azkA版spark zabbix监控应用_python_18

 

 

zabbix 监控 azkA版spark zabbix监控应用_python_19

 

 

(6)创建图形

点击图形------>创建图形

zabbix 监控 azkA版spark zabbix监控应用_json_20

 

 

zabbix 监控 azkA版spark zabbix监控应用_IP_21

 

 

zabbix 监控 azkA版spark zabbix监控应用_python_22

 

 

(7)主机关联模板

点击配置---->主机

一个主机可以关联多个模板

zabbix 监控 azkA版spark zabbix监控应用_json_23

 

 

zabbix 监控 azkA版spark zabbix监控应用_json_24

 

 

zabbix 监控 azkA版spark zabbix监控应用_IP_25

 

 

zabbix 监控 azkA版spark zabbix监控应用_json_26

zabbix 监控 azkA版spark zabbix监控应用_python_27

测试一下,在浏览器上同时开启四个zabbix网页

zabbix 监控 azkA版spark zabbix监控应用_json_28

 

 我用火狐浏览器添加了四个,谷歌浏览器上就报警了,这样就配置成功了

zabbix 监控 azkA版spark zabbix监控应用_json_29

 

 

三:监控报警

(1)第三方报警平台(钉钉)

先指定要发送的群,在群里创建机器人

zabbix 监控 azkA版spark zabbix监控应用_python_30

 添加机器人

zabbix 监控 azkA版spark zabbix监控应用_python_31

 

 

zabbix 监控 azkA版spark zabbix监控应用_IP_32

 

 可以参考   “说明文档”

创建测试文档

vim   ceshi.sh
curl 'https://oapi.dingtalk.com/robot/send?access_token=a462c4d7c2e095d182721c352b77cae4bc76ce4903efe876a08386668e451c51' \    #添加自己的webhook
   -H 'Content-Type: application/json' \
   -d '{"msgtype": "text",
        "text": {
             "content": "告警"
        }
      }'


然后执行测试,如果成功会在钉钉上发送消息

zabbix 监控 azkA版spark zabbix监控应用_IP_33

 

 

(2)查看默认脚本存放位置

命令:cat /etc/zabbix/zabbix_server.conf|grep AlertScriptsPath

zabbix 监控 azkA版spark zabbix监控应用_IP_34

 

命令:cd /usr/lib/zabbix/alertscripts        #进入默认脚本目录

注意:这次脚本是用python写的所以需要配置python环境才行

命令:yum -y  install python-pip             #安装python

命令:pip install requests              #安装依赖包

注意:如果安装失败,请配置阿里云yum源

命令:mkdir ~/.pip        #创建阿里云pip

命令:vim /root/.pip/pip.conf #写入下以内容

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

zabbix 监控 azkA版spark zabbix监控应用_json_35

 

 看见这些说明安装成功,然后开始写脚本

命令:vim /usr/lib/zabbix/alertscripts/dingding.py         #内容如下
curl 'https://oapi.dingtalk.com/robot/send?access_token=a462c4d7c2e095d182721c352b77cae4bc76ce4903efe876a08386668e451c51' \
   -H 'Content-Type: application/json' \
   -d '{"msgtype": "text",
        "text": {
             "content": "告警"
        }
      }'
[root@localhost alertscripts]# cat dingding.py 
#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=a462c4d7c2e095d182721c352b77cae4bc76ce4903efe876a08386668e451c51"
user=sys.argv[1]
text=sys.argv[3]
data={
    "msgtype": "text",
    "text": {
        "content": text
    },
    "at": {
        "atMobiles": [
            user
        ],
        "isAtAll": False
    }
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/usr/local/zabbix/logs/dingding.log"):
    f=open("/usr/local/zabbix/logs/dingding.log","a+")
else:
    f=open("/usr/local/zabbix/logs/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
    f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+"\n"+str(text))
    f.close()
else:
    f.write("\n"+str(datetime.datetime.now()) + "    " + str(user) + "    " + "发送失败" + "\n" + str(text))
    f.close()

命令:chown zabbix.zabbix dingding.py        #添加权限

命令:mkdir -p  /usr/local/zabbix/logs       #添加消息文件

命令:touch /usr/local/zabbix/logs/dingding.log    #添加消息文档

命令:chown -R zabbix.zabbix /usr/local/zabbix/logs/dingding.log       #给消息文档添加权限

命令:chown -R zabbix.zabbix /usr/local/zabbix/logs            #给消息文件添加权限

然后在测试一下,是不是在钉钉发送消息

命令:./dingding.py test 185xxxxxxxx "这个条测试信息,忽略"  

注意:这个号码意思是你发送的群里有这个号码,引号里的内容是在钉钉的关键字里设置的 

zabbix 监控 azkA版spark zabbix监控应用_IP_36

 

 

 

zabbix 监控 azkA版spark zabbix监控应用_python_37

 

 

(3)在zabbix网页里设置

三个参数
创建报警媒介.  三个参数分别是:ALERT.SENDTO      ALERT.SUBJECT      ALERT.MESSAGE
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

zabbix 监控 azkA版spark zabbix监控应用_IP_38

 

 

zabbix 监控 azkA版spark zabbix监控应用_python_39

 

 

zabbix 监控 azkA版spark zabbix监控应用_IP_40

 

 

zabbix 监控 azkA版spark zabbix监控应用_IP_41

 

 

zabbix 监控 azkA版spark zabbix监控应用_IP_42

 

 

zabbix 监控 azkA版spark zabbix监控应用_python_43

 

 

zabbix 监控 azkA版spark zabbix监控应用_python_44

 

 

zabbix 监控 azkA版spark zabbix监控应用_IP_45

 

 

zabbix 监控 azkA版spark zabbix监控应用_IP_46

 

 接下来配置动作

点击配置------>动作

zabbix 监控 azkA版spark zabbix监控应用_json_47

 

 

zabbix 监控 azkA版spark zabbix监控应用_json_48

{TRIGGER.STATUS}: {TRIGGER.NAME}

告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}

下图表示触发5次动作,每隔120秒触发一次,告警发给 admin 用户,用钉钉媒介发送.

zabbix 监控 azkA版spark zabbix监控应用_IP_49

 

 

恢复参数

{TRIGGER.STATUS}: {TRIGGER.NAME}

告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}

其他默认

zabbix 监控 azkA版spark zabbix监控应用_python_50

 

 

zabbix 监控 azkA版spark zabbix监控应用_IP_51

 

测试将虚拟机关机一下,钉钉上弹出警告,ok完成

 

zabbix 监控 azkA版spark zabbix监控应用_json_52

 

 

 

 

总结:。。。。。。。。。。。此处省略一万字