nikoutel/tritonsysteminfoapi

一个RESTful API,用于获取系统信息和指标的表现形式。

v0.1.1 2019-09-23 08:00 UTC

README

一个RESTful API,用于获取系统信息和指标的表现形式。

使用易于导航和配置的RESTful web-service(使用Lumen制作),可以轻松获取系统信息(如操作系统主机名公共IP服务状态),指标(如CPU使用率可用内存Web服务器负载),甚至配置(如apache2.confphp.ini)。

Triton采用HAL超媒体应用语言)约定来表示资源及其与超媒体链接的关系。
资源以JSON格式进行格式化,并具有媒体类型"application/hal+json"

仅实现了GET http方法,其他方法不允许。

状态

当前状态: 在我的机器上运行正常!
意义:它仍在开发中,目前仅支持Debian Gnu/Linux系统(带有systemd)。
它应该在其他基于Debian的系统上运行(带有systemd),但尚未进行全面测试。

警告!!

这将暴露关于您系统的关键信息!请谨慎使用!

信息/指标 - 端点

  • 系统
    • 信息 - /api/system/info
    • 平均负载 - /api/system/load
    • CPU - /api/system/cpu
      • 信息 - /api/system/cpu/info
      • 扩展信息 - /api/system/cpu/extended-info
      • 使用率(%) - /api/system/cpu/usage
    • 网络 - /api/system/network
      • 信息 - /api/system/network/info
      • 使用率(KiB/Sec) - /api/system/network/usage
    • 内存 - /api/system/memory
      • 使用率 - /api/system/memory/usage
    • 磁盘 - /api/system/disk
      • 信息 - /api/system/disk/info
      • 使用率 - /api/system/disk/usage
  • 服务 - /api/services
    • {Service} - 例如 /api/services/apache2/api/services/mysql
      • 信息 - 例如 /api/services/apache2/info
      • 状态 - 例如 /api/services/apache2/status
      • 负载 - 例如 /api/services/apache2/load
      • 配置 - 例如 /api/services/apache2/config
        • {Config} - 例如 /api/services/apache2/config/sites-enabled/api/services/mysql/mysql/config/my.conf
  • 软件 - /api/system/software
    • php - /api/system/software/php
      • phpinfo - /api/system/software/php/phpinfo
      • 配置 - /api/system/software/php/config
        • {Config} - 例如 /api/system/software/php/config/php.ini/api/system/software/php/config/php.ini-cli

服务

.env文件中定义的环境变量(ALLOWED_SERVICES)控制哪些服务可以处理。
任何其他服务将导致404错误。

配置

类似地,环境变量(ALLOWED_CONF)控制哪些配置允许。

动态定义的允许服务,同时定义了允许的配置,必须包含在环境变量TYPES_WITH_SEC_PARAMETER中,并且它们的配置必须使用环境变量ALLOWED_CONF{service_name}(例如ALLOWED_CONFAPACHE2)定义。

配置路径通过PATH_{conf_name}变量(例如PATH_MYCNF=/etc/mysql/my.cnf)定义。

要求

  • PHP 7.1.3(最小版本)

安装

composer

作为独立应用程序

composer create-project nikoutel/tritonsysteminfoapi

作为库

composer require nikoutel/tritonsysteminfoapi

配置

根据.env.example创建一个.env配置文件(如果不存在)。

.env文件存储应用程序的环境变量。

环境变量名称仅由大写字母、数字和下划线 '_' 组成(IEEE Std 1003.1-2001)

许可证

本软件遵循 MPL 2.0 许可协议

    This Source Code Form is subject to the terms of the Mozilla Public
    License, v. 2.0. If a copy of the MPL was not distributed with this
    file, You can obtain one at http://mozilla.org/MPL/2.0/.