跳到主要内容

组件监控配置

UniAgent安装完成后,各种组件的exporter即被安装完成,每种类型的exporter用于监控对应的组件。如需监控指定的组件,还需要在控制台中进行监控配置。

提示

探针安装后,SQL Server无需进行监控配置,系统会自动发现SQL Server。

Kubernetes监控配置

Kubernetes探针安装完成后,需要将探针信息添加到控制台中。

  1. 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置
  2. 在配置页面左侧导航栏选择实例管理,然后在页面上方点击Kubernetes页签。
  3. 在Kubernetes实例管理页面右上角点击新增按钮。
  4. 填写集群名称、所属业务系统、部署环境、prometheus exporter的IP和端口。
  5. 点击确定,完成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。

添加监控实例

  1. 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置
  2. 在配置页面左侧导航栏选择实例管理,然后在页面上方点击Apache页签。
  3. 在Apache实例管理页面的右上角点击新增按钮。
  4. 填写实例名称、实例的IP、实例的端口和StatusPath,选择实例所属的业务系统、探针(即exporter)的IP地址。
  5. 点击确定,完成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。

添加监控实例

  1. 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置
  2. 在配置页面左侧导航栏选择实例管理,然后在页面上方点击Nginx页签。
  3. 在Nginx实例管理页面的右上角点击新增按钮。
  4. 填写实例名称、实例的IP、实例的端口和StatusPath,选择实例所属的业务系统、探针(即exporter)的IP地址。
  5. 点击确定,完成Nginx实例的添加。

Redis监控配置

  1. 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置
  2. 在配置页面左侧导航栏选择实例管理,然后在页面上方点击Redis页签。
  3. 在Redis实例管理页面的右上角点击新增按钮。
  4. 填写实例名称、实例的IP、实例的端口、密码,选择实例所属的业务系统、探针(即exporter)的IP地址。
  5. 点击确定,完成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';

添加监控实例

  1. 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置
  2. 在配置页面左侧导航栏选择实例管理,然后在页面上方点击MySQL页签。
  3. 在MySQL实例管理页面的右上角点击新增按钮。
  4. 填写实例名称、实例的IP、实例的端口、账号和密码,选择实例所属的业务系统、探针(即exporter)的IP地址。
  5. 点击确定,完成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;

添加监控实例

  1. 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置
  2. 在配置页面左侧导航栏选择实例管理,然后在页面上方点击Oracle页签。
  3. 在Oracle实例管理页面的右上角点击新增按钮。
  4. 填写实例名称、实例的IP、实例的端口、service_name、账号和密码,选择实例所属的业务系统、探针(即exporter)的IP地址。
  5. 点击确定,完成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;

添加监控实例

  1. 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置
  2. 在配置页面左侧导航栏选择实例管理,然后在页面上方点击PostgreSQL页签。
  3. 在PostgreSQL实例管理页面的右上角点击新增按钮。
  4. 填写实例名称、实例的IP、实例的端口、账号和密码,选择实例所属的业务系统、探针(即exporter)的IP地址。
  5. 点击确定,完成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" }
]
})

添加监控实例

  1. 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置
  2. 在配置页面左侧导航栏选择实例管理,然后在页面上方点击MongoDB页签。
  3. 在MongoDB实例管理页面的右上角点击新增按钮。
  4. 填写集群名称、权限分组、探针列表、集群类型、账号、密码和实例列表。
    • 权限分组:给集群设置一个权限分组的标签。
    • 探针列表:选择实例将监控数据上传到的探针(即exporter)的IP地址。
    • 集群类型:包括单机、副本集和分片集群三种类型。如果是分片集群,则需要填写mongos实例地址和所有configServer实例的地址;如果是副本集监控,则填写副本集中所有实例的地址。
    • 实例列表:填写实例的IP地址和端口,支持域名形式。
  5. 点击确定,完成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

添加监控实例

  1. 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置
  2. 在配置页面左侧导航栏选择实例管理,然后在页面上方点击Zookeeper页签。
  3. 在Zookeeper实例管理页面的右上角点击新增按钮。
  4. 填写集群名称、权限分组、部署环境、实例列表和JMX端口。
    • 权限分组:给集群设置一个权限分组的标签。
    • 部署环境:实例的部署环境,即监控Zookeeper的exporter所安装在的数据中心、VPC或机房。
    • 实例列表:填写实例的IP地址和端口,支持域名形式。
    • JMX端口:Zookeeper的远程连接端口,默认为29119。
  5. 点击确定,完成Zookeeper实例的添加。

