最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

zabbix告警報(bào)表并發(fā)送郵件功能實(shí)現(xiàn)

 更新時(shí)間:2024年07月19日 14:47:03   作者:樂維_lwops  
Zabbix開源監(jiān)控是IT監(jiān)控領(lǐng)域的佼佼者,擁有強(qiáng)大的告警統(tǒng)計(jì)與報(bào)表生成能力,但對(duì)于剛上手的小白來說可能還有些難度,本文將詳細(xì)介紹zabbix告警報(bào)表的生成過程及發(fā)送郵件的操作步驟,感興趣的朋友一起看看吧

一、場(chǎng)景模擬

小東是一名資深的IT運(yùn)維人員,其直屬領(lǐng)導(dǎo)想要了解公司業(yè)務(wù)系統(tǒng)的健康狀態(tài)以及小東日常的工作情況等,要求小東每周統(tǒng)計(jì)系統(tǒng)告警情況并發(fā)郵件給到他。小東所在公司搭建了一套zabbix開源監(jiān)控,于是小東利用自己的專業(yè)知識(shí),實(shí)現(xiàn)了zabbix告警統(tǒng)計(jì),并生成漂亮的告警報(bào)表發(fā)送給自己的領(lǐng)導(dǎo),得到了領(lǐng)導(dǎo)的稱贊。

Zabbix開源監(jiān)控是IT監(jiān)控領(lǐng)域的佼佼者,擁有強(qiáng)大的告警統(tǒng)計(jì)與報(bào)表生成能力,但對(duì)于剛上手的小白來說可能還有些難度,本文將詳細(xì)介紹zabbix告警報(bào)表的生成過程及發(fā)送郵件的操作步驟。

二、實(shí)現(xiàn)原理

環(huán)境說明:本人部署的zabbix版本為6.0加postgresql14.4數(shù)據(jù)庫(kù),如果用mysql的話,查詢語句可能不一致

1、數(shù)據(jù)來源

基于python腳本實(shí)現(xiàn),安裝psqcopg2庫(kù),查詢pg數(shù)據(jù)庫(kù)的數(shù)據(jù),主要是統(tǒng)計(jì)出最近一個(gè)月內(nèi)告警出現(xiàn)最多的觸發(fā)器,返回10-20條數(shù)據(jù)即可。統(tǒng)計(jì)最近一個(gè)月內(nèi)哪些對(duì)象出現(xiàn)的告警次數(shù)比較多,我個(gè)人的話,返回的數(shù)據(jù)是1000條

2、數(shù)據(jù)清理

把主要是統(tǒng)計(jì)出最近一個(gè)月內(nèi)告警出現(xiàn)最多的觸發(fā)器的數(shù)據(jù)整理成一個(gè)列表數(shù)據(jù),數(shù)據(jù)格式如下

[{“告警標(biāo)簽”},{“觸發(fā)器名稱”},{“告警次數(shù)”},{“告警顏色”}]

統(tǒng)計(jì)最近一個(gè)周內(nèi)哪些對(duì)象出現(xiàn)的告警次數(shù)比較多(本人加了限制,就是一個(gè)對(duì)象同一個(gè)觸發(fā)器起碼一周內(nèi)出現(xiàn)超過5次才統(tǒng)計(jì)),我個(gè)人的話,返回的數(shù)據(jù)是1000條

[{“對(duì)象名稱”},{“對(duì)象ip”},{“觸發(fā)器名稱”},{“告警出現(xiàn)次數(shù)”}]

3、腳本實(shí)現(xiàn)過程

通過python腳本把最近一個(gè)月告警出現(xiàn)最多的觸發(fā)器動(dòng)態(tài)封裝成html發(fā)到郵件正文。把一周內(nèi)哪些對(duì)象出現(xiàn)的告警次數(shù)多的填充到excel表,并作為附件發(fā)送到郵件

三、實(shí)現(xiàn)步驟

需要安裝一下python庫(kù)

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import psycopg2
import openpyxl
from openpyxl.styles import Alignment, Font
from openpyxl.utils import get_column_letter
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
import os

部分代碼

Postgresql數(shù)據(jù)庫(kù)連接代碼

