数据库配置简介
数据库的监控如 MySQL MongoDB PostgreSQL,Cloud Insight 都需要创建一个用户,设置访问权限。有的还需要 admin 权限才能完整采集数据库性能数据。先简单介绍配置文件。
本文以 mysql.yaml 为例。
init_config:
instances: #创建实例
- server: localhost # MySQL 所在主机,为localhost时mysql会采用 unix domain socket连接,此时要确认可以通过 localhost 连接数据库,默认为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: 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 监控为例
创建 Cloud Insight 访问权限
为您的 MySQL 服务器建立 Cloud Insight 访问权限,此处的用户密码即 mysql.yaml 配置文件里面的的 user pass。
sudo mysql -e "CREATE USER 'cloudinsight'@'localhost' IDENTIFIED BY 'YourPassword';"
sudo mysql -e "GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'cloudinsight'@'localhost' WITH MAX_USER_CONNECTIONS 5;"
sudo mysql -e "GRANT SELECT ON performance_schema.* TO 'cloudinsight'@'localhost';"
您可以通过以下指令,查看用户是否创建成功,权限是否正确。
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"
编辑配置文件
编辑配置文件 /etc/CiAgent/conf.d/mysql.yaml
,使 Cloud Insight Agent 可以与 MySQL 通信。
init_config:
instances:
- server: localhost
user: cloudinsight
pass: YourPassword
tags:
- tag_key1:tag_value1
- tag_key2:tag_value2
options:
replication: 0
galera_cluster: 1
重启 Agent
重启 Cloud Insight Agent,/etc/init.d/CiAgent restart
使配置生效。
您也可以通过查看 Agent Info 信息,来验证配置是否成功。当出现以下信息,则代表安装成功。
Checks
======
[...]
mysql
-----
- instance #0 [OK]
- Collected 8 metrics & 0 events
进行以上配置时,要保持 yaml 格式的规范,尤其是增加或开启注释时注意按照格式。
注释:相关 MySQL 的配置报错详见 MySQL 异常报错