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
import elasticsearch
import datetime
import smtplib
from email.message import EmailMessage
if __name__ == '__main__':
hosts = '192.168.17.11'
port = 80
user = 'zhouyujiang'
passwd = '8tM9JDN2LVxM'
http_auth = (user, passwd)
es = elasticsearch.Elasticsearch(hosts=hosts, port=port, http_auth=http_auth)
send_email_status = ['yellow', 'red']
status_dict = es.cat.health(format='json')
email_group=['hanye@csm.com.cn','litao@csm.com.cn','zhouyujiang@csm.com.cn',
'gengdi@csm.com.cn']
csm_mail_service = 'mail.csm.com.cn'
sender = 'zhouyujiang@csm.com.cn'
if status_dict[0]['status'] in send_email_status:
date_str = str(datetime.datetime.now())[0:10]
email_subj = '[CCR-ES集群{status}预警] {date}'.format(date=date_str,
status=status_dict[0]['status'])
email_msg_body = 'CCR-ES集群{status}预警\ncat_health:\n{status_dict}'.format(status_dict=status_dict[0],
status=status_dict[0]['status'])
email_msg = EmailMessage()
email_msg.set_content(email_msg_body)
email_msg['Subject'] = email_subj
email_msg['From'] = sender
email_msg['to'] = email_group
server = smtplib.SMTP(host=csm_mail_service)
server.send_message(email_msg)
server.quit()
else:
print('ok')