组件监控配置
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实例的添加。