本文目录导读:

工具选择、配置巡检任务和结果通知,以下是通用的配置步骤,以最常见的开源工具Zabbix、Prometheus + Grafana和Python脚本 + 系统Crontab为例。
选择工具与准备
-
按场景选择:
- Zabbix:适合有大量网络设备(路由器、交换机、防火墙),需SNMP监控,有成熟模板,配置相对复杂但功能强大。
- Prometheus + SNMP Exporter + Blackbox Exporter:适合云原生环境,对设备性能和可达性(Ping、端口扫描)做指标采集,灵活且资源占用低。
- Python脚本 + Crontab/计划任务:适合轻量、定制化巡检(如批量登录设备执行命令抓取配置或状态),灵活性最高。
-
前置准备:
- 网络设备:开启并配置SNMP(用于性能监控)或SSH/Telnet(用于配置抓取)。
- 巡检服务器:确保服务器能访问所有被管设备。
详细配置步骤
方案A:使用 Zabbix 进行定时SNMP巡检(推荐)
场景:监控交换机端口流量、CPU/内存、设备存活。
- 安装Zabbix Server & Web:
wget获取安装包或使用包管理器(如yum install zabbix-server-mysql)。
- 导入Networking模板:
- 在Zabbix Web界面
Configuration > Templates搜索Template Module ICMP Ping或Networks Devices。
- 在Zabbix Web界面
- 创建设备主机:
Configuration > Hosts > Create host。- Host name:设备名(如
Switch-A)。 - Groups:选择
Linux servers或新建Network Devices。 - Interfaces:选择 SNMP,填入设备IP,端口161,版本 v2c 或 v3。
- SNMP community:填写设备上的 SNMP 团体名(如
public)。
- 激活:
Templates标签页,Link new templates,选择Template Module ICMP Ping(确保设备在线)和Template Net Network Generic Device SNMPv2。- 点击
Add完成。
- 设置巡检间隔:
- 进入Zabbix Server 配置文件
/etc/zabbix/zabbix_server.conf,调整CacheSize防止内存溢出。 - 模板中的监控项默认每 5分钟 巡检一次,可在
Configuration > Hosts > 该设备 > Macros中覆盖默认间隔(如设置{$SNMP_TIMEOUT}和{$INTERVAL})。
- 进入Zabbix Server 配置文件
方案B:使用 Prometheus + Blackbox Exporter 进行 HTTP/Ping/端口巡检
场景:检测网站是否正常、SSL证书过期时间、TCP端口可达性。
-
配置 Blackbox Exporter:
- 下载并启动
blackbox_exporter。 - 编辑
blackbox.yml(默认配置即可,或自定义 probe 模块)。 - 启动命令:
./blackbox_exporter --config.file=blackbox.yml
- 下载并启动
-
配置 Prometheus: 在
prometheus.yml的scrape_configs下添加类似以下模块:scrape_configs: - job_name: 'network_ping_check' metrics_path: /probe params: module: [icmp] # 使用ICMP模块 static_configs: - targets: - 192.168.1.1 # 网关 - 8.8.8.8 # 外网 relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 127.0.0.1:9115 # Blackbox Exporter地址 -
设置定时执行:
- Prometheus 天然在每个
scrape_interval(通常15s-30s)自动抓取。 - 如果想“固定时间”巡检(如每天10点),需结合 Prometheus Alertmanager 的
silence或使用 Cortex/Thanos 的定时查询功能,更简单的方法:在Grafana里设置Dashboard定时刷新。
- Prometheus 天然在每个
方案C:Python脚本 + Crontab / 计划任务(最灵活、适合抓取配置)
场景:每天凌晨自动备份路由器配置,或检查端口状态并生成报告。
-
编写Python脚本(示例:检查接口状态):
# network_check.py from netmiko import ConnectHandler import json from datetime import datetime devices = [ {'device_type': 'cisco_ios', 'ip': '192.168.1.1', 'username': 'admin', 'password': 'secret'} ] report = [] for device in devices: try: connection = ConnectHandler(**device) output = connection.send_command('show interface brief') connection.disconnect() report.append({device['ip']: output}) except Exception as e: report.append({device['ip']: f"Error: {str(e)}"}) # 写入日志 with open(f'/var/log/network_report_{datetime.now().strftime("%Y%m%d")}.txt', 'w') as f: json.dump(report, f, indent=4) -
配置系统定时任务(Linux):
- 执行
crontab -e - 添加一行(每天凌晨3点执行):
0 3 * * * /usr/bin/python3 /home/scripts/network_check.py
- 若要每隔5分钟执行一次:
*/5 * * * * /usr/bin/python3 /home/scripts/network_check.py
- 执行
-
Windows 计划任务:
- 打开“任务计划程序”。
- 创建任务 -> 触发器(每天/每小时) -> 操作(启动程序:
python.exe,参数为脚本路径)。
结果通知与报警
无论使用哪种工具,都需要将巡检结果推送给管理员:
- Zabbix:配置 Action,当监控项触发阈值(如Ping丢包率>10%),发送邮件或钉钉/企微Webhook。
- Prometheus:配合 Alertmanager,配置
receiver路由到 Email、Slack 或飞书。 - 脚本:在Python脚本中加入
smtplib发送邮件,或调用requests发HTTP请求到企业微信机器人。
常见问题与优化
-
SNMP返回超时:
- 检查防火墙是否开放UDP 161端口。
- 在Zabbix中增加
{$SNMP_TIMEOUT}超时时间(如5秒)。
-
SSH登录失败:
- 检查设备是否开启SSH,且允许该IP登录。
- 最好使用SSH密钥(免密)替代密码,避免密码过期或泄漏。
-
数据量过大:
- 减少巡检频率(如从1分钟改为5分钟)。
- 只监控关键指标(如端口状态、CPU),不要全量采集。
总结配置流程
| 步骤 | 操作 | 示例命令/配置 |
|---|---|---|
| 搭建环境 | 安装工具、依赖 | apt install zabbix-server-mysql / pip install netmiko |
| 添加设备 | 手动或自动发现 | Zabbix自动发现规则 / Prometheus static_configs |
| 配置检查项 | 选择模板或写脚本 | 模板 ICMP Ping / show interface |
| 设置频率 | Cron / Prometheus scrape_interval / Zabbix 默认间隔 | */10 * * * * |
| 动作与通知 | 配置报警媒介 | 钉钉机器人、SMTP邮件 |
| 测试 | 手动触发一次,查看日志 | python network_check.py / Zabbix 测试 |
根据你管理的设备数量和巡检深度,选择合适的方案即可,如果需要进一步细化某个工具的配置,可以告诉我具体的设备型号和需求。
标签: 网络巡检
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播