为了实时监控在yarn上运行的spark任务是否还在正常运行,就想着写一个监控脚本,当spark任务挂了的时候可以发送邮件
一、安装和配置系统的mailx
运行命令:
yum -y install mailx
安装完成后,编辑/etc/mail.rc文件配置mailx使用QQ邮箱作为发送邮箱
如果使用阿里云的话,因为阿里云ECS封禁了25 端口,所以我们只能使用TLS方式(TSL也就是使用SSL加密的方式,使用465或者其他端口来发送邮件)绕过25端口需求来发送邮件,所以必须先获得邮箱的SSL证书并存放到本地,最后一行的ns s-config-dir就是制定的存放QQ邮箱SSL证书的位置。
因为需要QQ邮箱的SSL证书,所以我们还需要手动的获取QQ邮箱的证书保存到本地指定的目录里以备调用和验证,具体命令如下:
mkdir -p /root/.certs/
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.c