程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

keepalived 邮件告警

发布于2020-02-28 12:00     阅读(985)     评论(0)     点赞(19)     收藏(2)


为方便运维,我们需要及时掌握线上 keepalived 的运行状态。本文以163邮件为例,讲述当 keepalived 发生状态切换时,如何进行邮件告警。

一、设置163邮箱的SMTP服务器

登录163邮箱:
在这里插入图片描述
在这里插入图片描述
系统会提示输入授权码,即为第三方客户端的登录密码。
在这里插入图片描述
在这里插入图片描述

二、编写脚本

此处采用python脚本:

#coding:utf -8

import sys
import socket
import smtplib							#smtp服务器
from email.mime.text import MIMEText	#邮件文本

def SendMail(argv):
	if len(argv) < 2:
		print 'Error: parameter invalid!'
		return
	
	state = argv[1]
	
	#获取本机计算机名称
	hostname = socket.gethostname()
	#获取本机ip
	ip_str = socket.gethostbyname(hostname)

	#邮件标题
	subject = "keepalived: %s change to state: %s" % (ip_str, state)
	
	#邮件正文内容
	content = subject
	message = MIMEText(content,"plain","utf-8")	#plain 文本格式,utf-8 编码格式

	sender = "******@163.com"			#发送方
	sender_password = "******"			#发送方邮箱密码,即为前面设置的授权码
	
	recver = "******@163.com"			#接收方

	#构建邮件
	message['Subject'] = subject		#邮件标题
	message['To'] = recver				#收件人
	message['From'] = sender			#发件人

	#发件人登录
	smtp = smtplib.SMTP_SSL("smtp.163.com",465)	#实例化smtp服务器
	smtp.login(sender,sender_password)

	#发送邮件
	smtp.sendmail(sender, [recver], message.as_string())	#as_string 对 message 的消息进行了封装
	smtp.close()


if __name__ == "__main__":	
    SendMail(sys.argv)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
三、修改 keepalived 配置文件

vim /etc/keepalived/keepalived.conf

在这里插入图片描述

四、测试

关闭 master:

systemctl stop keepalived

检查 backup 发送邮件是否成功:
发送者邮箱:
在这里插入图片描述
接收者邮箱:
在这里插入图片描述



所属网站分类: 技术文章 > 博客

作者:从新来过

链接:https://www.pythonheidong.com/blog/article/235748/4cdc7a850c5a19c36068/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

19 0
收藏该文
已收藏

评论内容:(最多支持255个字符)