V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
yaleyu
V2EX  ›  Linux

求个 mdadm 非邮件方式发送告警的办法

  •  
  •   yaleyu · 2022-01-03 15:30:25 +08:00 · 1818 次点击
    这是一个创建于 1084 天前的主题,其中的信息可能已经有所发展或是发生改变。

    mdadm -m [email protected] 可以发送邮件告警,但是现在看邮件越来越少了,不知道有没有办法调用其他方式发送告警,比如调用 python 脚本通过企业微信发送?

    4 条回复    2022-01-04 09:53:19 +08:00
    levin1001
        1
    levin1001  
       2022-01-03 17:41:25 +08:00   ❤️ 1
    根据文档可以用 mdadm --program
    yaleyu
        2
    yaleyu  
    OP
       2022-01-03 18:19:33 +08:00
    @levin1001 谢谢提醒。

    看了一些脚本,基本上是 cron 定时运行 mdadm --detail /dev/md...,然后里面如果有 error/warning 就发送告警。

    但是没找到 mdadm --monitor --program 参数主动发送的例子。

    如果是 python 通过企业微信发送,是类似于下面这样的调用,其中 text 参数是收到的内容
    ···
    send_msg_url = f'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={access_token}'
    data = {
    'touser': wecom_touid,
    'agentid': wecom_aid,
    'msgtype': 'text',
    'text': {'content': text},
    'duplicate_check_interval': 600
    }
    requests.post(send_msg_url, data=json.dumps(data))
    ···
    主要问题是这个 text 从哪里得到?
    heguangyu5
        3
    heguangyu5  
       2022-01-04 09:03:39 +08:00   ❤️ 1
    man mdadm

    ...

    MONITOR MODE

    ...

    When passing events to a program, the program is run once for each event, and is given 2 or 3 command-line
    arguments: the first is the name of the event (see below), the second is the name of the md device which is
    affected, and the third is the name of a related device if relevant (such as a component device that has
    failed).
    yaleyu
        4
    yaleyu  
    OP
       2022-01-04 09:53:19 +08:00
    @heguangyu5 哎呀,谢谢谢谢,应该仔细看 man page

    ‘and is given 2 or 3 command-line arguments’ 太有用了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2740 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 08:36 · PVG 16:36 · LAX 00:36 · JFK 03:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.