linux mailx&dingding机器人报警

292 阅读3分钟

前言:采用devops的思想来确认做本文内容目的

作为 <用户角色> 我想要 <结果> 以便于 <目的> 作为运维人员,我想要服务器故障时候能够进行报警,以便于即使处理服务器故障、保障服务器稳定运行

两种方式

  • 邮箱
    • 客户端授权码
    • 安装mailx应用
    • 配置mail.rc
    • 测试报警
  • 钉钉
    • 配置机器人
    • 记录webhook
    • 测试报警

注:不要理所当然的认为只适用于这两种,那些能够用于stmp的应用都可以使用下面介绍的邮箱方式,同理,只要是能够webhook通信的,都可以用下面介绍的钉钉方式。

邮箱

这里我用的是163邮箱,通过官方文档帮助可以获取客户端授权码,获取方式如下 什么是POP3、SMTP及IMAP? 如何获取客户端授权码? 如何开启客户端协议? 将授权码保存好要用的。

  • 客户端授权码
  • 安装mailx应用
  • 配置mail.rc
  • 测试报警 163邮箱服务器地址如下: 在这里插入图片描述 我的服务器是centos 的,所以安装mailx命令如下:
yum  -y install mailx

在这里插入图片描述 如果是ubuntu服务器,安装mailx命令如下:

apt  -y install mailx
  • 客户端授权码
  • 安装mailx应用
  • 配置mail.rc
  • 测试报警 配置mail.rc
vi /etc/mail.rc #追加
set from="你的邮箱地址"@163.com smtp=smtp.163.com #你的邮箱服务器地址
set smtp-auth-user="你的邮箱地址"@163.com smtp-auth-password="你的邮箱授权码"
set smtp-auth=login
  • 客户端授权码
  • 安装mailx应用
  • 配置mail.rc
  • 测试报警

发送测试

  • 命令行: mail -s "title" address,回车后输入内容按Ctrl+D发送邮件.
  • 管道符: echo "this is straight matter" | mail -s "title" address
  • 文件内容作为邮件内容: mail -s "title" address < /text.txt title是邮件标题,address收件人地址 this is straight matter是邮件正文/text.txt是附件
mail -s "hello world" 123456789@qq.com
echo "this is  straight matter" | mail -s "title" 123456789@qq.com
mail -s "title" 123456789@qq.com< ~/text.txt
  • 客户端授权码
  • 安装mailx应用
  • 配置mail.rc
  • 测试报警

钉钉

这里我用的是钉钉,通过官方文档帮助可以创建机器人,和获取webhook,获取方式如下 自定义机器人接入 获取钉钉机器人Webhook地址 怎么添加自定义机器人 其中如下图,三条有一即可,我的是公网ip服务器,所以直接配置限定ip即可。 在这里插入图片描述

  • 配置机器人
  • 记录webhook
  • 测试报警

测试机器人 在这里插入图片描述 官方参考:

curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx' \
 -H 'Content-Type: application/json' \
 -d '{"msgtype": "text","text": {"content":"我就是我, 是不一样的烟火"}}'

其中:access_token=后加自身webhook。-H后是链接头不用改,"我就是我, 是不一样的烟火"可以改成想要的文本。

curl 'oapi.dingtalk.com/robot/send?…'
-H 'Content-Type: application/json'
-d '{"msgtype": "text","text": {"content":"我就是我, 是不一样的烟火"}}' 在这里插入图片描述 在这里插入图片描述

  • 配置机器人
  • 记录webhook
  • 测试报警