监控授权
介绍
大部分数据库,如 MySQL MongoDB PostgreSQL 需要给 Cloud Insight Agent 添加授权,才能使 Cloud Insight Agent 能够通过 Command 来输出指标数值,并进行采集。
以 MySQL 为例,其原理如图:
授权
以下平台服务需要配置授权,来启动 Cloud Insight Agent 的采集机制:
我们以 MySQL 为例,阐述如何配置授权。
1. 为 Cloud Insight 创建 USER
为 Cloud Insight 创建一个 USER
,其中用户名和密码,可以按照自己的需求进行设定。
sudo mysql -e "CREATE USER 'cloudinsight'@'localhost' IDENTIFIED BY 'YourPassword';"
2. 配置授权和最大链接数
为创建的用户分配权限。
sudo mysql -e "GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'cloudinsight'@'localhost' WITH MAX_USER_CONNECTIONS 5;"
3. MySQL 版本 >= 5.6 时,需要从 performance_schema
表中获取指标数据
sudo mysql -e "GRANT SELECT ON performance_schema.* TO 'cloudinsight'@'localhost';"
4. 检查授权是否成功
通过以下指令,来检查为 Cloud Insight 创建的用户是否授权成功。
mysql -u cloudinsight --password=YourPassword -e "SHOW /*!50000 ENGINE*/ INNODB STATUS" | \
grep Uptime && echo -e "\033[0;32mMySQL user - OK\033[0m" || \
echo -e "\033[0;31mCannot connect to MySQL\033[0m"
mysql -u cloudinsight --password=YourPassword -e "show slave status" && \
echo -e "\033[0;32mMySQL grant - OK\033[0m" || \
echo -e "\033[0;31mMissing REPLICATION CLIENT grant\033[0m"
若输出信息中包含如下字段,则代表授权成功。
MySQL grant - OK
其他配置选项
为了更好的使用 MySQL 和其他数据库的监控,我们以 MySQL 为例,来解释 conf.d/mysql.yaml
中每个参数的涵义。
init_config:
# 创建实例
instances: # 创建实例
- server: localhost # MySQL 所在主机,默认为 localhost
user: my_username # 为 Cloud Insight 创建的用户名
pass: my_password # 为 Cloud Insight 创建的用户密码
port: 3306 # 可选,MySQL 默认端口
sock: /path/to/sock # 通过 Unix Socket 连接数据库
# defaults_file: my.cnf # Alternate configuration mechanism
tags: # 可选,当有多个数据库时可以通过 tag 区分不同功能的数据库
- tag_key1:tag_value1 # 自定义标签,用于在 Cloud Insight 平台对 MySQL 服务器进行分组
- tag_key2:tag_value2
options:
replication: 0 # 主从复制选项,是否获取相关指标(0:否(默认值),1:是)
galera_cluster: 1 # Galera 集群选项,是否获取相关指标(1:是(默认值),0:否)
queries:
- # 自定义 Metric
query: SELECT TIMESTAMPDIFF(second,MAX(create_time),NOW()) as last_accessed FROM requests
# 可执行 SQL 语句,自定义 Metric 的数据源
metric: app.seconds_since_last_request # Metric 名称,用于在 Cloud Insight 平台显示,数据源的别名
type: gauge # Metric类型,可选值:gauge, rate, 相关解释见 http://statsd.readthedocs.org/en/v3.1/types.html#gauges
field: last_accessed # Metric 对应的 SQL 字段
必须配置的参数包括:server
user
pass
,以及可选的参数 tag
用于更好地管理基础设施。
其他配置参数,按照自己的需求,以及 MySQL 熟悉程度,来有选择性地配置。
故障排除
MySQL 配置报错
一般来说,MySQL 配置报错,是因为没有为 Cloud Insight 添加用户,并授权。
相信您阅读完这篇文档,就知道答案了。
相关 MySQL 的配置报错详见