中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python腳本監控logstash進程并郵件告警的實現方法

發布時間:2020-07-29 14:55:33 來源:億速云 閱讀:156 作者:小豬 欄目:開發技術

這篇文章主要講解了python腳本監控logstash進程并郵件告警的實現方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

supervisor雖然也能拉起來logstash進程,但是有時候supervisor也會掛,也有時會拉不起,就算拉起來了也沒有郵件告警功能 ,所以編寫一個python腳本監控所有服務器,以下代碼只列舉了一臺服務器,需要更多服務器在列表里面添加就行!

(日志采集過程中連續幾天數據異常,由于服務器太多,當時不太想一一去將近40臺服務器查看logstash進程,但又一直查不出原因,后來就每臺服務器查看logstash進程,果然發現3臺采集搜索日志的logstash進程沒了,然后就編寫了此腳本監控,效果很好)

# coding=utf-8
#!/usr/bin/env python
_author_ = 'liuzc'
import os
import datetime
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 定義日志輸出文件
log = "/home/data/liuzc/check_ps/logstash_process.log"
ipAndUrlList = [
  ["log@10.10.10.10","aiu-service-agent.conf"]
]
def checkPS():
 beginTime = datetime.datetime.now()
 print("開始檢查進程。。。時間為:%s" % beginTime)
 for ipAndUrl in ipAndUrlList:
  ip = ipAndUrl[0]
  configName = ipAndUrl[1]
  alist = ip.split("@")
  username = alist[0]
  #將進程信息寫入log文件
  os.system("ssh %s ps -ef |grep %s |grep -v 'grep'> %s" %(ip,configName,log))
  #判斷文件大小,當logstash沒有運行時上一步寫入log的內容為空
  if not(os.path.getsize(log)):
   # 重啟進程
   print("ip為%s,配置文件名稱為 %s 不在進程中,正在重啟進程......" %(ip,configName))
   # os.system('ssh %s /home/%s/elk/logstash/bin/logstash -f %s &'%(ip,username,url))
   os.system('ssh %s /home/%s/elk/logstash/bin/logstash -f /home/%s/elk/logstash/etc/%s &' % (ip, username,username, configName))
   print("重啟進程成功,開始發送郵件")
   # 發送郵件
   sendMail(ip,configName)
 endTime = datetime.datetime.now()
 print("檢查進程結束。。。時間為:%s" % endTime)
 print("=============================================================================")
 
def sendMail(ip,configName):
 # 當前時間
 now = datetime.datetime.now()
 # 第三方 SMTP 服務
 mail_host = "mail.qq.com" # 設置服務器
 mail_user = "aa@qq.com" # 用戶名
 mail_pass = "deretrgt4556h" # 口令
 sender = 'aa@qq.com'
 receivers = ['bb@qq.com','cc@qq.com','dd@qq.com'] # 接收郵件,可設置為你的QQ郵箱或者其他郵箱
 message = MIMEText('logstash進程異常,但已自動重啟...服務器為 %s , 配置文件為 %s , 時間為 %s ' %(ip,configName,now), 'plain', 'utf-8')
 message['From'] = Header("logstash_ps", 'utf-8')
 message['To'] = Header("users", 'utf-8')
 subject = 'logstash進程異常告警!!!'
 message['Subject'] = Header(subject, 'utf-8')
 try:
  smtpObj = smtplib.SMTP()
  smtpObj.connect(mail_host, 25) # 25 為 SMTP 端口號
  smtpObj.login(mail_user, mail_pass)
  smtpObj.sendmail(sender, receivers, message.as_string())
  print ("郵件發送成功!!!")
 except smtplib.SMTPException:
  print("Error: 郵件發送失敗。。。")
 
if __name__ == '__main__':
 while True:
  try:
   checkPS()
  except Exception as e:
   print('Error:', e) 

看完上述內容,是不是對python腳本監控logstash進程并郵件告警的實現方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武山县| 泰州市| 洛浦县| 静海县| 巴楚县| 陆良县| 辽中县| 葵青区| 芦溪县| 加查县| 安图县| 雅安市| 孟连| 莱西市| 兴义市| 丹东市| 博罗县| 尼木县| 阳泉市| 成安县| 台州市| 舟山市| 庆安县| 滦南县| 金阳县| 洪湖市| 通榆县| 文山县| 建始县| 江源县| 宜宾县| 政和县| 西青区| 海丰县| 土默特右旗| 双城市| 涿鹿县| 青神县| 定州市| 锡林郭勒盟| 蓬安县|