飞书webhook监控业务系统端口

在这里插入图片描述钉钉告警没有额度了,替代方案使用企业微信或者是飞书,以下脚本是飞书为例

监控ping也就是活动主机

#!/bin/bash
# IP Ping 监控脚本
date=$(date "+%Y-%m-%d %H:%M:%S")
# 根据实际情况修改飞书 Webhook 地址
webhook="https://open.feishu.cn/open-apis/bot/v2/hook/xxx"

# 发送消息到飞书
send_message() {
    local message="$1"
    curl -s "$webhook" \
        -H "Content-Type: application/json" \
        -d '{
            "msg_type": "text",
            "content": {
                "text": "'"$message idc"'"
            }
        }'
}

# 从 ip_list.txt 文件中读取 IP 地址列表
ip_list=$(cat ip_list.txt)

# 遍历 IP 列表并进行 Ping 测试
for ip in $ip_list
do
    ping -c 1 "$ip" >/dev/null 2>&1
    if [ $? -eq 0 ]; then
        echo "IP $ip 是存活的 $date" >/dev/null 2>&1
    else
        message="告警IP: $ip\n告警时间: $date\n请及时处理告警信息!!!!!"
        send_message "$message"
    fi
done


以下是监控端口的脚本

#!/bin/bash
#端口预警脚本
date=$(date "+%Y-%m-%d %H:%M:%S")
#根据实际情况修改webhook飞书地址
webhook="https://open.feishu.cn/open-apis/bot/v2/hook/cxxx"
 
send_message() {
    local message="$1"
    curl -s "$webhook" \
        -H "Content-Type: application/json" \
        -d '{
            "msg_type": "text",
            "content": {
                "text": "'"$message idc"'"
            }
        }'
}


# 需要监控的主机列表及其对应服务和端口
declare -A SERVICES
SERVICES=(
    ["192.168.67.15"]="MySQL-Master:3306"
    ["192.168.199.102"]="MySQL-Slave:3306"
    ["192.168.67.12"]="MySQL-Master:3306"
    ["192.168.199.101"]="MySQL-Slave:3306"
    ["192.168.199.103"]="MySQL-tesdb:3306"
    ["192.168.1.10"]="MySQL-Archive:3306"
    ["192.168.1.166"]="SQLServer:1433"
    ["192.168.4.7"]="Oracle:1521"
    ["192.168.3.7"]="Oracle:1521"
)

# 当前日期
date=$(date +"%Y-%m-%d %H:%M:%S")

for host in "${!SERVICES[@]}"
do
    # 获取服务名称
    service_name=${SERVICES[$host]%%:*}  # 提取服务名称
    port=${SERVICES[$host]##*:}           # 提取端口

    # 检查端口
    nc -zv "$host" "$port" >/dev/null 2>&1
    if [ $? -eq 0 ]; then
        echo "服务 $service_name 在主机 $host 的端口 $port 是存活的 $date"
    else
        message="告警服务: $service_name\n告警IP: $host\n告警端口: $port\n告警时间: $date\n请及时处理告警信息!!!!!"
        send_message "$message"
    fi
done

### 使用Python编写爬虫程序从飞书平台抓取数据 为了实现这一目标,通常需要考虑几个方面: 1. **了解API接口** 飞书提供了官方的开放平台 API 接口文档[^1]。通过这些API可以合法获取所需的数据,而无需直接进行HTML页面解析。 2. **身份验证机制** 访问飞书API可能需要OAuth 2.0授权流程或其他形式的身份验证方式。这涉及到注册应用、获得App ID 和 App Secret,并利用它们换取访问令牌(access token)。 3. **构建请求头** 构建HTTP头部信息时要包含必要的认证参数以及设置合适的User-Agent模拟浏览器行为。对于某些特定端点还需要加入其他自定义字段以满足服务端的要求。 4. **处理分页与批量操作** 当查询结果超过一定数量时,API可能会返回部分记录并提供下一页链接或游标(cursor),此时应循环调用直至遍历全部条目;另外也可以一次性拉取多条记录提高效率。 5. **错误重试逻辑** 实现合理的异常捕获和自动重试策略能够增强代码健壮性,在遇到临时性的网络波动或者限流响应(如429 Too Many Requests)时不致于中断整个过程。 下面给出一段简单的示例代码用于说明如何发起GET请求读取群组列表(假设已取得有效token): ```python import requests def get_group_list(token): url = "https://open.feishu.cn/open-apis/chat/v4/list" headers = { 'Authorization': f'Bearer {token}', 'Content-Type': 'application/json; charset=utf-8' } response = requests.get(url=url, headers=headers) if response.status_code == 200: data = response.json() chats = data['data']['groups'] for chat in chats: print(f"group_id={chat['group_id']}, name={chat['name']}") if __name__ == '__main__': access_token = '<your_access_token_here>' get_group_list(access_token) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值