zabbix安装配置与钉钉报警及写入log日志web展示

安装比较简单,官网安装即可:

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的线程太少导致,可以通过更改配置文件进行调优。

image

解决方式

编辑/etc/zabbix/zabbix_server.conf文件,将StartPingers更改为合适的大小值。

image

 

重启Zabbix服务

 

 


附一个群晖NAS的模板:zbx_export_SynoDiskStation_1

发表评论

1,492 次浏览