Kafka监控配置

Kafka JMX嵌码

修改kafka启动脚本。脚本位于kafka安装目录下的bin/kafka-run-class.sh文件。

config1

添加监控实例

由于Kafka采用的是JMX Agent+Kafka exporter的方式采集监控指标,因此在探针安装完成后还需要在报表端配置监控实例的信息。

  1. 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置
  2. 在配置页面左侧导航栏选择实例管理,然后在页面上方点击Kafka页签。
  3. 在Kafka实例管理页面的右上角点击新增按钮。
  4. 填写集群名称、权限分组、探针列表、版本、实例列表、JMX端口、部署环境、zkPath和zk实例列表。
    • 权限分组:给集群设置一个权限分组的标签。
    • 探针列表:选择实例将监控数据上传到的探针(即exporter)的IP地址。
    • 版本:选择要监控的Kafka的版本。
    • 实例列表:填写实例的IP地址和端口,支持域名形式。
    • JMX端口:Kafka的远程连接端口,默认为29120。
    • 部署环境:实例的部署环境,即监控Elasticsearch的exporter所安装在的数据中心、VPC或机房。
    • zkPath:Zookeeper path。
    • zk实例列表:填写Zookeeper的实例IP地址和端口。
  5. 点击确定,完成Kafka监控实例的添加。

ActiveMQ监控配置

ActiveMQ嵌码

修改ActiveMQ脚本。脚本位于ActiveMQ安装目录下的bin/env文件。

config2

添加监控实例

由于ActiveMQ采用的是JMX Agent的方式采集监控指标,因此在嵌码完成后在控制台中配置需要监控的ActiveMQ集群,即可实现对ActiveMQ的监控。

  1. 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置
  2. 在配置页面左侧导航栏选择实例管理,然后在页面上方点击ActiveMQ页签。
  3. 在ActiveMQ实例管理页面的右上角点击新增按钮。
  4. 填写集群名称、权限分组、部署环境、实例列表和JMX端口。
    • 权限分组:给集群设置一个权限分组的标签。
    • 部署环境:实例的部署环境,即监控ActiveMQ的exporter所安装在的数据中心、VPC或机房。
    • 实例列表:填写实例的IP地址和端口,支持域名形式。
    • JMX端口:Zookeeper的远程连接端口,默认为29121。
  5. 点击确定,完成ActiveMQ实例的添加。

RabbitMQ监控配置

  1. 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置
  2. 在配置页面左侧导航栏选择实例管理,然后在页面上方点击RabbitMQ页签。
  3. 在RabbitMQ实例管理页面的右上角点击新增按钮。
  4. 填写集群名称、权限分组、探针列表、实例列表、监控端口、监控账号和密码。
    • 权限分组:给集群设置一个权限分组的标签。
    • 探针列表:选择实例将监控数据上传到的探针(即exporter)的IP地址。
    • 实例列表:填写实例的IP地址和端口,支持域名形式。
    • 监控端口:填写RabbitMQ实例的监控端口,默认为15672。
  5. 点击确定,完成RabbitMQ实例的添加。

Elasticsearch监控配置

  1. 在左侧导航栏点击全部应用,在打开的轻应用列表中点击配置
  2. 在配置页面左侧导航栏选择实例管理,然后在页面上方点击Elasticsearch页签。
  3. 在Elasticsearch实例管理页面的右上角点击新增按钮。
  4. 填写集群名称、权限分组、探针列表、监控账号、密码和实例列表。
    • 权限分组:给集群设置一个权限分组的标签。
    • 探针列表:选择实例将监控数据上传到的探针(即exporter)的IP地址。
    • 实例列表:填写实例的IP地址和端口,支持域名形式。
  5. 点击确定,完成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实例信息

  1. 在左侧导航栏点击 全部应用,在打开的轻应用列表中点击 配置
  2. 在配置页面左侧导航栏选择 实例管理,然后在页面上方点击 Kingbase 页签。
  3. 在Kingbase实例管理页面右上角点击 新增 按钮。
  4. 填写实例名称、权限分组、探针列表、监控账号、密码和实例信息:
    • 权限分组:为实例设置权限分组标签。
    • 探针列表:选择用于拉取监控数据的Collector。
    • IP/端口:填写Kingbase数据库的IP地址和访问端口。
    • 账号/密码:填写监控用户的用户名和密码。
    • 实例列表:填写实例节点的IP地址和端口,支持域名形式。
  5. 点击 确定,完成Kingbase实例的添加。