linux系统zabbix监控配置钉钉告警

这篇具有很好参考价值的文章主要介绍了linux系统zabbix监控配置钉钉告警。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

配置钉钉告警

环境准备
创建钉钉内部群

创建自定义机器人

记录加签地址和webhook地址

安装python环境,因为这个钉钉报警的脚本使用python写的
yum install -y python3 python3-requests
配置钉钉脚本文件
vim /etc/zabbix/zabbix_ding.conf
 
[config]                                   #后续脚本中调用的是这个内容
log_path=/var/log/zabbix/zabbix_ding.log  #日志地址
webhook=				   #webhook地址	
secret=                    #加签地址
钉钉日志目录
touch /var/log/zabbix/zabbix_ding.log     //创建日志文件

chown zabbix.zabbix /var/log/zabbix/zabbix_ding.log     //修改日志文件权限
编写脚本
vim /etc/zabbix/zabbix_server.conf     //zabbix的文件,查看默认脚本发布目录

# AlertScriptsPath=/usr/lib/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
cd /usr/lib/zabbix/alertscripts        //去zabbix脚本发布目录下
vim  dingding.py   //创建脚本
#!/usr/bin/env python3
# coding:utf8
#
import configparser
import os
import time
import hmac
import hashlib
import base64
import urllib.parse
import requests
import json
import sys

config = configparser.ConfigParser()
config.read('/etc/zabbix/zabbix_ding.conf', encoding='utf-8')
log_path = config.get('config', 'log_path')     #前面单引号是ding.conf的[]中的内容
api_url = config.get('config', 'webhook')       #前面单引号是ding.conf的[]中的内容
api_secret = config.get('config', 'secret')     #前面单引号是ding.conf的[]中的内容
log_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())


# 钉钉机器人文档说明
# https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
def get_timestamp_sign():
    timestamp = str(round(time.time() * 1000))
    secret = api_secret
    secret_enc = secret.encode('utf-8')
    string_to_sign = '{}\n{}'.format(timestamp, secret)
    string_to_sign_enc = string_to_sign.encode('utf-8')
    hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
    sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
    return timestamp, sign

# 获取加签后的链接
def get_signed_url():
    timestamp, sign = get_timestamp_sign()
    webhook = api_url + "&timestamp=" + timestamp + "&sign=" + sign
    return webhook

# 定义消息模式
def get_webhook(mode):
    if mode == 0:  # only 关键字
        webhook = api_url
    elif mode == 1 or mode == 2:  # 关键字和加签 或 # 关键字+加签+ip
        webhook = get_signed_url()
    else:
        webhook = ""
        print("error! mode:   ", mode, "  webhook :  ", webhook)
    return webhook


def get_message(text, user_info):
    # 和类型相对应,具体可以看文档 :https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
    # 可以设置某个人的手机号,指定对象发送
    message = {
        "msgtype": "text",  # 有text, "markdown"、link、整体跳转ActionCard 、独立跳转ActionCard、FeedCard类型等
        "text": {
            "content": text  # 消息内容
        },
        "at": {
            "atMobiles": [
                user_info,
            ],
            "isAtAll": False  # 是否是发送群中全体成员
        }
    }
    return message


# 消息发送日志
def log(info):
    if os.path.exists(log_path):
        log_file = open(log_path, "a+")
    else:
        log_file = open(log_path, "w+")
    log_file.write(info)


def send_ding_message(text, user_info):
    # 请求的URL,WebHook地址
    # 主要模式有 0 : 关键字 1:# 关键字 +加签 3:关键字+加签+IP
    webhook = get_webhook(1)
    # 构建请求头部
    header = {
        "Content-Type": "application/json",
        "Charset": "UTF-8"
    }
    # 构建请求数据
    message = get_message(text, user_info)
    # 对请求的数据进行json封装
    message_json = json.dumps(message)
    # 发送请求
    info = requests.post(url=webhook, data=message_json, headers=header).json()
    code = info["errcode"]
    errmsg = info["errmsg"]
    if code == 0:
        log(log_time + ":消息已发送成功 返回信息:%s %s\n" % (code, errmsg))
    else:
        log(log_time + ":消息发送失败 返回信息:%s %s\n" % (code, errmsg))
        print(log_time + ":消息发送失败 返回信息:%s %s\n" % (code, errmsg))
        exit(3)


if __name__ == "__main__":
    text = sys.argv[3]
    user_info = sys.argv[1]
    send_ding_message(text, user_info)
chown -R zabbix.zabbix /usr/lib/zabbix/alertscripts/     //设置脚本目录权限
chmod +x dingding.py     //给脚本加执行权限

./dingding.py  user subject mesages    //测试脚本
浏览器配置钉钉告警

linux系统zabbix监控配置钉钉告警,linux,linux,zabbix,钉钉
linux系统zabbix监控配置钉钉告警,linux,linux,zabbix,钉钉
linux系统zabbix监控配置钉钉告警,linux,linux,zabbix,钉钉

中文消息告警模版
主题:服务器报警
消息:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}


主题:服务器已恢复
消息:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
为用户添加报警媒介

