当前位置:   article > 正文

zabbix自定义监控项,钉钉报警机器人_zabbix 钉钉 csdn

zabbix 钉钉 csdn

zabbix自定义监控项,使用钉钉报警机器人发送告警信息

环境准备
操作系统:Windows 10
虚拟机为:VMware 17.0.0
linux系统:rockylinux-8.8-x86_64
网卡:NAT模式

[root@localhost ~]# hostnamectl set-hostname zabbix
  • 1
[root@zabbix ~]# sed -ri "s,^(SELINUX=).*,\1disabled," /etc/selinux/config    # 禁用SELinux
[root@zabbix ~]# systemctl stop firewalld     # 停止firewalld
[root@zabbix ~]# yum -y install vim
[root@zabbix ~]# yum -y install bash-completion

  • 1
  • 2
  • 3
  • 4
  • 5

配置zabbix的yum仓库

[root@zabbix ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-release-6.4-1.el8.noarch.rpm  
[root@zabbix ~]# dnf clean all
  • 1
  • 2

安装zabbix

[root@zabbix ~]# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent mysql-server langpacks-zh_CN
  • 1

将PHP切换到版本7.4 新版本的zabbix需要执行这一步

[root@zabbix ~]# dnf module switch-to php:7.4
  • 1

配置数据库

[root@zabbix ~]# systemctl enable mysqld --now 
  • 1

创建用户以及配置权限

[root@zabbix ~]# mysql -uroot
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'zabbix123';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
解释:创建一个名为zabbix的数据库,字符集为utf8mb4,校对规则为utf8mb4_bin
     创建一个zabbix用户,只能本机登入,密码为zabbix123
     给zabbix用户授予所有权限,但只能本机连接
     二进制日志,允许用户创建或修改存储函数
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

验证一下,是否可以正常登入数据库,再继续之后的步骤

[root@zabbix ~]# mysql -uzabbix -pzabbix123 -hlocalhost zabbix
  • 1

将数据导入数据库,需要一些时间,耐心等待

[root@zabbix ~]# gzip -d /usr/share/zabbix-sql-scripts/mysql/server.sql.gz
[root@zabbix ~]# mysql -uzabbix -pzabbix123 zabbix < /usr/share/zabbix-sql-scripts/mysql/server.sql
  • 1
  • 2

配置zabbix

配置数据库密码

[root@zabbix ~]# sed -ri '129s,.*(DBPassword=),\1zabbix123,' /etc/zabbix/zabbix_server.conf
  • 1

配置主机名,添加自己的IP

[root@zabbix ~]# sed -ri '182s,(Hostname=).*,\1zabbix,' /etc/zabbix/zabbix_agentd.conf
[root@zabbix ~]# sed -ri '117s](.*)]\1,192.168.91.137]' /etc/zabbix/zabbix_agentd.conf
  • 1
  • 2

配置nginx展示zabbix

[root@zabbix ~]# sed -i '2,3s/^#//' /etc/nginx/conf.d/zabbix.conf
  • 1

启动相关服务

[root@zabbix ~]# systemctl enable  zabbix-server --now
[root@zabbix ~]# systemctl enable  zabbix-agent --now
[root@zabbix ~]# systemctl enable  nginx --now
[root@zabbix ~]# systemctl enable  php-fpm --now
  • 1
  • 2
  • 3
  • 4

通过浏览器访问

ip叫端口访问,例如我的ip是192.168.91.137,那么我的网址就是:http://192.168.91.137:8080
在这里插入图片描述
选择 Chinese(zh_CN) 将语言改为中文

在这里插入图片描述
在这里插入图片描述

数据库密码:zabbix123

在这里插入图片描述

Zabbix主机名称:zabbix
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用户名:Admin 首字母大写
密码:zabbix 全小写
在这里插入图片描述

创建模板组

在这里插入图片描述
在这里插入图片描述

创建主机群组

在这里插入图片描述
在这里插入图片描述

创建模板

在这里插入图片描述
在这里插入图片描述

添加主机

在这里插入图片描述

Zabbix server 是默认就有的

在这里插入图片描述

在这里插入图片描述

添加完成

在这里插入图片描述

提示

在这里插入图片描述

在添加Zabbix主机时,如果没有为其配置任何监控项(item),那么Zabbix将无法收集该主机的任何数据,因此其可用性图标将保持灰色。您需要为该主机添加至少一个监控项,以便Zabbix可以开始收集数据并评估其可用性

自定义监控项

创建key的语法:UserParameter=自定义key值,命令 # 命令的执行结果,是key的值

创建自定义配置文件。文件名自定义。

[root@zabbix ~]# vim /etc/zabbix/zabbix_agentd.d/usercnt.conf
# 用户数量
UserParameter=usercnt,sed -n '$=' /etc/passwd
[root@zabbix ~]# systemctl restart zabbix-agent.service 
  • 1
  • 2
  • 3
  • 4

验证

# 1. 安装zabbix-get
[root@zabbix ~]# yum install -y zabbix-get
# 2. 获取监控项的值   -s 和 -k
[root@zabbix ~]# zabbix_get -s 127.0.0.1 -k usercnt
26
[root@zabbix ~]# zabbix_get -s 192.168.91.137 -k usercnt
26
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
创建监控项

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

创建钉钉机器人

在这里插入图片描述

在这里插入图片描述

建什么群,随意,本人建的是普通群

在这里插入图片描述

电脑版本的钉钉,至少需要再添加二个其他人,才能创建,使用手机版的钉钉,一个人就可以建群,

如果和我一样,只是测试,可以创建好之后,把这两个人又移出去。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

把这个 Webhook 复制保存好,点击完成即可

https://oapi.dingtalk.com/robot/send?access_token=ec0b619468ae57b58ce653e1fe8cf813746e8e0202b40370ca903ec1ba82e317
  • 1

在这里插入图片描述

编写脚本并测试

安装钉钉机器人脚本需要用到的模块

[root@zabbix ~]# yum install python3-pip
[root@zabbix ~]# pip3 install requests
  • 1
  • 2

编写钉钉机器人脚本

[root@zabbix ~]# vim /usr/lib/zabbix/alertscripts/dingalert.py 
#!/usr/bin/env python3

import json
import requests
import sys

def send_msg(url, remiders, msg):
    headers = {'Content-Type': 'application/json; charset=utf-8'}
    data = {
        "msgtype": "text",
        "at": {
            "atMobiles": remiders,
            "isAtAll": False,
        },
        "text": {
            "content": msg,
        }
    }
    r = requests.post(url, data=json.dumps(data), headers=headers)
    return r.text

if __name__ == '__main__':
    msg = sys.argv[1]
    remiders = []
    url = '钉钉机器人Webhook地址'  # 注意此处需输入自己的机器人webhook地址
    print(send_msg(url, remiders, msg))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

添加执行权限

[root@zabbix ~]# chmod +x /usr/lib/zabbix/alertscripts/dingalert.py
  • 1

测试消息,必须包含刚才设置的关键字:warn

[root@zabbix ~]# /usr/lib/zabbix/alertscripts/dingalert.py 'warn: 这是一条测试消息'
{"errcode":0,"errmsg":"ok"}        
  • 1
  • 2

在这里插入图片描述

添加报警媒介类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

点击更新,就添加好了

为用户添加报警媒介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

创建触发器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建动作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试

[root@zabbix ~]# useradd user01
[root@zabbix ~]# useradd user02
  • 1
  • 2

在这里插入图片描述

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号