集成乐维监控系统API,支持监控管理、设备探测、告警处理、事件平台及业务视图等86+接口的统一调用和签名验证。
当前版本: v6.0 | 最后更新: 2026-03-11 | 状态: 与官方文档完全同步
设置 API 凭证和服务器信息:
# 服务器配置
export LERWEE_BASE_URL="http://192.168.1.79:8081/api/v6"
export LERWEE_SECRET=""
http://192.168.1.79:8081/api/v6application/json所有接口需要在请求参数中包含:
签名计算步骤:
import hashlib
def make_sign(params, secret):
"""
计算签名
Args:
params: 请求参数字典
secret: 密钥
Returns:
签名字符串
"""
# 1. 过滤空值、数组、sign 字段
filtered = {k: v for k, v in params.items()
if k != 'sign' and v != "" and v is not None and not isinstance(v, list)}
# 2. 按键名字典序排序
sorted_items = sorted(filtered.items())
# 3. 拼接字符串(不包含键值分隔符)
str_to_sign = ''.join([f"{k}{v}" for k, v in sorted_items])
# 4. 计算签名
sign = hashlib.sha1((secret + str_to_sign).encode('utf-8')).hexdigest().lower()
return sign
部分接口(如 /aialert/*)使用 JSON 序列化的 data 字段:
import json
import time
def make_data_params(data_dict, appid, token):
"""
生成 data 参数和签名
Args:
data_dict: data 参数内容
appid: 应用 ID
token: 应用 token
Returns:
(data_json, timestamp, sign)
"""
# 1. 添加 appid 和 token
data_dict['appid'] = appid
data_dict['token'] = token
# 2. JSON 序列化
data_json = json.dumps(data_dict, separators=(',', ':'))
# 3. 生成时间戳
timestamp = int(time.time())
# 4. 计算签名
sign_str = token + data_json + str(timestamp)
sign = hashlib.sha1(sign_str.encode('utf-8')).hexdigest().lower()
return data_json, timestamp, sign
📄 详细参数: references/api_details_monitor.md
📄 详细参数: references/api_details_device.md
📄 详细参数: references/api_details_alert.md
📄 详细参数: references/api_details_alert.md
📄 详细参数: references/api_details_alert.md
📄 详细参数: references/api_details_business.md
📄 详细参数: references/api_details_business.md
📄 详细参数: references/api_details_business.md
📄 详细参数: references/api_details_user.md
📄 详细参数: references/api_details_user.md
📄 详细参数: references/api_details_user.md
📄 详细参数: references/api_details_user.md
📄 详细参数: references/api_details_user.md
📄 详细参数: references/api_details_user.md
所有接口返回统一的 JSON 格式:
{
"code": 0,
"message": "",
"data": {
// 具体数据内容
}
}
常见错误码:
0: 成功403: 签名异常或认证失败404: 接口不存在500: 服务器内部错误📄 详细错误码: references/error_codes.md
import requests
import json
import hashlib
import time
base_url = "http://192.168.1.79:8081/api/v6"
secret = ""
def make_sign(params):
sorted_items = sorted(params.items())
str_to_sign = ''.join([f"{k}{v}" for k, v in sorted_items
if k != 'sign' and v != "" and v is not None
and not isinstance(v, list)])
return hashlib.sha1((secret + str_to_sign).encode('utf-8')).hexdigest().lower()
# 调用监控对象列表
params = {
"page": 1,
"pageSize": 20,
"keyword": "linux"
}
params["timestamp"] = int(time.time())
params["sign"] = make_sign(params)
response = requests.post(f"{base_url}/monitor/host-list", json=params)
print(response.json())
# 获取监控对象列表
curl -X POST "http://192.168.1.79:8081/api/v6/monitor/host-list" \
-H "Content-Type: application/json" \
-d '{
"page": 1,
"pageSize": 20,
"keyword": "linux",
"timestamp": 1678838400,
"sign": " computed_signature_here "
}'
references/api_endpoints.md - 完整 API 端点列表(按模块分类)references/api_details_monitor.md - 监控中心详细参数references/api_details_device.md - 设备探测详细参数references/api_details_alert.md - 告警与事件详细参数references/api_details_business.md - 业务视图与拓扑详细参数references/api_details_user.md - 用户管理与其他模块详细参数references/monitoring_types.md - 监控类型对照表references/error_codes.md - 错误码详解graph.data 为毫秒级时间戳,text.data.clock 为秒级时间戳,显示时需转换为北京时间 (UTC+8)sign 字段本身、空值和数组类型参数data 字段page 和 pageSize 参数时间转换示例(北京时间):
from datetime import datetime, timezone, timedelta
beijing_tz = timezone(timedelta(hours=8))
# 秒级时间戳
dt = datetime.fromtimestamp(clock, beijing_tz)
print(dt.strftime('%Y-%m-%d %H:%M:%S')) # 2026-03-11 18:41:32
# 毫秒级时间戳
dt = datetime.fromtimestamp(timestamp_ms / 1000, beijing_tz)
scripts/lerwee_api.py - Python API 客户端封装scripts/sign_test.py - 签名算法测试工具如有问题,请联系系统管理员。
ZIP package — ready to use