AdminSet API接口完整参考:二次开发与集成指南

【免费下载链接】adminset 自动化运维平台:CMDB、CD、DevOps、资产管理、任务编排、持续交付、系统监控、运维管理、配置管理 【免费下载链接】adminset 项目地址: https://gitcode.com/gh_mirrors/ad/adminset

AdminSet作为一款功能强大的自动化运维平台,提供了丰富的API接口支持二次开发和系统集成。本文将详细介绍AdminSet的核心API接口,帮助开发者快速掌握平台集成技巧,实现自定义运维自动化解决方案。无论是资产管理系统对接、监控数据采集,还是持续交付流程整合,AdminSet API都能满足企业级运维需求。

📊 AdminSet API架构概览

AdminSet采用模块化API设计,每个功能模块都提供相应的API接口。主要API模块包括:

  • 资产管理API:位于cmdb/api.py,提供资产采集、查询和管理接口
  • 监控数据API:位于monitor/api.py,处理系统监控数据接收和查询
  • 持续交付API:位于delivery/urls.py,支持部署任务管理和执行
  • 配置管理API:集成在系统配置模块中

AdminSet资产管理界面 AdminSet资产管理界面展示设备管理功能

🔑 API认证与安全机制

AdminSet API采用Token认证机制,确保接口访问安全。所有API请求都需要在请求头中包含有效的Token:

# Token验证装饰器示例
@token_verify()
def get_host(request):
    # API逻辑

Token配置可在Web界面的系统配置中自定义,客户端脚本install/client/adminset_agent.py中需要配置相同的Token才能正常调用API。

🏗️ 资产管理API详解

1. 资产数据采集接口

API端点: /cmdb/collect 方法: POST 功能: 接收客户端上报的资产信息

# 请求示例
{
    "vendor": "Dell",
    "disk": "500GB",
    "cpu_model": "Intel Xeon",
    "cpu_num": 8,
    "memory": 16384,
    "sn": "ABC123456",
    "osver": "CentOS 7.6",
    "hostname": "web-server-01",
    "ip": "192.168.1.100"
}

该接口用于自动化资产发现,支持批量设备信息上报。客户端通过此接口将硬件配置、系统信息同步到AdminSet平台。

2. 主机信息查询接口

API端点: /cmdb/gethost/ 方法: GET 参数: name (主机名或"all")

功能:

  • 查询单个主机信息:GET /cmdb/gethost/?name=web-server-01
  • 查询所有主机信息:GET /cmdb/gethost/?name=all

返回数据格式:

{
    "status": 0,
    "message": "ok",
    "data": {
        "hostname": "web-server-01",
        "ip": "192.168.1.100"
    }
}

3. 主机组查询接口

API端点: /cmdb/getgroup/ 方法: GET 参数: name (组名或"all")

功能: 查询主机组及其成员信息,支持自动化分组管理。

资产管理详细界面 资产管理模块支持设备分组和批量操作

📈 监控数据API集成

1. 监控数据接收接口

API端点: /monitor/received/sys/info/ 方法: POST 功能: 接收系统监控指标数据

# 监控数据上报示例
{
    "hostname": "web-server-01",
    "cpu_usage": 45.2,
    "memory_usage": 78.5,
    "disk_usage": 65.3,
    "network_in": 1250000,
    "network_out": 890000,
    "timestamp": 1647849600
}

2. 监控数据查询接口

AdminSet提供多种监控数据查询接口:

  • CPU使用率: /monitor/getcpu/{hostname}/{timing}/
  • 内存使用率: /monitor/getmem/{hostname}/{timing}/
  • 磁盘使用率: /monitor/getdisk/{hostname}/{timing}/{partition}/
  • 网络流量: /monitor/getnet/{hostname}/{timing}/{net_id}/

参数说明:

  • hostname: 主机名
  • timing: 时间范围(秒)
  • partition: 磁盘分区编号
  • net_id: 网络接口ID

🚀 持续交付API应用

1. 部署任务管理

持续交付模块提供完整的部署流程API:

  • 任务创建: /delivery/deliadd/
  • 任务列表: /delivery/delilist/
  • 任务状态: /delivery/delistatus/{project_id}/
  • 任务编辑: /delivery/deliedit/{project_id}/
  • 任务执行: /delivery/delideploy/{project_id}/

2. 日志管理接口

  • 部署日志: /delivery/delilog/{project_id}/
  • 历史日志: /delivery/delilogshistory/{project_id}/
  • 日志下载: /delivery/deligetlogs/{project_id}/{logname}/

AdminSet平台概览 AdminSet平台集成多种运维工具,支持API统一调用

