HTTP 模板操作

使用 HTTP agent方式收集度量数据的模板正确操作步骤如下:

1. 在Zabbix 中创建一个主机,指定监控目标的IP地址或DNS名称为主接口。这需要宏{HOST.CONN}在模板项中正确的解析。
2. 将模板 链接 到步骤1中创建的主机(如果模板在Zabbix安装中不可用,您可能需要首先导入模板的.xml文件 - 参见 开箱即用的模板 说明).
3. 根据需要调整必配宏的值。
4. 配置被监视的主机实例,以允许与Zabbix获取数据 - 请参阅 附加步骤/注释 列中的说明。

此页仅包含正确模板操作所需的最小宏的集和设置步骤。模板的详细描述,包括宏、监控项和触发器的完整列表,可以在模板的自述文件Readme.md文件(可通过单击模板名称进行访问)。

模板必配宏附加步骤/注释
Template App Apache by HTTP{$APACHE.STATUS.HOST} - Apache 状态页的主机名或IP地址 (默认: 127.0.0.1).
{$APACHE.STATUS.PATH} - URL 路径 (默认: server-status?auto).
{$APACHE.STATUS.PORT} - Apache 状态页的端口号 (默认: 80).
{$APACHE.STATUS.SCHEME} - 请求协议. 支持: http (默认), https.
Apache 模块 modstatus 需要被设置 (参见 Apache 文档 ).
检查可用性, 执行:
httpd -M 2>/dev/null | grep status_module

Apache 配置样例:
<Location “/server-status”>
SetHandler server-status
Require host example.com
</Location>
Template App Elasticsearch Cluster by HTTP{$ELASTICSEARCH.PORT} - Elasticsearch 主机的端口号 (默认: 9200).
{$ELASTICSEARCH.SCHEME} - 请求协议. 支持: http (默认), https.
{$ELASTICSEARCH.USERNAME}, {$ELASTICSEARCH.PASSWORD} - 登录凭据, 仅当用于Elasticsearch身份验证时才需要.
-
Template App Etcd by HTTP{$ETCD.PORT} - Etcd API 端点的端口号 (默认: 2379).
{$ETCD.SCHEME} - 请求协议,支持: http (默认), https.
{$ETCD.USER}, {$ETCD.PASSWORD} - 登录凭据, 仅当用于Etcd身份验证时才需要。
度量数据被从API端点的接口路径 /metrics 收集 ; 指定API端点的接口路径,请使用 —listen-metrics-urls 参数 (参见 Etcd 文档 ).

检验 Etcd 是否被配置允许本地采集度量数据, 执行:
curl -L http://localhost:2379/metrics

检查 Etcd 可以被从 Zabbix proxy 或 Zabbix server 访问 执行:
curl -L http://<etcd_node_adress>:2379/metrics

这个模板需要添加到每个 Etcd 的节点。
Template App Hadoop by HTTP{$HADOOP.CAPACITY_REMAINING.MIN.WARN} - Hadoop集群剩余容量百分比的触发器阈值 (默认:20).
{$HADOOP.NAMENODE.HOST} - Hadoop NameNode 节点的主机IP 或 FQDN (默认: NameNode).
{$HADOOP.NAMENODE.PORT} - Hadoop NameNode 节点的 web-UI 端口号 (默认: 9870).
{$HADOOP.NAMENODE.RESPONSE_TIME.MAX.WARN} - Hadoop NameNode 的 API页最大响应时间(以秒为单位)的触发器阈值 (默认: 10s).
{$HADOOP.RESOURCEMANAGER.HOST} - Hadoop ResourceManager 节点的 IP 地址或 FQDN (默认: ResourceManager).
{$HADOOP.RESOURCEMANAGER.PORT} - Hadoop ResourceManager 的 web-UI 端口号 (默认: 8088).
{$HADOOP.RESOURCEMANAGER.RESPONSE_TIME.MAX.WARN} - Hadoop ResourceManager API 页最大响应时间(以秒为单位)的触发器阈值 (默认: 10s).
度量数据是通过使用HTTP agentJSONPath预处理方式远程轮询 Hadoop Api 来收集的。Zabbix服务器(或代理)执行对ResourceManager、NodeManager、NameNode、DataNodes API的直接请求。由于Zabbix批量收集数据,所有指标都可以一次性收集。
Template App HAProxy by HTTP{$HAPROXY.STATS.PATH} - HAProxy 状态页的路径 (默认: stats).
{$HAPROXY.STATS.PORT} - HAProxy 状态页主机或容器的端口号 (默认: 8404).
{$HAPROXY.STATS.SCHEME} - 请求协议,支持: http (默认), https.
HAProxy 状态页需要被设置 (参见 HAProxy 博客文档 或 模板的 Readme.md 配置样例).
Template App Nginx by HTTP{$NGINX.STUB_STATUS.HOST} - Nginx stub_status 主机或容器的主机名或IP地址 (默认: localhost).
{$NGINX.STUB_STATUS.PATH} - Nginx stub_status 页的请求路径 (默认: basic_status).
{$NGINX.STUB_STATUS.PORT} - Nginx stub_status 主机或容器的端口号 (默认: 80).
{$NGINX.STUB_STATUS.SCHEME} - 请求协议,支持: http (默认), https.
‘ngx_http_stub_status_module 需要被设置 (参见 Nginx 文档 或模板的 Readme.md 配置样例).
检查可用性, 执行:
nginx -V 2>&1 | grep -o with-http_stub_status_module
Template App PHP-FPM by HTTP{$PHP_FPM.HOST} - PHP-FPM 主机或容器的主机名或IP地址 (默认: localhost).
{$PHP_FPM.PING.PAGE} - PHP-FPM 状态页(ping页)URL路径(默认:ping).
{$PHP_FPM.PORT} - PHP-FPM 主机或容器的端口号 (默认: 80).
{$PHP_FPM.PROCESS_NAME} - PHP-FPM 进程 name (默认:php-fpm).
{$PHP_FPM.SCHEME} - 请求协议,支持: http (默认), https.
{$PHP_FPM.STATUS.PAGE} - PHP-FPM 状态页 (默认:status).
1. 编辑 php-fpm 配置文件并启用状态页:
pm.status_path = /status
ping.path = /ping

