51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

MeterSphere 服务状态监控以及邮件提醒

在 MeterSphere 使用过程中,正常情况下所有组件服务状态都是 healthy ,但是某些特殊操作会导致个别服务出现异常(不符合资源配置的压力测试、异常的脚本执行等)。特别是当前微服务架构,某个服务异常并不会影响其他服务的正常使用,只有当与模块进行通信时,才有异常信息提示,感知被动且有一定的滞后性和。为了避免服务长时间中断,需要建立定时服务监控机制,并通过邮件的方式主动通知 MeterSphere 系统管理员,及时恢复异常服务。

1、准备内容 {#heading-1}

(1)邮件服务安装包

mailx-12.5[-19](链接: https://pan.baidu.com/s/1njgccIBecV0oBebSsX21cA?pwd=wwl0)[.el7.x86_64.rpm](链接: https://pan.baidu.com/s/1AuXZxMMPdT0F4Aj8dhNcHA?pwd=4o1o)

(2)邮件服务器(网络可通)

此处是以QQ邮箱作为邮件服务器

(3)MeterSphere 服务监控安装脚本(包括邮件服务安装)

#!/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=邮箱信息
mail_passwd=xxxx
smtp_server=smtps://smtp.qq.com:465


配置收件人,多个收件人用英文,分割
=================



mail_receipt=收件人邮箱地址
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=xx.xx.xx.xx
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`

脚本附件如下:install.[sh](链接: https://pan.baidu.com/s/1Kt2o56s4fYo_F77s-e61Dw?pwd=44m8)

(4)服务检测及邮件发送脚本

#!/bin/bash
#配置项
title=MeterSphere测试平台
mail_receipt=zhaojun@fit2cloud.com

service_check(){
touch /tmp/ms_status
for ServiceName in `msctl status | awk 'NR &gt;= 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`

脚本附件如下:ms_check.[sh](链接: https://pan.baidu.com/s/1RubcEwaQbmqUe6ZNuvupZw?pwd=6uuq)

2 、安装和验证过程 {#heading-2}

(1)将附件中所有的文件拷贝到服务器的某一个目录下, 如果安装目录下不是默认的/opt/metersphere ,记得修改install.sh脚本中的目录。

(2)修改并配置 install.sh 及 ms_check.sh 中的邮件信息等关键参数。

(3)执行 install.sh,然后关掉某一个服务,例如:docker stop ms-node-controller。

(4)等待 10 分钟之后,查看是否收到对应的监控提醒邮件。

(5)收到邮件之后,执行 msctl reload,恢复 MeterSphere 服务。

效果如下:

赞(0)
未经允许不得转载:工具盒子 » MeterSphere 服务状态监控以及邮件提醒