🔧 二次开发实战指南

1. 自定义资产采集脚本

基于AdminSet API,您可以编写自定义的资产采集脚本:

import requests
import json
import platform
import psutil

# AdminSet服务器配置
ADMINSET_URL = "http://your-adminset-server"
API_TOKEN = "your_api_token"

def collect_asset_info():
    """采集本地主机资产信息"""
    asset_data = {
        "vendor": get_vendor(),
        "disk": get_disk_info(),
        "cpu_model": platform.processor(),
        "cpu_num": psutil.cpu_count(),
        "memory": psutil.virtual_memory().total // (1024**2),  # MB
        "sn": get_serial_number(),
        "osver": platform.platform(),
        "hostname": platform.node(),
        "ip": get_local_ip()
    }
    
    # 调用AdminSet API
    headers = {"Authorization": f"Token {API_TOKEN}"}
    response = requests.post(
        f"{ADMINSET_URL}/cmdb/collect",
        json=asset_data,
        headers=headers
    )
    
    return response.json()

2. 集成第三方监控系统

将Zabbix、Prometheus等监控系统数据同步到AdminSet:

def sync_monitoring_data(hostname, metrics):
    """同步监控数据到AdminSet"""
    monitoring_data = {
        "hostname": hostname,
        "timestamp": int(time.time()),
        **metrics  # 包含CPU、内存、磁盘等指标
    }
    
    response = requests.post(
        f"{ADMINSET_URL}/monitor/received/sys/info/",
        json=monitoring_data,
        headers={"Authorization": f"Token {API_TOKEN}"}
    )
    
    return response.status_code == 200

📋 API最佳实践

1. 错误处理与重试机制

import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry

def create_session_with_retry():
    """创建带重试机制的HTTP会话"""
    session = requests.Session()
    retry_strategy = Retry(
        total=3,
        backoff_factor=1,
        status_forcelist=[429, 500, 502, 503, 504]
    )
    adapter = HTTPAdapter(max_retries=retry_strategy)
    session.mount("http://", adapter)
    session.mount("https://", adapter)
    return session

2. 批量操作优化

对于大量资产数据,建议采用分批处理:

def batch_asset_update(assets, batch_size=50):
    """批量更新资产信息"""
    session = create_session_with_retry()
    
    for i in range(0, len(assets), batch_size):
        batch = assets[i:i+batch_size]
        # 批量处理逻辑
        # ...

🎯 高级集成场景

1. 与CI/CD流水线集成

将AdminSet API集成到Jenkins、GitLab CI等CI/CD工具中:

# GitLab CI示例
deploy_to_adminset:
  stage: deploy
  script:
    - |
      curl -X POST "${ADMINSET_URL}/delivery/delideploy/${PROJECT_ID}/" \
        -H "Authorization: Token ${ADMINSET_TOKEN}" \
        -H "Content-Type: application/json" \
        -d '{"version": "${CI_COMMIT_SHA}", "environment": "production"}'

2. 自动化巡检报告

结合AdminSet API生成自动化巡检报告:

def generate_inspection_report():
    """生成系统巡检报告"""
    # 获取所有主机信息
    hosts = get_all_hosts()
    
    report = {
        "timestamp": datetime.now().isoformat(),
        "total_hosts": len(hosts),
        "hosts_status": [],
        "resource_usage": get_resource_summary()
    }
    
    for host in hosts:
        host_status = check_host_status(host)
        report["hosts_status"].append(host_status)
    
    return report

🔍 故障排查与调试

常见问题解决

  1. Token认证失败

    • 检查Token配置是否正确
    • 确认Token在Web界面中已启用
    • 验证请求头格式:Authorization: Token your_token
  2. API响应超时

    • 检查网络连通性
    • 确认AdminSet服务正常运行
    • 调整请求超时设置
  3. 数据格式错误

    • 验证JSON数据格式
    • 检查必填字段是否完整
    • 查看API日志获取详细错误信息

📚 扩展资源

通过AdminSet API,您可以构建强大的自动化运维体系,实现资产自动发现、监控数据集中管理、部署流程自动化等高级功能。无论是小型团队还是大型企业,AdminSet的API接口都能提供灵活可靠的集成方案,助力运维效率提升。

立即开始您的AdminSet API集成之旅,打造专属的智能运维平台! 🚀

【免费下载链接】adminset 自动化运维平台:CMDB、CD、DevOps、资产管理、任务编排、持续交付、系统监控、运维管理、配置管理 【免费下载链接】adminset 项目地址: https://gitcode.com/gh_mirrors/ad/adminset

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