2. 校验配置文件: $ php-fpm7 -t

3. 重载 php-fpm 服务.

4. 在 Nginx 服务配置文件的server 配置区域 , 添加 (参见模板的 Readme.md 文档中带有注释的扩展示例):
location ~ ^/(status|ping)$ {
access_log off;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}

5. 校验配置文件: $ nginx -t

6. 重载Nginx

7. 检查状态页: curl -L 127.0.0.1/status
Template App RabbitMQ cluster by HTTP{$RABBITMQ.API.CLUSTER_HOST} - RabbitMQ 集群 API 端点的主机名或IP地址 (默认: 127.0.0.1).
{$RABBITMQ.API.SCHEME} - 请求协议,支持: http (默认), https.
{$RABBITMQ.API.USER}, {$RABBITMQ.API.PASSWORD} - RabbitMQ 登录凭据 (默认用户名: zbx_monitor, 密码: zabbix).
启用 RabbitMQ 管理插件 (参见 RabbitMQ 文档).

在 RabbitMQ 中创建一个具有必备权限用于监控的用户, 执行:
rabbitmqctl add_user zbx_monitor <PASSWORD>
rabbitmqctl set_permissions -p / zbx_monitor “” “” “.*”
rabbitmqctl set_user_tags zbx_monitor monitoring

单节点安装时,可将集群模板分配给已安装节点模板的主机。如果群集由多个节点组成,建议将群集模板分配给一个单独的负载主机使用。
Template DB ClickHouse by HTTP{$CLICKHOUSE.PORT} - ClickHouse HTTP 端点的端口号 (默认: 8123).
{$CLICKHOUSE.SCHEME} - 请求协议,支持: http (默认), https.
{$CLICKHOUSE.USER}, {$CLICKHOUSE.PASSWORD} - ClickHouse 登录凭据 (默认用户名: zabbix, 密码: zabbix_pass).
如果不需要身份验证,请从监控项的HTTP agent类型配置项的请求头中删除。
创建一个具有web配置文件和查看数据库权限的ClickHouse用户 (参见 ClickHouse 文档 ).

参见模板的 Readme.md 文档中现成的一个zabbix.xml 文件配置。
Template Tel Asterisk by HTTP{$AMI.PORT} - 检测服务可用性的 AMI 端口号(默认: 8088).
{$AMI.SECRET} - Asterisk Manager 的 secret (默认: zabbix).
{$AMI.URL} - Asterisk Manager 的 API URL 格式
<scheme>://<host>:<port>/<prefix>/rawman
(默认: http://asterisk:8088/asterisk/rawman).
{$AMI.USERNAME} - Asterisk Manager 用户名.
1. 启用 mini-HTTP Server.

2. 添加选项 webenabled=yes 到配置文件 manager.confgeneral 部分.

3. 在 Asterisk 实例中创建 Asterisk Manager 用户。
ZooKeeper by HTTP{$ZOOKEEPER.COMMANDURL} - admin.commandURL; 用于相对于根URL列出和发出命令的URL (默认: commands).
{ZOOKEEPER.PORT} - admin.serverPort; 内置 Jetty服务的侦听端口号 (默认: 8080).
{$ZOOKEEPER.SCHEME} - 请求协议,支持: http (默认), https.
通过对AdminServer的请求从每个ZooKeeper节点收集度量数据 (默认启用). 配置启用 AdminServer 参见 ZooKeeper 文档