在MeterSphere使用过程中,可能会出现某些服务异常中断,这时就需要一个及时提醒的服务,让维护人员把中断的服务及时拉起,避免出现长时间服务中断的情况
一、准备内容
1、Linux服务器上的mail发送端安装包
2、网络可通的邮件服务器信息
二、安装脚本
#!/bin/bash echo 开始安装Metersphere服务监控
mkdir -p /opt/metersphere/check
cp ./ms_check.sh /opt/metersphere/check
chmod +x /opt/metersphere/check/ms_check.sh
#安装邮件发送端
mail_account=1370296886@qq.com
mail_passwd=xxxx
smtp_server=smtps://smtp.qq.com:465
#配置收件人,多个收件人用英文,分割
mail_receipt="zhaojun@fit2cloud.com"
sed -i "s/mail_address/$mail_receipt/g" /opt/metersphere/check/ms_check.sh
#MS平台
title="MeterSphere测试平台"
sed -i "s/title_content/$title/g" /opt/metersphere/check/ms_check.sh
#服务器ip
ip=10.1.12.30
sed -i "s/ip_address/$ip/g" /opt/metersphere/check/ms_check.sh
#配置监控执行时间间隔,默认10分钟
min=10
#配置定时任务
echo "*/$min * * * * root /opt/metersphere/check/ms_check.sh" >> /etc/crontab
systemctl restart crond.service
#安装邮件服务与配置
rpm -ivh ./mailx-12.5-19.el7.x86_64.rpm
cat << EOF >> /etc/mail.rc
set bsdcompat
set from=$mail_account
set smtp=$smtp_server
set smtp-auth-user=$mail_account
set smtp-auth-password=$mail_passwd
set smtp-auth=login EOF
echo "安装完成,发送测试邮件至收件人邮箱"
echo "This is a test mail for metersphere" mail -s "metersphere TEST" $mail_receipt
三、服务检测及发送邮件脚本
#!/bin/bash
#配置项
title=MeterSphere测试平台
mail_receipt=zhaojun@fit2cloud.com
service_check(){
touch /tmp/ms_status for ServiceName in `msctl status awk 'NR >= 4{print $1}'`;
do
exist=`docker inspect --format '{{.State.Running}}' ${ServiceName}`
if [ "$exist" != "true" ];then
echo "$title主机 $ip 的 $ServiceName 服务模块未启动" >> /tmp/ms_status
else
echo "${ServiceName} is up"
fi
done
error_num=`cat /tmp/ms_status wc -l`
if [ $error_num -ge 1 ];
then cat /tmp/ms_status mail -s "$title应用服务器服务故障" $mail_receipt
fi
rm -rf /tmp/ms_status
}
service_check
四、安装过程
1、先将附件中所有的文件拷贝到服务器的某一个目录下, 如果安装目录下不是默认的/opt/metersphere ,记得修改install.sh脚本中的目录
2、修改install.sh及ms_check.sh中的关键参数
3、执行install.sh,然后关掉某一个服务:比如docker stop ms-node-controller
4、然后等10分钟之后,观察邮箱是否收到邮件,收到邮件之后即恢复:msctl reload
效果如下:
五、附件内容如下
链接: 百度网盘 请输入提取码 提取码: gbt9