监听特定服务并发送告警邮件

1、制作监听脚本

监听脚本 monitor-email.sh 如下:

#!/bin/bash

#监听特定服务,当服务挂掉之后发送邮件至监听邮箱内
#接收参数
#   $1:服务名称
#   $2:接收信息的邮箱,不填写时默认为 ****@qq.com

### 1 监听特定进程
#######1.1   进程存在
#######1.2   进程不存在 
########### 1.2.1 检查并更新mail服务
########### 1.2.2 检查并更新mail配置信息
########### 1.2.3 发送告警邮件

#定时任务,每5分钟执行一次脚本
#crontab -e
#*/5 * * * * /root/shell/monitor-email.sh >> /root/shell/sh.txt

process_name=${1:-demo-service}
receiving_mail=${2:-demo@qq.com}
receiving_content="线上服务宕机报警"

#监听并发送邮件信息
function monitor() {
  process_running=`ps -ef | grep ${process_name}| grep java|awk '{print $2}'`
    if [[  ${process_running} -le 0 ]]; then
      echo "$(date +%Y-%m-%d\ %H:%M:%S) process ${process_name} is not exist"
      send_mail
    else
      echo "$(date +%Y-%m-%d\ %H:%M:%S) process ${process_name} alive"
    fi
}

#发送邮件
function send_mail() {
    update_mailx
    set_mail_param
    echo "${receiving_content}" | mail -s "${process_name} 服务已宕机"  ${receiving_mail}
    echo "$(date +%Y-%m-%d\ %H:%M:%S) mail has been sent"
}

# 检查并更新mail服务
function update_mailx() {
    mail=`whereis mailx | grep  gz`
    echo "${mail}"
    if [ -z "${mail}"  ]; then
      yum install mailx
      else
        echo "mail is installed"
    fi
}

#检查并更新mail配置信息
function set_mail_param() {
  param_set=`cat /etc/mail.rc | grep "smtp-auth-user=proxy@qq.com"`
  if [ -z "${param_set}" ]; then
      echo 'set from=proxy@qq.com' >>/etc/mail.rc
      echo 'set smtp=smtp.qq.com' >>/etc/mail.rc
      echo 'set smtp-auth-user=proxy@qq.com' >>/etc/mail.rc
      echo 'set smtp-auth-password=abcdefg' >>/etc/mail.rc #这里用的是授权码
      echo 'set smtp-auth=login' >>/etc/mail.rc
    else
    echo "mail profile already set!"
  fi
}

monitor

如果脚本文件是从 windows 上传至 linux ,可安装 dos2unix 进行转换;别忘了给脚本赋执行权限。

2、设置定时任务
crontab -e
*/5 * * * * /root/shell/monitor-email.sh >> /root/shell/sh.txt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Prometheus搭建Alertmanager并发送邮件告警信息,你需要按照以下步骤进行操作: 1. 首先,确保你已经安装并配置好了Prometheus和Alertmanager。你可以参考Prometheus和Alertmanager的官方文档进行安装和配置。 2. 在Alertmanager的配置文件(alertmanager.yml)中,添加或修改如下配置: ```yaml receivers: - name: 'email-notify' email_configs: - to: 'your-email@example.com' from: 'alertmanager@example.com' smarthost: 'smtp.example.com:587' auth_username: 'your-username' auth_password: 'your-password' ``` 你需要将上述配置中的邮件相关信息替换为你自己的实际信息。确保提供了正确的SMTP服务器地址、端口、件人、收件人以及认证信息。 3. 在Prometheus的配置文件(prometheus.yml)中,添加或修改如下配置,以将告警发送到Alertmanager: ```yaml alerting: alertmanagers: - static_configs: - targets: - 'alertmanager:9093' ``` 这里假设Alertmanager运行在与Prometheus相同的主机上,并监听9093端口。如果Alertmanager运行在不同的主机上,请相应修改地址与端口。 4. 在Prometheus的规则文件中,定义你的告警规则。例如,创建一个名为`example.rules`的文件,并添加如下内容: ```yaml groups: - name: example rules: - alert: HighErrorRate expr: job:request_error_rate > 0.5 for: 5m labels: severity: warning annotations: summary: "High error rate detected" description: "Error rate is above 0.5" ``` 这是一个示例规则,你可以根据你的需求添加自己的规则。 5. 重新启动Prometheus和Alertmanager,确保配置文件的更改生效。 现在,当Prometheus检测到满足规则的告警时,它将发送邮件通知到配置的收件人邮箱。你可以根据需要修改和扩展这些配置,以满足你的特定需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值