config = {
    'host': '數(shù)據(jù)庫(kù)ip',
    'port': 5432,  # PostgreSQL 默認(rèn)端口是5432
    'user': '用戶名',
    'password': '密碼',
    'database': '數(shù)據(jù)庫(kù)名'
}
try:
       connection = psycopg2.connect(**config)
       with connection.cursor() as cursor:
         sql_query="""SELECT t.description AS trigger_name, t.priority AS trigger_level, COUNT(e.eventid) AS occurrence_count FROM events e JOIN triggers t ON e.objectid = t.triggerid WHERE e.source = 0 AND e.object = 0 AND e.clock >= EXTRACT(EPOCH FROM (NOW() - INTERVAL '1 WEEK')) GROUP BY t.description, t.priority ORDER BY occurrence_count DESC LIMIT 100;"""
         cursor.execute(sql_query)
         results = cursor.fetchall()
         for row in results:
              excel_data.append([row[0],row[1],row[2],row[3]])
except Exception as e:
       Print(e)

數(shù)據(jù)清洗封裝動(dòng)態(tài)html部分代碼(有些css樣式在郵件會(huì)不生效,所以可能需要用內(nèi)嵌style)

table_rows = ""
    for trigger in trigger_stats:
        table_rows += "<tr style='width:10%;height:10px'><td style='width:8%;border: 1px solid #999;text-align:center;padding: 5px 0;'><span style='background-color: {}; padding: 2px 6px; border-radius: 3px; color:white;'>{}</span></td><td style='width:10%;border: 1px solid #999;text-align:center;padding: 5px 0;color: #f40;'>{}</td><td style='width:10%;border: 1px solid #999;text-align:center;padding: 5px 0;'>{}</td></tr>".format(trigger['color'],trigger['level'],trigger["name"], trigger["count"])

Excel數(shù)據(jù)填充部分代碼(data為清理好的數(shù)據(jù))

def generate_excel(data):
    # 創(chuàng)建一個(gè)新的工作簿
    wb = openpyxl.Workbook()
    sheet = wb.active
    sheet.title = '告警報(bào)表'
    # 定義表頭
    headers = ['業(yè)務(wù)名稱', 'IP', '告警信息', '告警次數(shù)']
    # 寫入表頭
    for col_idx, header in enumerate(headers, start=1):
        cell = sheet.cell(row=1, column=col_idx)
        cell.value = header
        cell.font = Font(bold=True)
        cell.alignment = Alignment(horizontal='center')
    # 填充數(shù)據(jù)
    for row_idx, row_data in enumerate(data, start=2):
        for col_idx, value in enumerate(row_data, start=1):
            cell = sheet.cell(row=row_idx, column=col_idx)
            cell.value = value
            print(cell.value)
    # 保存工作簿
    excel_file = './alert_data.xlsx'
    wb.save(os.path.basename(excel_file))

郵件發(fā)送部分代碼

# 創(chuàng)建MIMEMultipart對(duì)象
    msg = MIMEMultipart('alternative')
    msg['From'] = sender_email
    msg['To'] = receiver_email
    msg['Subject'] = subject
    # 附加HTML內(nèi)容
    msg.attach(MIMEText(html_content, 'html'))
    generate_excel(excel_data)
    with open('./alert_data.xlsx', 'rb') as attachment:
        part = MIMEBase('application', 'octet-stream')
        part.set_payload(attachment.read())
    encoders.encode_base64(part)
    part.add_header('Content-Disposition', 'attachment; filename="{}"'.format('./alert_data.xlsx'))
    msg.attach(part)
    try:
        # 連接到QQ郵箱的SMTP服務(wù)器
        server = smtplib.SMTP_SSL('smtp.qq.com', 465)
        server.login(sender_email, sender_password)
        server.sendmail(sender_email, receiver_email, msg.as_string())
        print('郵件發(fā)送成功')
    except Exception as e:
        print('郵件發(fā)送失敗:', e)
    finally:
        server.quit()

四、成果演示

1、郵件一個(gè)月的告警統(tǒng)計(jì)報(bào)表

2、告警統(tǒng)計(jì)excel郵件附件(部分宏值需要額外替換成具體值)

