跳转至

数据库配置简介

数据库的监控如 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 异常报错


5分钟,开启你的跨云监控之旅 (`⌄´ )