Linux 实战案列 - 发送告警邮件

本贴最后更新于 588 天前,其中的信息可能已经时过境迁

发送告警邮件

准备

  • 外部邮件服务器
    原因
    本地自带邮箱容易被过滤,需要延迟性低的邮箱发送

配置 docker

配置环境变量

主机版本:macOS 12.6.4

open .bash_profile
export DOCKER_PATH="/Applications/Docker.app/Contents/Resources/bin"
export PATH="$PATH:$DOCKER_PATH"

定义 docker bin 目录变量为 DOCKER_PATH
配置 PATH 变量 ,取值 $DOCKER_PATH

source .bash_profile

配置生效,一次性

vim ~/.zsrhrc
source ~/.bash_profile

环境变量配置永久生效

截屏 2023041315.52.08.png

安装 centos7

docker pull centos:centos7

拉取 centos7 镜像

docker run -itd --name centos centos:centos7

运行容器,设置名字为 centos 镜像为 centos7

docker exec -it centos /bin/bash

进入 centos 容器,或者打开桌面 docker

安装邮箱小型发送程序

安装 openssl mailx vim


yum -y install vim
yum install mailx -y
yum search openssl
yum install openssl openssl-devel
 
openssl version -a #安装后验证
vim /etc/mail.arc
   set from=heroinepn@163.com smtp=smtps://smtp.163.com:465
   set smtp-auth-user=heroinepn@163.com smtp-auth-password=授权码
   set ssl-verify=ignore
set nss-config-dir=/root/.certs
   set smtp-auth=login
  

from:对方收到邮件时显示的发件人
smtp:指定第三方发邮件的 smtp 服务器地址
set smtp-auth-user:第三方发邮件的用户名
set smtp-auth-password:邮箱授权码
smtp-auth:SMTP 的认证方式,默认是 login,也可以改成 CRAM-MD5 或 PLAIN 方式
nss-config-dir: SSL 验证信息存放位置,
ssl-verify: SSL 验证信息忽略

配置 SSL 验证数字证书

创建证书存放目录

mkdir -p /root/.certs

请求证书




echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crt

证书下载到本地两次

certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt

certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt

信任证书

cd /root/.certs/
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i 163.crt 

开启邮箱 SMTP

截屏 2023041317.38.57.png

获取授权码

截屏 2023041317.31.09.png

测试发送邮件到其他邮箱

`echo "test" |mail -s "first" zs_pnzzz@163.com`

测试成功

截屏 2023041317.47.36.png

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    944 引用 • 943 回帖
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    491 引用 • 917 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...