安装比较简单,官网安装即可:
https://www.zabbix.com/documentation/4.0/zh/manual/installation/install_from_packages/debian_ubuntu
钉钉报警:
cd /usr/lib/zabbix/alertscripts
创建robot.py文件
#!/usr/bin/python3.6 # -*- coding: utf-8 -*- import requests import json import sys import os headers = {'Content-Type': 'application/json;charset=utf-8'} api_url = "https://oapi.dingtalk.com/robot/send?access_token=******" #上面机器人里面复制内容 def msg(text): json_text= { "msgtype": "text", "at": { "atMobiles": [ "1821011****" ], "isAtAll": False }, "text": { "content": text } } r=requests.post(api_url,json.dumps(json_text),headers=headers).content print(r) #msg(12345) if __name__ == '__main__': #text = sys.argv[1]+sys.argv[2]+sys.argv[3]+sys.argv[4] text0=sys.argv[1:] #sys.argv[]获取外部参数,返回为一个列表list组。0为目录 text=' '.join(text0) msg(text)
再在本目录下创建一个robot.sh文件,返回格式修改后的报警信息,zabbix调用此文件
#!/bin/bash stri=$1$2$3$4$5$6$7 stri1=${stri} | sed 's/ //g' stri2=${stri1} | sed 's/(//g' stri3=${stri2} | sed 's/>//g' python3.6 /usr/lib/zabbix/alertscripts/robot.py $stri
5.0版本后的zabbix,直接调用py脚本。 [root@mzl ~]# cat /usr/lib/zabbix/alertscripts/zq1.py #!/usr/bin/python # -*- coding: utf-8 -*- import requests import json import sys url = 'https://oapi.dingtalk.com/robot/send?access_token=************' text0=sys.argv[1:] #sys.argv[]获取外部参数,返回为一个列表list组。0为目录 text1=' '.join(text0) text2=sys.argv[1] headers = { "Content-Type": "application/json", "Chartset": "utf-8" } # 要发送的文本是json格式 request_data = { "msgtype": "markdown", "markdown": {"title": "{}".format(text2), "text": "{}".format(text1) }, "at": { "atMobiles": [], "isAtAll": True } } # 把json转变为字符串格式数据 send_data = json.dumps(request_data) # 这个是发送post请求,请求钉钉接口 response = requests.post(url=url, headers=headers, data=send_data) # 讲求成功后返回的数据 content = response.content.decode() # 打印 print(content)
最后在zabbix页面来调用此sh文件即可。如下图:填上需要传入的报警信息{ALERT.MESSAGE}
写入log日志web展示
1、首先Apache创建一个目录list的web展示。http://www.laihp.top/zqb/?p=317
2、robot.sh用于处理报警信息给robot.py钉钉及把大于1M的log文件放到另外一个目录下。
root@zqubuntu:/usr/lib/zabbix/alertscripts# ll
total 20
drwxr-xr-x 2 root root 4096 Dec 3 16:19 ./
drwxr-xr-x 4 root root 4096 Nov 16 2018 ../
-rwxr-xr-x 1 root root 904 Dec 6 2018 robot.py*
-rwxr-xr-x 1 root root 238 Dec 2 18:35 robot.sh*
代码如下:
[scfc id=”scfctxt” title=”+++robot.sh—“]
#!/bin/bash
#####
start1=$(date +%y-%m-%d-%H%M%S)
filename=/var/www/html/zabbixalert.log
filesize=`ls -l $filename | awk '{ print $5 }'`
#delname=`ls -R /data/share/.recycle/ |awk '{print $0}'`
maxsize=$((1024*10))
if [ $filesize -gt $maxsize ]
then
echo "mvthisfile---------------------" >> /var/www/html/zabbixalert.log
cp /var/www/html/zabbixalert.log /var/www/html/zabbixhistory/zabbixalert.log$start1.log
echo "newfile---------------------" > /var/www/html/zabbixalert.log
chmod 777 /var/www/html/zabbixalert.log
else
echo "thislogfilesize----[$filesize B]" >> /var/www/html/zabbixalert.log
fi
#####
stri=$1$2$3$4$5$6$7
stri1=${stri} | sed 's/ //g'
stri2=${stri1} | sed 's/(//g'
stri3=${stri2} | sed 's/>//g'
python3.6 /usr/lib/zabbix/alertscripts/robot.py $stri
echo $stri >> /var/www/html/zabbixalert.log
[/scfc]
运行效果:
zabbix-agent 安装
首先在客户端安装agent:
#如果主机联网的话,可以选择直接yum安装 root@ubuntu:~# apt install zabbix-agent root@ubuntu:~# vim /etc/zabbix/zabbix_agentd.conf LogFileSize=0 EnableRemoteCommands=1 #允许远程执行命令 LogRemoteCommands=1 #开启远程操作日志 Server=zabbix-server-ip #被动模式,ZABBIX服务器IP地址 ServerActive=zabbix-server-ip #主动模式,ZABBIX服务器IP地址 Hostname=localhost-ip #主机名或IP地址 root@ubuntu:~# systemctl restart zabbix-agent root@ubuntu:~# systemctl enable zabbix-agent
然后再zabbix添加该客户端即可
概述
在使用Zabbix监控ICMP多个主机时,会出现Zabbix icmp pinger processes more than 75% busy的报错。主要原因为ICMP的线程太少导致,可以通过更改配置文件进行调优。
解决方式
编辑/etc/zabbix/zabbix_server.conf文件,将StartPingers更改为合适的大小值。
重启Zabbix服务
附一个群晖NAS的模板:zbx_export_SynoDiskStation_1