wazuh4.7利用python脚本发送告警信息到飞书机器人

最近在安装wazuh服务器,但是系统自带的集成第三方告警一直尝试无法使用,最后只能自己编写脚本实现实时告警功能。
一、编写python脚本,匹配level 12以上的告警级别,发送到飞书机器人

#!/usr/local/bin/python3
# -*- coding: utf-8 -*-
import sys
import re
import requests

webhook_url = "https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxxx"

# 使用一个变量记录当前的日志段落
current_log = ""

for line in sys.stdin:
    # 将每一行添加到当前的日志段落
    current_log += line
    
    # 检查是否到达一个新的日志段落的末尾
    if line.strip() == "":
        # 解析日志段落
        match = re.search(r'Rule: \d+ \(level (12|13|14|15)\)', current_log)
        if match:
            alert_level = match.group(1)

            # 发送到飞书机器人
            payload = {
                "msg_type": "text",
                "content": {
                    "text": f"New Alert (Level {alert_level}):\n{current_log}"
                }
            }
            headers = {"Content-Type": "application/json"}
            response = requests.post(webhook_url, json=payload, headers=headers)

            # 打印HTTP响应码和响应内容(用于调试)
            print(f"HTTP Response Code: {response.status_code}")
            print(f"HTTP Response Content: {response.text}")

            if response.status_code == 200:
                print("Notification sent successfully.")
            else:
                print(f"Failed to send notification. Status code: {response.status_code}")

        # 重置当前的日志段落
        current_log = ""

二、将编写好的脚本执行以下命令,放到后台执行。
nohup tail -n 0 -F /var/ossec/logs/alerts/alerts.log | python3 process_log.py > output.log 2>&1 & disown

三、可根据脚本进行修改,过滤匹配其他告警信息,以下是模拟攻击,触发告警,告警展示。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值