前言:采用devops的思想来确认做本文内容目的
作为 <用户角色>
我想要 <结果>
以便于 <目的>
作为运维人员,我想要服务器故障时候能够进行报警,以便于即使处理服务器故障、保障服务器稳定运行
两种方式
邮箱
- [ ] 客户端授权码 - [ ] 安装mailx应用 - [ ] 配置mail.rc - [ ] 测试报警
钉钉
- [ ] 配置机器人 - [ ] 记录webhook - [ ] 测试报警
注:不要理所当然的认为只适用于这两种,那些能够用于stmp的应用都可以使用下面介绍的邮箱方式,同理,只要是能够webhook通信的,都可以用下面介绍的钉钉方式。
邮箱
这里我用的是163邮箱,通过官方文档帮助可以获取客户端授权码,获取方式如下
什么是POP3、SMTP及IMAP?
如何获取客户端授权码?
如何开启客户端协议?
将授权码保存好要用的。
- [x] 客户端授权码
- [ ] 安装mailx应用
- [ ] 配置mail.rc
- [ ] 测试报警
163邮箱服务器地址如下:
我的服务器是centos 的,所以安装mailx命令如下:
yum -y install mailx
如果是ubuntu服务器,安装mailx命令如下:
apt -y install mailx
- [x] 客户端授权码
- [x] 安装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
- [x] 客户端授权码
- [x] 安装mailx应用
- [x] 配置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
- [x] 客户端授权码
- [x] 安装mailx应用
- [x] 配置mail.rc
- [x] 测试报警
钉钉
这里我用的是钉钉,通过官方文档帮助可以创建机器人,和获取webhook,获取方式如下
自定义机器人接入
获取钉钉机器人Webhook地址
怎么添加自定义机器人
其中如下图,三条有一即可,我的是公网ip服务器,所以直接配置限定ip即可。
- [x] 配置机器人
- [x] 记录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 'https://oapi.dingtalk.com/robot/send?access_token=245274b9ed39be622e4ce85f642b9e2e2aa9acf7122b9cd130e3079d21a49bae' \
-H 'Content-Type: application/json' \
-d '{"msgtype": "text","text": {"content":"我就是我, 是不一样的烟火"}}'
- [x] 配置机器人
- [x] 记录webhook
- [x] 测试报警