欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python腳本監(jiān)控logstash進(jìn)程并郵件告警實(shí)例

 更新時(shí)間:2020年04月28日 08:44:58   作者:胖若兩人zc  
這篇文章主要介紹了python腳本監(jiān)控logstash進(jìn)程并郵件告警實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

supervisor雖然也能拉起來(lái)logstash進(jìn)程,但是有時(shí)候supervisor也會(huì)掛,也有時(shí)會(huì)拉不起,就算拉起來(lái)了也沒(méi)有郵件告警功能 ,所以編寫一個(gè)python腳本監(jiān)控所有服務(wù)器,以下代碼只列舉了一臺(tái)服務(wù)器,需要更多服務(wù)器在列表里面添加就行!

(日志采集過(guò)程中連續(xù)幾天數(shù)據(jù)異常,由于服務(wù)器太多,當(dāng)時(shí)不太想一一去將近40臺(tái)服務(wù)器查看logstash進(jìn)程,但又一直查不出原因,后來(lái)就每臺(tái)服務(wù)器查看logstash進(jìn)程,果然發(fā)現(xiàn)3臺(tái)采集搜索日志的logstash進(jìn)程沒(méi)了,然后就編寫了此腳本監(jiān)控,效果很好)

# 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("開(kāi)始檢查進(jìn)程。。。時(shí)間為:%s" % beginTime)
 for ipAndUrl in ipAndUrlList:
  ip = ipAndUrl[0]
  configName = ipAndUrl[1]
  alist = ip.split("@")
  username = alist[0]
  #將進(jìn)程信息寫入log文件
  os.system("ssh %s ps -ef |grep %s |grep -v 'grep'> %s" %(ip,configName,log))
  #判斷文件大小,當(dāng)logstash沒(méi)有運(yùn)行時(shí)上一步寫入log的內(nèi)容為空
  if not(os.path.getsize(log)):
   # 重啟進(jìn)程
   print("ip為%s,配置文件名稱為 %s 不在進(jìn)程中,正在重啟進(jìn)程......" %(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("重啟進(jìn)程成功,開(kāi)始發(fā)送郵件")
   # 發(fā)送郵件
   sendMail(ip,configName)
 endTime = datetime.datetime.now()
 print("檢查進(jìn)程結(jié)束。。。時(shí)間為:%s" % endTime)
 print("=============================================================================")
 
def sendMail(ip,configName):
 # 當(dāng)前時(shí)間
 now = datetime.datetime.now()
 # 第三方 SMTP 服務(wù)
 mail_host = "mail.qq.com" # 設(shè)置服務(wù)器
 mail_user = "aa@qq.com" # 用戶名
 mail_pass = "deretrgt4556h" # 口令
 sender = 'aa@qq.com'
 receivers = ['bb@qq.com','cc@qq.com','dd@qq.com'] # 接收郵件,可設(shè)置為你的QQ郵箱或者其他郵箱
 message = MIMEText('logstash進(jìn)程異常,但已自動(dòng)重啟...服務(wù)器為 %s , 配置文件為 %s , 時(shí)間為 %s ' %(ip,configName,now), 'plain', 'utf-8')
 message['From'] = Header("logstash_ps", 'utf-8')
 message['To'] = Header("users", 'utf-8')
 subject = 'logstash進(jìn)程異常告警!!!'
 message['Subject'] = Header(subject, 'utf-8')
 try:
  smtpObj = smtplib.SMTP()
  smtpObj.connect(mail_host, 25) # 25 為 SMTP 端口號(hào)
  smtpObj.login(mail_user, mail_pass)
  smtpObj.sendmail(sender, receivers, message.as_string())
  print ("郵件發(fā)送成功?。。?)
 except smtplib.SMTPException:
  print("Error: 郵件發(fā)送失敗。。。")
 
if __name__ == '__main__':
 while True:
  try:
   checkPS()
  except Exception as e:
   print('Error:', e)
 

以上這篇python腳本監(jiān)控logstash進(jìn)程并郵件告警實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python連接MySQL數(shù)據(jù)庫(kù)實(shí)例分析

    python連接MySQL數(shù)據(jù)庫(kù)實(shí)例分析

    這篇文章主要介紹了python連接MySQL數(shù)據(jù)庫(kù),實(shí)例分析了Python操作MySQL的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • python驗(yàn)證碼識(shí)別的示例代碼

    python驗(yàn)證碼識(shí)別的示例代碼

    本篇文章主要介紹了python驗(yàn)證碼識(shí)別的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • Python創(chuàng)建7種不同的文件格式的方法總結(jié)

    Python創(chuàng)建7種不同的文件格式的方法總結(jié)

    今天的這篇文章呢,小編來(lái)介紹一下如何通過(guò)Python來(lái)創(chuàng)建各種形式的文件,這里包括了:文本文件、CSV文件、Excel文件、壓縮文件、XML文件、JSON文件和PDF文件,需要的可以參考一下
    2023-01-01
  • Python設(shè)計(jì)模式中的策略模式詳解

    Python設(shè)計(jì)模式中的策略模式詳解

    策略模式屬于Python-設(shè)計(jì)模式中行為模式之一,該模式定義了一系列算法,并將每個(gè)算法封裝起來(lái),使它們可以相互替換。本文將通過(guò)示例詳細(xì)講解這一模式,需要的可以參考一下
    2023-02-02
  • Python安裝xarray庫(kù)讀取.nc文件的詳細(xì)步驟

    Python安裝xarray庫(kù)讀取.nc文件的詳細(xì)步驟

    大家應(yīng)該都知道庫(kù)xarray可以幫我們讀取出nc文件的內(nèi)容,所以下面這篇文章主要給大家介紹了關(guān)于Python安裝xarray讀取.nc文件的詳細(xì)步驟,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Python外星人入侵游戲編程完整版

    Python外星人入侵游戲編程完整版

    這篇文章主要為大家詳細(xì)介紹了Python外星人入侵游戲編程完整的實(shí)現(xiàn)思路,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 實(shí)例講解Python中SocketServer模塊處理網(wǎng)絡(luò)請(qǐng)求的用法

    實(shí)例講解Python中SocketServer模塊處理網(wǎng)絡(luò)請(qǐng)求的用法

    SocketServer模塊中帶有很多實(shí)現(xiàn)服務(wù)器所能夠用到的socket類和操作方法,下面我們就來(lái)以實(shí)例講解Python中SocketServer模塊處理網(wǎng)絡(luò)請(qǐng)求的用法:
    2016-06-06
  • python 進(jìn)制轉(zhuǎn)換 int、bin、oct、hex的原理

    python 進(jìn)制轉(zhuǎn)換 int、bin、oct、hex的原理

    這篇文章主要介紹了python 進(jìn)制轉(zhuǎn)換 int、bin、oct、hex的原理,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • PyCharm 2020 激活到 2100 年的教程

    PyCharm 2020 激活到 2100 年的教程

    這篇文章主要介紹了PyCharm 2020 激活到 2100 年,本文圖文并茂給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Broadcast廣播機(jī)制在Pytorch Tensor Numpy中的使用詳解

    Broadcast廣播機(jī)制在Pytorch Tensor Numpy中的使用詳解

    python中Broadcast機(jī)制非常實(shí)用,在python中的廣播機(jī)制其實(shí)很簡(jiǎn)單,下方主要介紹Broadcast廣播機(jī)制在Pytorch Tensor Numpy中的使用,希望對(duì)你有所幫助
    2022-08-08

最新評(píng)論