到此這篇關(guān)于如何生成好看的zabbix告警報(bào)表并發(fā)送郵件 的文章就介紹到這了,更多相關(guān)zabbix告警報(bào)表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Zabbix 2.4.5自帶MySQL監(jiān)控的配置使用教程

    Zabbix 2.4.5自帶MySQL監(jiān)控的配置使用教程

    Zabbix 有自帶監(jiān)控 MySQL 的模板,但是卻不能直接使用,下面這篇文章主要給大家介紹了關(guān)于Zabbix 2.4.5自帶MySQL監(jiān)控配置使用的相關(guān)資料,文中通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07
  • 詳解ZABBIX監(jiān)控ESXI主機(jī)的問題

    詳解ZABBIX監(jiān)控ESXI主機(jī)的問題

    這篇文章主要介紹了ZABBIX監(jiān)控ESXI主機(jī),主要包括配置zabbix服務(wù)端和配置esxi的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • Zabbix?配置PING監(jiān)控的方法

    Zabbix?配置PING監(jiān)控的方法

    Zabbix?提供了一個(gè)預(yù)定義的模板,名為?Template?Module?ICMP?Ping,用于監(jiān)控網(wǎng)絡(luò)設(shè)備的?ICMP?響應(yīng),這篇文章主要介紹了Zabbix?配置PING監(jiān)控,需要的朋友可以參考下
    2024-07-07
  • Zabbix實(shí)現(xiàn)監(jiān)控多個(gè)mysql過程解析

    Zabbix實(shí)現(xiàn)監(jiān)控多個(gè)mysql過程解析

    這篇文章主要介紹了Zabbix實(shí)現(xiàn)監(jiān)控多個(gè)mysql過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Zabbix安裝圖文教程(需要LAMP或者LNMP運(yùn)行環(huán)境)

    Zabbix安裝圖文教程(需要LAMP或者LNMP運(yùn)行環(huán)境)

    要想安裝Zabbix那么在Linux下安裝zabbix需要有LAMP或者LNMP運(yùn)行環(huán)境才可以,這里給大家分享下Zabbix安裝方法,需要的朋友可以參考下
    2014-10-10
  • zabbix redis自動(dòng)發(fā)現(xiàn)端口的腳本返回json格式

    zabbix redis自動(dòng)發(fā)現(xiàn)端口的腳本返回json格式

    zabbix([`z&aelig;biks])是一個(gè)基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級(jí)的開源解決方案。這篇文章主要介紹了zabbix redis自動(dòng)發(fā)現(xiàn)端口的腳本,返回json格式,需要的朋友可以參考下
    2019-11-11
  • zabbix執(zhí)行遠(yuǎn)程主機(jī)的腳本或指令詳解

    zabbix執(zhí)行遠(yuǎn)程主機(jī)的腳本或指令詳解

    這篇文章主要介紹了在zabbix執(zhí)行遠(yuǎn)程主機(jī)的腳本或指令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • centos7安裝zabbix?5.0的詳細(xì)過程

    centos7安裝zabbix?5.0的詳細(xì)過程

    這篇文章主要介紹了centos7安裝zabbix?5.0,本文中zabbix使用的是zabbix?5?+?postgresql?+?nginx的組合,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • zabbix實(shí)現(xiàn)郵件告警的方法

    zabbix實(shí)現(xiàn)郵件告警的方法

    今天小編就為大家分享一篇關(guān)于zabbix實(shí)現(xiàn)郵件告警的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • 解析Zabbix 5.0磁盤自動(dòng)發(fā)現(xiàn)和讀寫監(jiān)控的問題

    解析Zabbix 5.0磁盤自動(dòng)發(fā)現(xiàn)和讀寫監(jiān)控的問題

    本文文章給大家介紹Zabbix 5.0磁盤自動(dòng)發(fā)現(xiàn)和讀寫監(jiān)控的問題,在配置鍵值得時(shí)候大家要主要此鍵值支持Linux平臺(tái),具體細(xì)節(jié)問題跟隨小編一起通過本文學(xué)習(xí)下吧
    2021-05-05

最新評(píng)論

左云县| 安图县| 嵊泗县| 监利县| 榕江县| 临泽县| 托里县| 平原县| 建昌县| 盘山县| 凤台县| 沈丘县| 大竹县| 乌拉特后旗| 湖南省| 嘉峪关市| 江口县| 正镶白旗| 慈利县| 岱山县| 嘉善县| 盐城市| 沁水县| 祁门县| 金门县| 习水县| 兴和县| 松溪县| 吉木萨尔县| 三都| 沙雅县| 锡林郭勒盟| 永修县| 阜新| 甘孜县| 若羌县| 永修县| 灌阳县| 乌兰察布市| 梅州市| 房产|