安装比较简单,官网安装即可:
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
