概述

    HTTP代理同时支持HTTP和HTTPS。Zabbix可以选择跟随重定向(参考下文Follow redirects的选项)

    了解何时使用HTTPS协议,另请参阅

    Zabbix server/proxy必须首先配置cURL(libcurl)支持。

    配置

    配置HTTP监控项:

    • 在主机的那行点击 Items

    • 在表格中输入监控项的参数

    所有标有红色星号的为必填字段。

    需要的HTTP监控项特定信息的字段是:

    Type在这里选择HTTP agent
    Key输入一个唯一的监控项键值
    URL连接和检索数据的URL. 例如:
    https://www.google.com
    在执行web场景步骤时,它们将自动转换为ASCII。
    Parse 可以使用Parse按钮将可选查询字段(比如?name=Admin&password=mypassword)与URL分离,将属性和值移动到查询字段中,以便自动URL编码.
    限制在2048个字符。
    支持的宏: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, 用户宏, 低级发现宏
    这是设置CURLOPT_URL cURL选项.
    Query fieldsURL的变量 (参见上文).
    指定为属性和值对。
    值是自动的URL编码。 从宏中解析值,然后自动编码url
    支持的宏: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, 用户宏, 低级自动发现宏.
    设置cURL选项 .
    Request type选择请求方法类型: GET, POST, PUT or HEAD
    TimeoutZabbix不会花超过设定的时间来处理URL (最大1分钟)。实际上,这个参数定义了连接URL的最大时间和执行HTTP请求的最大时间。 因此,Zabbix不会在一次检查中花费超过2倍的超时时间。
    支持时间后缀, 例如 30s, 1m.
    支持的宏: 用户宏, 低级发现宏。
    设置cURL选项 CURLOPT_TIMEOUT
    Request body type选择请求体类型:
    Raw data - 自定义HTTP请求体,替换宏,但不执行编码。
    JSON data - HTTP请求体是JSON格式的, 宏可以用作字符串、数字、真和假;用作字符串的宏必须包含在双引号中。从宏中解析值,然后自动转义。 如果没有指定header,那么服务器将把默认的header值设置为”Content-Type: application/json”
    XML data - HTTP请求体的XML格式。 宏可以用作文本节点、属性或CDATA部分。 从宏中解析值,然后在文本节点和属性中自动转义。 如果没有指定header,那么服务器将把默认的header值设置为 “Content-Type: application/xml”
    注意选择 XML data, 需要libxml2的支持。
    Request body输入请求体
    支持的宏: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, 用户宏, 低级自动发现宏。
    Headers执行请求时将发送的自定义HTTP头。
    指定为属性和值对。
    支持的宏: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, 用户宏, 低级自动发现宏。
    设置 cURL option.
    Required status codes期望的HTTP状态码的列表。 如果Zabbix得到不在列表中的代码,那么这个项目将不受支持。如果为空,则不执行检查.
    例如: 200,201,210-299
    列表里支持的宏: 用户宏, 低级自动发现宏。
    这个使用了 CURLINFO_RESPONSE_CODE cURL option.
    Follow redirects标记复选框以跟随HTTP重定向。
    设置 cURL option.
    Retrieve mode选择必须检索的响应部分:
    Body - 仅主体
    Headers - 仅头部
    Body and headers - 主体和头部
    Convert to JSON头文件作为属性和值对保存在”header” 键下.
    如果遇到 ‘Content-Type: application/json’ 主体被保存为对象,否则它被存储为string, 例如:
    HTTP proxy可以使用格式指定要使用的HTTP代理。
    默认将使用1080端口.
    如果指定,代理将覆盖与代理相关的环境变量,如http_proxy、HTTPS_PROXY. 如果没有指定,代理将不会覆盖与代理相关的环境变量。 输入的值将被传递 “as is”, 没有进行健全检查。
    您还可以输入SOCKS代理地址。 如果您指定了错误的协议,那么连接将失败,监控项将不受支持。 由于没有指定协议,代理将被视为HTTP代理。
    注意 HTTP代理只支持简单的身份验证。
    支持的宏: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, 用户宏, 低级自动发现宏。
    设置 cURL option.
    HTTP authentication验证类型:
    None - 不使用身份验证.
    Basic authentication - 使用脚本身份验证.
    NTLM authentication - 使用NTLM (Windows NT LAN Manager) 验证。
    选择身份验证方法将为输入用户名和密码提供两个额外的字段,其中支持用户宏和低级发现宏。
    设置 cURL option.
    SSL verify peer标记复选框以验证web服务器的SSL证书。 服务器证书将自动从系统范围的证书颁发机构(CA)位置获取。 可以使用Zabbix服务器或代理配置参数SSLCALocation重写CA文件的位置。
    设置 CURLOPT_SSL_VERIFYPEER cURL option.
    SSL verify host标记复选框以验证web服务器证书的通用名称字段或主题备用名称字段是否匹配.
    设置 cURL option.
    SSL certificate file用于客户端身份验证的SSL证书文件的名称。 证书文件必须是PEM1 格式. 如果证书文件也包含私钥,则将SSL密钥文件字段保留为空。 如果密钥已加密,请在SSL密钥密码字段中指定密码。 包含此文件的目录由Zabbix server或zabbix proxy配置参数SSLCertLocation指定。
    支持的宏: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, 用户宏, 低级自动发现宏。
    设置 CURLOPT_SSLCERT cURL option.
    SSL key file用于客户端身份验证的SSL私钥文件的名称。 私钥文件必须是PEM1格式。 包含此文件的目录由Zabbix server或zabbix proxy配置参数SSLKeyLocation指定。
    支持的宏: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, 用户宏, 低级自动发现宏。
    设置 cURL option.
    SSL key passwordSSL私钥文件密码。
    支持的宏: 用户宏, 低级自动发现宏
    设置 CURLOPT_KEYPASSWD cURL option.
    Enable trapping选中此复选框后,该项目也将作为 项发挥作用,并将接受Zabbix sender或使用Zabbix sender协议发送给该监控项的数据.
    Allowed hosts只有勾选了 Enable trapping复选框才可见。
    由逗号分隔的IP地址列表,可选地使用CIDR符号或主机名。\如果指定,传入连接将仅从这里列出的主机接受。
    如果启用了IPv6, ‘127.0.0.1’, ‘::127.0.0.1’, ‘::ffff:127.0.0.1’ 这些是一样的, ‘::/0’将允许任何IPv4或IPv6地址。
    ‘0.0.0.0/0’ 可用于允许任何IPv4地址。
    注意, IPv4兼容的IPv6地址 (0000::/96 prefix) 能够被支持,但 RFC4291不推荐使用。
    示例: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.domain
    在这个字段,空格和 是被允许的。

    如果HTTP代理字段为空,则使用HTTP代理的另一种方法是设置与代理相关的环境变量.

    对于HTTP - 为Zabbix server用户设置“http_proxy”环境变量。 例如:
    http_proxy=http://proxy\_ip:proxy\_port.

    对于HTTPS - 设置“HTTPS_PROXY”环境变量. 例如:
    HTTPS_PROXY=。 可以通过运行shell命令获得更多细节: # man curl.

    示例

    示例 1

    发送简单的GET请求来从诸如Elasticsearch这样的服务中检索数据:

    • 使用URL创建一个GET项:

    • 注意其响应

    示例 2

    发送简单的POST请求来检索来自Elasticsearch等服务的数据:

    • 使用URL创建一个POST项:

    • 配置以下POST主体以获取处理器负载 (每核1分钟的平均值)

    • 接收:

    • 现在使用JSONPath预处理步骤获取项值: