组件监控配置
UniAgent安装完成后,各种组件的exporter即被安装完成,每种类型的exporter用于监控对应的组件。如需监控指定的组件,还需要在控制台中进行监控配置。
探针安装后,SQL Server无需进行监控配置,系统会自动发现SQL Server。
Kubernetes监控配置
Kubernetes探针安装完成后,需要将探针信息添加到控制台中。
- 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置。
- 在配置页面左侧导航栏选择实例管理,然后在页面上方点击Kubernetes页签。
- 在Kubernetes实例管理页面右上角点击新增按钮。
- 填写集群名称、所属业务系统、部署环境、prometheus exporter的IP和端口。
- 点击确定,完成Kubernetes集群监控的添加。
Apache HTTP Server监控配置
要监控Apache HTTP Server,需要先开启Apache的mod_status模块,然后在报表中添加Apache HTTP Server。
开启Apache的mod_status模块
开启mod_status模块,需要在Apache 服务器的httpd.conf文件中添加如下配置:
ExtendedStatus On
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 10.128.1.5
# 此处IP更改为tingyun-infra-collector地址
</Location>
修改完成后重启Apache服务,假设Apache服务器的IP地址为10.128.1.10,那么Apache监控状态页的地址为 http://10.128.1.10/server-status。
添加监控实例
- 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置。
- 在配置页面左侧导航栏选择实例管理,然后在页面上方点击Apache页签。
- 在Apache实例管理页面的右上角点击新增按钮。
- 填写实例名称、实例的IP、实例的端口和StatusPath,选择实例所属的业务系统、探针(即exporter)的IP地址。
- 点击确定,完成Apache实例的添加。
Nginx监控配置
要监控Nginx,需要先添加Nginx的stub_status模块,然后在报表中添加Nginx监控。
添加Nginx的stub_status模块
Nginx默认安装不包含stub_status模块,在编译的时候需要加以下参数:
--with-http_stub_status_module
可以通过nginx -V来查看当前是否已经支持。
添加后编辑nginx.conf开启stub_status:
http {
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location /nginx-status {
stub_status on;
access_log off;
}
}
}
修改完成后重启Nginx服务,假设Nginx服务器的IP地址为10.128.1.10,那么Nginx监控状态页的地址为 http://10.128.1.10/nginx-status。
添加监控实例
- 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置。
- 在配置页面左侧导航栏选择实例管理,然后在页面上方点击Nginx页签。
- 在Nginx实例管理页面的右上角点击新增按钮。
- 填写实例名称、实例的IP、实例的端口和StatusPath,选择实例所属的业务系统、探针(即exporter)的IP地址。
- 点击确定,完成Nginx实例的添加。
Redis监控配置
- 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置。
- 在配置页面左侧导航栏选择实例管理,然后在页面上方点击Redis页签。
- 在Redis实例管理页面的右上角点击新增按钮。
- 填写实例名称、实例的IP、实例的端口、密码,选择实例所属的业务系统、探针(即exporter)的IP地址。
- 点击确定,完成Redis实例的添加。
MySQL监控配置
创建监控用户
为安全考虑,建议创建单独的监控用户,登录MySQL,执行:
CREATE USER 'tingyun'@'mysql_agent_ip' IDENTIFIED BY 'your_password';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'tingyun'@'mysql_agent_ip';
GRANT DROP ON performance_schema.events_statements_summary_global_by_event_name TO 'tingyun'@'mysql_agent_ip';
添加监控实例
- 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置。
- 在配置页面左侧导航栏选择实例管理,然后在页面上方点击MySQL页签。
- 在MySQL实例管理页面的右上角点击新增按钮。
- 填写实例名称、实例的IP、实例的端口、账号和密码,选择实例所属的业务系统、探针(即exporter)的IP地址。
- 点击确定,完成MySQL实例的添加。
Oracle监控配置
创建监控用户
为安全考虑,建议创建单独的监控用户,登录Oracle,执行:
create user tingyun identified by your_password;
grant connect to tingyun ;
grant resource to tingyun ;
GRANT UNLIMITED TABLESPACE TO tingyun;
GRANT SELECT ANY DICTIONARY TO tingyun;
添加监控实例
- 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置。
- 在配置页面左侧导航栏选择实例管理,然后在页面上方点击Oracle页签。
- 在Oracle实例管理页面的右上角点击新增按钮。
- 填写实例名称、实例的IP、实例的端口、service_name、账号和密码,选择实例所属的业务系统、探针(即exporter)的IP地址。
- 点击确定,完成Oracle实例的添加。
PostgreSQL监控配置
创建监控用户
出于安全性和可追溯的角度考虑,需要单独创建用于监控数据采集的用户。
CREATE USER postgres_exporter;
ALTER USER postgres_exporter WITH PASSWORD 'your_password';
ALTER USER postgres_exporter SET SEARCH_PATH TO postgres_exporter,pg_catalog;
CREATE SCHEMA IF NOT EXISTS postgres_exporter;
GRANT USAGE ON SCHEMA postgres_exporter TO postgres_exporter;
GRANT CONNECT ON DATABASE postgres TO postgres_exporter;
CREATE OR REPLACE FUNCTION get_pg_stat_activity() RETURNS SETOF pg_stat_activity AS
$$ SELECT * FROM pg_catalog.pg_stat_activity; $$
LANGUAGE sql
VOLATILE
SECURITY DEFINER;
CREATE OR REPLACE VIEW postgres_exporter.pg_stat_activity
AS
SELECT * from get_pg_stat_activity();
GRANT SELECT ON postgres_exporter.pg_stat_activity TO postgres_exporter;
CREATE OR REPLACE FUNCTION get_pg_stat_replication() RETURNS SETOF pg_stat_replication AS
$$ SELECT * FROM pg_catalog.pg_stat_replication; $$
LANGUAGE sql
VOLATILE
SECURITY DEFINER;
CREATE OR REPLACE VIEW postgres_exporter.pg_stat_replication
AS
SELECT * FROM get_pg_stat_replication();
GRANT SELECT ON postgres_exporter.pg_stat_replication TO postgres_exporter;
添加监控实例
- 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置。
- 在配置页面左侧导航栏选择实例管理,然后在页面上方点击PostgreSQL页签。
- 在PostgreSQL实例管理页面的右上角点击新增按钮。
- 填写实例名称、实例的IP、实例的端口、账号和密码,选择实例所属的业务系统、探针(即exporter)的IP地址。
- 点击确定,完成PostgreSQL实例的添加。
MongoDB监控配置
创建监控用户
出于安全性和可追溯的角度考虑,需要单独创建用于监控数据采集的用户。
- 分片集群监控,需要在mongos、configServer和每个shard中分别执行,其中configServer和shard选择任意一个副本集实例执行即可
- 副本集监控,选择副本集中任意一个实例执行即可
- 单机监控,直接在单机实例上执行即可
db.createRole({
role: "explainRole",
privileges: [{
resource: {
db: "",
collection: ""
},
actions: [
"listIndexes",
"listCollections",
"dbStats",
"dbHash",
"collStats",
"find"
]
}],
roles:[]
})
db.getSiblingDB("admin").createUser({
user: "tingyun",
pwd: "your_password",
roles: [
{ role: "explainRole", db: "admin" },
{ role: "clusterMonitor", db: "admin" },
{ role: "read", db: "local" }
]
})
添加监控实例
- 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置。
- 在配置页面左侧导航栏选择实例管理,然后在页面上方点击MongoDB页签。
- 在MongoDB实例管理页面的右上角点击新增按钮。
- 填写集群名称、权限分组、探针列表、集群类型、账号、密码和实例列表。
- 权限分组:给集群设置一个权限分组的标签。
- 探针列表:选择实例将监控数据上传到的探针(即exporter)的IP地址。
- 集群类型:包括单机、副本集和分片集群三种类型。如果是分片集群,则需要填写mongos实例地址和所有configServer实例的地址;如果是副本集监控,则填写副本集中所有实例的地址。
- 实例列表:填写实例的IP地址和端口,支持域名形式。
- 点击确定,完成MongoDB实例的添加。
Zookeeper监控配置
zookeeper嵌码
修改zookeeper启动脚本,位于zookeeper安装目录下的bin/zkServer.sh文件。
## 脚本最上面添加一行加载环境变量的代码
source infra_agent_install_home/tingyun-env.sh
## 修改脚本启动命令start选项下的命令行,添加${TINGYUN_ZOOKEEPER_AGENT}环境变量
nohup "$JAVA" $ZOO_DATADIR_AUTOCREATE ${TINGYUN_ZOOKEEPER_AGENT} "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" $
重启zookeeper实例
## 重启
zookeeper_install_home/zkServer.sh restart
添加监控实例
- 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置。
- 在配置页面左侧导航栏 选择实例管理,然后在页面上方点击Zookeeper页签。
- 在Zookeeper实例管理页面的右上角点击新增按钮。
- 填写集群名称、权限分组、部署环境、实例列表和JMX端口。
- 权限分组:给集群设置一个权限分组的标签。
- 部署环境:实例的部署环境,即监控Zookeeper的exporter所安装在的数据中心、VPC或机房。
- 实例列表:填写实例的IP地址和端口,支持域名形式。
- JMX端口:Zookeeper的远程连接端口,默认为29119。
- 点击确定,完成Zookeeper实例的添加。
Kafka监控配置
Kafka JMX嵌码
修改kafka启动脚本。脚本位于kafka安装目录下的bin/kafka-run-class.sh文件。

添加监控实例
由于Kafka采用的是JMX Agent+Kafka exporter的方式采集监控指标,因此在探针安装完成后还需要在报表端配置监控实例的信息。
- 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置。
- 在配置页面左侧导航栏选 择实例管理,然后在页面上方点击Kafka页签。
- 在Kafka实例管理页面的右上角点击新增按钮。
- 填写集群名称、权限分组、探针列表、版本、实例列表、JMX端口、部署环境、zkPath和zk实例列表。
- 权限分组:给集群设置一个权限分组的标签。
- 探针列表:选择实例将监控数据上传到的探针(即exporter)的IP地址。
- 版本:选择要监控的Kafka的版本。
- 实例列表:填写实例的IP地址和端口,支持域名形式。
- JMX端口:Kafka的远程连接端口,默认为29120。
- 部署环境:实例的部署环境,即监控Elasticsearch的exporter所安装在的数据中心、VPC或机房。
- zkPath:Zookeeper path。
- zk实例列表:填写Zookeeper的实例IP地址和端口。
- 点击确定,完成Kafka监控实例的添加。
ActiveMQ监控配置
ActiveMQ嵌码
修改ActiveMQ脚本。脚本位于ActiveMQ安装目录下的bin/env文件。

添加监控实例
由于ActiveMQ采用的是JMX Agent 的方式采集监控指标,因此在嵌码完成后在控制台中配置需要监控的ActiveMQ集群,即可实现对ActiveMQ的监控。
- 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置。
- 在配置页面左侧导航栏选择实例管理,然后在页面上方点击ActiveMQ页签。
- 在ActiveMQ实例管理页面的右上角点击新增按钮。
- 填写集群名称、权限分组、部署环境、实例列表和JMX端口。
- 权限分组:给集群设置一个权限分组的标签。
- 部署环境:实例的部署环境,即监控ActiveMQ的exporter所安装在的数据中心、VPC或机房。
- 实例列表:填写实例的IP地址和端口,支持域名形式。
- JMX端口:Zookeeper的远程连接端口,默认为29121。
- 点击确定,完成ActiveMQ实例的添加。
RabbitMQ监控配置
- 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置。
- 在配置页面左侧导航栏选择实例管理,然后在页面上方点击RabbitMQ页签。
- 在RabbitMQ实例管理页面的右上角点击新增按钮。
- 填写集群名称、权限分组、探针列表、实例列表、监控端口、监控账号和密码。
- 权限分组:给集群设置一个权限分组的标签。
- 探针列表:选择实例将监控数据上传到的探针(即exporter)的IP地址。
- 实例列表:填写实例的IP地址和端口,支持域名形式。
- 监控端口:填写RabbitMQ实例的监控端口,默认为15672。
- 点击确定,完成RabbitMQ实例的添加。
Elasticsearch监控配置
- 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置。
- 在配置页面左侧导航栏选择实例管理,然后在页面上方点击Elasticsearch页签。
- 在Elasticsearch实例管理页面的右上角点击新增按钮。
- 填写集群名称、权限分组、探针列表、监控账号、密码和实例列表。
- 权限分组:给集群设置一个权限分组的标签。
- 探针列表:选择实例将监控数据上传到的探针(即exporter)的IP地址。
- 实例列表:填写实例的IP地址和端口,支持域名形式。
- 点击确定,完成Elasticsearch实例的添加。
Kingbase监控配置
适配范围
- Kingbase:V8R6+、V9+
- Collector:4.3.1或更高版本
创建监控用户
为保 证安全与最小权限原则,需在Kingbase中创建只读账号并授予只读权限,仅用于监控数据采集。
使用ksql执行以下命令(以下仅为示例数据,请根据实际情况修改):
CREATE USER kingbase_exporter WITH PASSWORD 'your_password';
参数说明:
kingbase_exporter:只读用户,可自定义名称;如有修改,需同步修改后续所有命令中的kingbase_exporter。your_password:请替换为安全性较高的密码。
授予监控权限
使用ksql执行以下授权命令(以下仅为示例数据,请根据实际情况修改):
-- 尝试授予KingbaseES原生监控角色,失败则回退到PG兼容角色
DO $$
BEGIN
-- 尝试sys_monitor(KingbaseES V8R6+ 推荐)
BEGIN
EXECUTE 'GRANT sys_monitor TO kingbase_exporter';
RAISE NOTICE 'Successfully granted sys_monitor to kingbase_exporter.';
EXCEPTION WHEN undefined_object THEN
-- 回退到pg_monitor(兼容旧版本或PG模式)
BEGIN
EXECUTE 'GRANT pg_monitor TO kingbase_exporter';
RAISE NOTICE 'Successfully granted pg_monitor to kingbase_exporter (sys_monitor not found).';
EXCEPTION WHEN undefined_object THEN
RAISE WARNING 'Neither sys_monitor nor pg_monitor exists. Manual grants may be required.';
END;
END;
END $$;
ksql 执行结果中包含Successfully表示授权成功,否则需要进行手工授权。
开启 sys_stat_statements 插件
sys_stat_statements插件是KingbaseES扩展插件,可提供服务端已执行SQL语句的统计信息,帮助数据库管理员进行性能分析与优化,尤其适用于分析查询性能开销与识别TOP SQL。
修改 sys_stat_statements 插件配置
该插件默认处于关闭状态,需要修改配置文件kingbase.conf并设置参数:
sys_stat_statements.track = 'top'
同时确认shared_preload_libraries参数中包含sys_stat_statements,且sys_stat_statements.track的值为'top'。例如(以下仅为示例数据,实际配置可能不同):
shared_preload_libraries = 'sys_kwr,sys_stat_statements,auto_bmr'
sys_stat_statements.max = 10000
sys_stat_statements.track = 'top'
- 如果插件处于关闭状态,修改
kingbase.conf后需重启Kingbase。 - 如果插件已开启,则无需额外操作。
检查 sys_stat_statements 插件状态
SHOW shared_preload_libraries;
SELECT * FROM sys_settings WHERE name LIKE '%statements%';
开通防火墙策略
确保Collector能够访问Kingbase实例,请联系运维人员放通Collector到Kingbase的防火墙访问策略(Collector IP → Kingbase IP:端口)。
确认Kingbase库名
Collector默认连接Kingbase的test库。若test库不存在,则需要修改Collector环境变量 TINGYUN_KINGBASE_DB ,指定一个可用的库。
普通方式部署的Collector ,修改 Collector路径/conf/env.txt, 添加以下内容:
TINGYUN_KINGBASE_DB=指定的库名
Kubernetes方式部署的Collector,修改YAML,添加StatefulSet tingyun-collector的环境变量:
- name: TINGYUN_KINGBASE_DB
value: "指定的库名"
添加Kingbase实例信息
- 在左侧导航栏点击 全部应用,在打开的轻应用列表中点击 配置。
- 在配置页面左侧导航栏选择 实例管理,然后在页面上方点击 Kingbase 页签。
- 在Kingbase实例管理页面右上角点击 新增 按钮。
- 填写实例名称、权限分组、探针列表、监控账号、密码和实例信息:
- 权限分组:为实例设置权限分组标签。
- 探针列表:选择用于拉取监控数据的Collector 。
- IP/端口:填写Kingbase数据库的IP地址和访问端口。
- 账号/密码:填写监控用户的用户名和密码。
- 实例列表:填写实例节点的IP地址和端口,支持域名形式。
- 点击 确定,完成Kingbase实例的添加。