大模型自动化运维配置:零基础搭建智能巡检与告警
大模型自动化运维配置,核心是让脚本先采集服务器指标,再把指标和规则交给大模型判断,最后输出告警或日报。
它适合单机或小规模服务器、希望减少手工巡检的零基础用户。
下面从环境准备到定时执行完整走一遍,命令和配置可直接照做。
适用场景与前置条件
这套方案适合以下情况:
- 服务器数量不多,没有现成监控平台,或监控平台告警噪音太大。
- 需要每天自动生成一份可读的巡检报告,而不是只看原始图表。
- 希望把 CPU、内存、磁盘、服务端口等检查项统一交给大模型做“是否异常”的判断和文字归纳。
操作前需要准备:
- 一台 Linux 服务器(CentOS 7+ 或 Ubuntu 20.04+ 均可),能正常访问外网。
- 一个可用的大模型 API Key,以及对应服务的接口地址和模型名称。不同厂商的地址和模型名以你控制台显示为准。
- 服务器上已有
python3和pip3,没有的话先安装。 - 具备
sudo权限的账号。
注意: 本文不绑定具体厂商和价格,API 地址、模型名请替换成你自己账号下的真实值。
安装依赖并验证 Python 环境
先确认 Python 版本,建议 3.8 以上:
python3 --version
pip3 --version
如果提示命令不存在,Ubuntu 执行:
sudo apt update
sudo apt install -y python3 python3-pip
CentOS 执行:
sudo yum install -y python3 python3-pip
安装脚本需要的 requests 库:
pip3 install requests
验证安装结果:
python3 -c "import requests; print(requests.__version__)"
能输出版本号即表示环境就绪。
编写巡检采集脚本
在 /opt/ai-ops/ 下创建脚本,避免和系统文件混在一起:
sudo mkdir -p /opt/ai-ops
sudo chown $USER:$USER /opt/ai-ops
cd /opt/ai-ops
新建 check.py,内容分三步:采集指标、调用大模型、输出结果。
下面是一个可运行的骨架,重点看注释里的替换项:
import subprocess, json, requests, datetime
API_URL = "https://你的接口地址/v1/chat/completions"
API_KEY = "你的APIKey"
MODEL = "你的模型名称"
def run(cmd):
return subprocess.getoutput(cmd)
def collect():
data = {}
data["cpu_load"] = run("uptime")
data["memory"] = run("free -m")
data["disk"] = run("df -h")
return data
def ask_llm(text):
headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
payload = {
"model": MODEL,
"messages": [
{"role": "system", "content": "你是服务器运维助手,根据指标判断是否异常,输出简短结论和需要处理的项。"},
{"role": "user", "content": text}
]
}
r = requests.post(API_URL, headers=headers, json=payload, timeout=30)
r.raise_for_status()
return r.json()["choices"][0]["message"]["content"]
if __name__ == "__main__":
metrics = collect()
prompt = json.dumps(metrics, ensure_ascii=False)
result = ask_llm(prompt)
print(f"===== {datetime.datetime.now()} =====")
print(result)
保存后先手动跑一次:
python3 /opt/ai-ops/check.py
预期结果是打印当前时间,并输出一段关于 CPU、内存、磁盘的判断文字。
如果报错,优先看下面两节。
配置定时任务与告警输出
手动跑通后,用 cron 每天定时执行。
编辑当前用户的任务:
crontab -e
加入一行,表示每天 8 点执行并把结果追加到日志:
0 8 * * * /usr/bin/python3 /opt/ai-ops/check.py >> /opt/ai-ops/report.log 2>&1
保存退出后确认任务已写入:
crontab -l
如果希望异常时发邮件或推送到 IM,可以在脚本里判断返回内容是否包含“异常”,再调用对应接口。注意: 不要把 API Key 直接写在公开仓库;
可以把 Key 放到环境变量,脚本里用 os.environ.get("LLM_API_KEY") 读取,并在 crontab 中通过 env 或 shell 脚本注入。
常见报错与避坑
- 返回 401 或 403: 检查
API_KEY是否复制完整、请求头Authorization格式是否为Bearer 你的Key。 - 连接超时: 确认服务器能访问接口域名,可用
curl -I https://你的接口地址检查网络和 DNS。 - 返回内容为空或格式不对: 检查模型名是否与控制台一致,以及返回 JSON 中
choices字段路径是否与脚本一致。 - cron 不执行: 命令里要用绝对路径
/usr/bin/python3,脚本中的文件路径也建议写绝对路径;查看/opt/ai-ops/report.log是否有报错输出。 - 磁盘指标采集不全:
df -h输出较长时,可在脚本里只保留关键挂载点,避免提示词过长。
另外,大模型返回的是文本判断,不能替代硬性阈值告警。
建议在脚本里保留一条规则:磁盘使用率超过 90% 直接告警,不依赖模型判断。
效果验证与后续调整
完成配置后,按以下顺序验证:
- 手动执行一次脚本,确认能正常输出报告。
- 修改
crontab为每分钟执行一次做临时测试,观察report.log是否新增内容,测试后改回每天执行。 - 人为制造一个高负载或写满磁盘的场景(测试机操作),确认模型输出中能指出对应异常。
- 检查日志文件大小,必要时用
logrotate做切割,避免长期追加占满磁盘。
这套大模型自动化运维配置适合作为辅助巡检,不建议直接用于生产环境的自动修复操作。
先让模型只读不写,稳定后再考虑把“建议命令”改为人工确认执行,风险更可控。