linux系统zabbix监控配置钉钉告警,linux,linux,zabbix,钉钉
linux系统zabbix监控配置钉钉告警,linux,linux,zabbix,钉钉

添加监控项=》添加触发器=》
添加玩监控项和触发器后添加动作

linux系统zabbix监控配置钉钉告警,linux,linux,zabbix,钉钉
linux系统zabbix监控配置钉钉告警,linux,linux,zabbix,钉钉
linux系统zabbix监控配置钉钉告警,linux,linux,zabbix,钉钉

至此,监控钉钉报警就配置完成了文章来源地址https://www.toymoban.com/news/detail-834697.html

到了这里,关于linux系统zabbix监控配置钉钉告警的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • zabbix4.0配置钉钉机器人告警详细教程

            在钉钉中创建群聊,然后在设置中创建钉钉机器人。             机器人名字随便,安全设置我选择【自定义】,并设置内容为zabbix,即机器人收到的每条消息内容均需要带“zabbix”才可以发出。         复制保留Webhook的内容,以便后面使用。         在

    2024年02月11日
    浏览(44)
  • Zabbix分布式监控系统概述、部署、自定义监控项、邮件告警

    目录 前言 (一)业务架构 (二)运维架构 一、Zabbix分布式监控平台 (一)Zabbix概述 (二)Zabbix监控原理 (三)Zabbix 6.0 新特性 1. Zabbix server高可用 2. Zabbix 6.0 LTS新增Kubernetes监控功能 (四)Zabbix 6.0 功能组件 1.Zabbix Server (1)Zabbix datdbdse (2)Zabbix web 2. Zabbix Agent (1)主动

    2024年01月21日
    浏览(48)
  • 使用zabbix实现邮箱/钉钉告警

    目录 一、zabbix部署 1、安装zabbix服务端 2、准备数据库(mariadb简单点) 3、修改服务的配置 二、登录zabbix 三、客户端配置 1、安装软件包 2、修改配置文件 3、启动客户端服务 四、报错解决 五、添加监控主机 1、安装软件包 2、修改配置文件 3、启动客户端服务 4、回到zabbix添

    2024年03月17日
    浏览(46)
  • zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板)

    1、配置zabbix服务端 2、配置监控主机监控项监控模板 zabbix配置安装_this page is used to test the proper operation of _疯飙的蜗牛的博客-CSDN博客 触发器的本质就是一个条件判断,对于不同的监控数据来说,我们要设置不同的触发器。如一个监控项不关联触发器,将不会提示错误,也不

    2024年02月07日
    浏览(41)
  • zabbix创建tcp端口监控,zabbix端口监控告警

    Zabbix是一个用于监控各种网络服务、网络硬件、网络设备以及网络环境的开源软件。它可以监控各种网络服务,包括TCP端口。 要使用Zabbix监控TCP端口,需要进行以下步骤: 为其分配一个IP地址和主机名。然后创建一个主机组,将该主机添加到该组中。 ip地址可以根据自己ag

    2024年04月09日
    浏览(47)
  • zabbix基础2——监控告警流程

    1.可以对主页进行拉动配置。 2.配置效果。 配置思路: 配置主机组。 添加监控主机,被监控的机器需要在安装客户端。 添加监控项,可以使用模板添加,也可以手动添加。 添加触发器 定义用户媒介 配置告警方式和动作 手动触发告警。 添加主机,也就是添加要被监控的主

    2024年02月12日
    浏览(43)
  • prometheus监控k8s服务并告警到钉钉

    一、监控k8s集群 要监控k8s集群需要使用到以下服务用于收集监控的资源信息,node_exporter用于监控k8s集群节点的资源信息,kube-state-metrics用于监控k8s集群的deployment、statefulset、daemonset、pod等的状态,cadvisor用于监控k8s集群的pod资源信息 在k8s集群中创建monitoring的命名空间用于部

    2024年02月13日
    浏览(56)
  • 全网最详细的zabbix监控(zabbix安装和配置、web页面配置、监控Linux主机、监控华为交换机、监控Windows、监控nginx)

    目录 前言 一、准备工作 二、zabbix server端 三、zabbix-agent Linux客户端的安装 四、zabbix-agent Windows客户端的安装 五、使用zabbix监控nginx 六、使用zabbix监控华为交换机 七、结尾 什么是zabbix? zabbix安装是当下主流的监控解决方案,zabbix安装与配置简单,学习成本低,完全开源免费

    2023年04月26日
    浏览(59)
  • Linux-Zabbix监控-安装与配置

    Zabbix官网地址为:Zabbix:企业级开源监控解决方案 Web界面效果图 1、什么是zabbix?  zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。  zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员

    2024年02月06日
    浏览(43)
  • linux系统zabbix监控分布式监控的部署

    zabbix server端监控到大量zabbix agent端,这样会使zabbix server端压力过大,使用zabbix proxy进行分布式监控 安装工具 安装mysql 导入数据结构 配置proxy端 浏览器配置 这个时候创建主机就可以选择proxy端 选择刚刚创建的agent代理程序

    2024年02月20日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包