bheisig/checkmkwebapi

此包已被弃用且不再维护。作者建议使用 idoit/checkmkwebapiclient 包。

易于使用但功能丰富的 Checkmk Web API 客户端库

0.6 2020-10-22 16:11 UTC

This package is auto-updated.

Last update: 2022-08-18 09:14:16 UTC


README

易于使用但功能丰富的 Checkmk Web API 客户端

Latest Stable Version Minimum PHP Version Build Status

关于

Checkmk 是一款网络监控软件应用。社区版("raw")采用 GPLv2 许可。

此客户端通过 Checkmk 的 Web API 与其通信。它为 PHP 提供了一个简单但强大的抽象层。您可以在自己的项目中将其用作库。

要求

在使用客户端之前满足以下简单要求

  • 一个或多个 Checkmk 网站,版本 1.4 或更高(大多数调用自 1.5 以来工作正常)
  • PHP,版本 7.4 或 8.0
  • PHP 模块 curldatejsonopensslsplzlib

安装

建议通过 Composer 安装此客户端。切换到项目根目录并获取最新稳定版本

composer require bheisig/checkmkwebapi

此命令安装最新稳定版本。您可以通过使用 @DEV 切换到当前开发分支,而不是坚持使用特定的/最小版本

composer require "bheisig/checkmkwebapi=@DEV"

更新

Composer 有一个巨大的优势(除了许多其他优势之外),那就是您可以通过运行以下命令简单地更新客户端

composer update

使用

Composer 内置了自己的自动加载器。将此行包含到您的 PHP 代码中

require_once 'vendor/autoload.php';

就是这样。如果需要,所有其他文件都将自动按需加载。

首次调用

这是一个简单的 "Hello, world!" 示例。它从 Checkmk 获取所有已配置的主机

use bheisig\checkmkwebapi\API;
use bheisig\checkmkwebapi\Config;
use bheisig\checkmkwebapi\Host;

$config = new Config();
$config
    ->setURL('https://monitoring.example.org/mysite/check_mk/')
    ->setUsername('automation')
    ->setSecret('abc123');

$api = new API($config);

$request = new Host($api);
$hosts = $request->getAll();

var_dump($hosts);

配置

API 类需要通过构造函数传入配置设置

use bheisig\checkmkwebapi\API;
use bheisig\checkmkwebapi\Config;

$config = new Config();
$config
    ->setURL('https://monitoring.example.org/mysite/check_mk/')
    ->setPort(443)
    ->setUsername('automation')
    ->setSecret('abc123')
    ->enableProxy()
    //->disableProxy()
        ->useHTTPProxy()
        //->useSOCKS5Proxy()
        ->setProxyHost('proxy.example.net')
        ->setProxyPort(8080)
        ->setProxyUsername('proxyuser')
        ->setProxyPassword('verysecure');

$api = new API($config);

Config 类有公开的方法,必须调用以配置 API

设置 参数 必需 描述
setURL() 字符串 Checkmk 的 URL(不包括入口点),例如 https://monitoring.example.com/mysite/check_mk/
setPort() 整数 Web 服务器监听的端口;如果没有设置,HTTP 将使用端口号 80,HTTPS 将使用端口号 443
setUsername() 字符串 用于认证的用户,可能是 automation
setSecret() 字符串 为用户指定的密钥
enableProxy() 在客户端和服务器之间使用代理;下面有详细信息

可选代理设置

设置 参数 必需 描述
disableProxy() 布尔值 禁用代理设置;这是默认值
useHTTPProxy() 使用 HTTP(S) 代理
useSOCKS5Proxy() 使用 SOCKS5 代理
setProxyHost() 字符串 代理的 FQDN 或 IP 地址
setProxyPort() 整数 代理服务器监听的端口号
setProxyUsername() 字符串 对代理进行认证
setProxyPassword() 字符串 指定的认证密码

主机

具有公共方法的 Host

API 调用 类方法 描述
get_host get() 通过主机名读取有关主机的信息
get_all_hosts getAll() 读取有关所有主机的信息
add_host add() 使用一些属性和标签创建新主机
edit_host edit() 编辑主机,添加新属性,更改属性或取消设置属性
delete_host delete() 通过其主机名删除主机
discover_services discoverServices() 发现主机上的服务

站点

具有公共方法的 Site

API 调用 类方法 描述
get_site get() 通过其标识符读取有关站点的信息
getAll() 读取有关所有站点的信息

文件夹

具有公共方法的 Folder

API 调用 类方法 描述
get_folder get() 通过其路径读取有关文件夹的信息
get_all_folders getAll() 读取有关所有文件夹的信息
add_folder add() 创建带有一些属性的新文件夹
edit_folder edit() 编辑文件夹的属性
delete_folder delete() 通过其路径删除文件夹

具有公共方法的 HostGroupServiceGroupContactGroup

API 调用 类方法 描述
get_all_*groups getAll() 读取有关所有组的信息
get() 通过其名称读取有关组的信息
add_*group add() 使用名称和别名创建新组
edit_*group edit() 更改组的别名
delete_*group delete() 通过其名称删除联系人组

主机标签

具有公共方法的 HostTag

API 调用 类方法 描述
get_hosttags getAll() 读取有关所有主机标签组和辅助标签的信息
set_hosttags set() 覆盖所有主机标签组和辅助标签

用户

具有公共方法的 Users

API 调用 类方法 描述
get() 通过其标识符读取有关用户的信息
get_all_users getAll() 读取有关所有用户的信息
add() 使用一些属性创建新用户
add_users batchAdd() 使用一些属性创建新用户
delete() Delete a user by its identifier
delete_users batchDelete() 通过其标识符删除用户

规则集

具有公共方法的 Ruleset

API 调用 类方法 描述
get_ruleset get() 通过其名称读取有关规则集的信息
get_rulesets_info getAll() 读取有关所有规则集的信息

代理

具有公共方法的 Agent

API 调用 类方法 描述
bake_agents bake() 烘焙代理但不签名

激活更改

具有公共方法的 Change

API 调用 类方法 描述
activate_changes activate() 在特定站点上激活更改
activateEverywhere 在所有站点上激活更改

指标

具有公共方法的 Graph

API 调用 类方法 描述
get_graph get() 将指标作为图形获取

库存

Checkmk可以收集有关您硬件/软件清单的各种信息。

具有公共方法的类 Inventory

API 调用 类方法 描述
- getHost() 读取特定主机的硬件/软件清单数据
- getHosts() 读取一个或多个主机的硬件/软件清单数据

贡献

请向我们的问题跟踪器报告任何问题。非常欢迎拉取请求。如果您想参与其中,请参阅文件CONTRIBUTING.md以获取详细信息。

版权 & 许可

版权所有 (C) 2018-20 Benjamin Heisig

根据GNU Affero GPL版本3或更高版本(AGPLv3+)授权。这是免费软件:您可以自由修改和重新分发它。在法律允许的范围内,不提供任何保证。