ZABBIX配置自动发现与自动注册,网易邮箱告警和钉钉告警

一、自动发现

  • zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。

  • 缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。

1、部署准备

准备三台虚拟机

192.168.80.151;192.168.80.152做自动发现

192.168.80.153 做自动注册

2、配置安装源

cs 复制代码
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm

yum clean all

3、修改主配置文件

cs 复制代码
[root@localhost ~]# cd /etc/zabbix/
[root@localhost zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d
[root@localhost zabbix]# vim zabbix_agentd.conf 



117 Server=192.168.80.150

4、关闭防火墙和上下文

cs 复制代码
systemctl disable --now firewalld
 setenforce 0

5、启动服务

二、设置自动发现

点击监测--自动发现,两台主机已经连接

2、找到告警,发现动作

添加成功后,回到数据采集--主机 刷新等待一会,发现已经创好了

三、自动注册动作

设置自动发现的主机尽量不要再设置自动注册,会有影响

添加成功后回到客户端修改配置

cs 复制代码
[root@localhost zabbix]# vim zabbix_agentd.conf 

ServerActive=192.168.80.150


Hostname=host1


[root@localhost zabbix]# systemctl start zabbix-agent.service 

四、邮件告警设置

1、登录邮箱点击设置,查看SMTP

复制授权码

2、创建媒介

告警->媒介->创建媒介类型

用户网易用户

密码就是上面的授权码

创建完成点击消息模板,创建问题

测试邮件发送

3、设置调用用户

4、添加模板

在终端创建一个脚本文件,测试用户登陆数量

cs 复制代码
[root@localhost zabbix_agentd.d]# cat test.conf 
UserParameter=user_count,w | awk 'NR>=3{print|"wc -l"}'



在服务器上测试
[root@zabbix zabbix_agentd.d]# zabbix_get -s 192.168.80.151 -p 10050 -k user_count
4

数据采集->主机或模版->触发器->创建触发器(假如有触发器可跳过该步骤!!)

5、创建图形

6、创建触发器

设置关联

点击告警---动作--触发器动作

操作详情

7、回到终端测试

观察图形

查看邮件,收到一条问题

五、设置钉钉警告

  • 登录钉钉

  • 创建钉钉群

手机、电脑都可以,这里以电脑举例

这里可以自己随便选择,我选择的是内部群

添加机器人-->设置关键词

点击添加机器人

添加"机器人"-->"自定义"

生成webhook(请保管好webhook的值;后面需要用到

服务器上操作

  • 配置钉钉脚本
cs 复制代码
#将脚本写在/usr/lib/zabbix/alertscripts/目录下
[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts/

##安装python或者python3
[root@zabbix alertscripts]# yum install python3
 

**注意:**这里需要提前安装好这几个python模块:requests、json、sys、os、datetime;

安装方式为:pip3 install requests 以此类推;

如遇到以下报错就是没有安装requests模块,就需要pip安装一下;

cs 复制代码
[root@zabbix ~]# mkdir -p  /usr/lib/zabbix/alertscripts/
[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts/
[root@zabbix alertscripts]# vim dingding.py
[root@zabbix alertscripts]# chmod +x dingding.py
[root@zabbix alertscripts]# chown zabbix.zabbix dingding.py
cs 复制代码
[root@zabbix alertscripts]# cat dingding.py 
#!/usr/bin/env python
# -*- coding: utf-8 -*- 
import requests
import json
import sys
import os
import datetime
webhook = "https://oapi.dingtalk.com/robot/send?access_token=382cec5bbd171e65780867f926cfdea2ad8faf92d4b7216e48bee4c8a60601d6"
user=sys.argv[1]
subject=sys.argv[2]
text=sys.argv[3]
data={
        "msgtype": "text",
        "text": {
                "content": "%s%s"%(subject,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/lib/zabbix/alertscripts/log/dingding.log"):
        f=open("/usr/lib/zabbix/alertscripts/log/dingding.log","a+")
else:
        f=open("/usr/lib/zabbix/alertscripts/log/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()

为脚本添加权限和更改属主属组

cs 复制代码
#为脚本添加执行权限
[root@zabbix alertscripts]# chmod +x dingding.py
 
#修改脚本的属主和属组:
[root@zabbix alertscripts]# chown zabbix.zabbix dingding.py
  • 创建日志文件:
cs 复制代码
[root@zabbix alertscripts]# mkdir -p  /usr/lib/zabbix/alertscripts/log

[root@zabbix alertscripts]# touch /usr/lib/zabbix/alertscripts/log/dingding.log

###递归更改的 属主属组
[root@zabbix alertscripts]# chown zabbix.zabbix -R /usr/lib/zabbix/alertscripts/log

###增加权限
[root@zabbix alertscripts]# chmon +x /usr/lib/zabbix/alertscripts/log

####
ls -l 查看一下zabbix整个路径的属主属组和权限 一定要是zabbix权限
  • 测试脚本是否能运行成功:
cs 复制代码
#py脚本 手机号 关键词 告警信息
[root@zabbix alertscripts]# ./dingding.py 17835697281 告警 111
[root@zabbix alertscripts]# ./dingding.py 17835697281 告警 你的热得快炸了
[root@zabbix alertscripts]# ./dingding.py 19829651293 告警 你的热得快炸了

web页面操作

  • 告警-->媒介-->创建媒体类型
  • 配置-->动作-->创建动作
css 复制代码
#告警操作内容:
##标题:
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
##消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}


#恢复操作内容
##标题:
服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
##消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}
  • 个人中心-->报警媒介-->添加

添加完成记得点击更新

创建监控项

测试一下,是否有值

创建图表

主机选择,钉钉创建的主机

创建触发器

条件--监控项选择创建的监控项

钉钉查看告警问题

相关推荐
zzzzzz3106 小时前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode6 小时前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220701 天前
如何搭建本地yum源(上)
运维
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz4 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化