如何从远程服务器监控数据库?

时间:2018-05-03 13:43:04

标签: mysql monitoring zabbix

我在服务器(Ubuntu 16.04)上安装了Zabbix,以监控其他服务器的性能。我可以看到它的CPU使用率,内存使用情况等。

但是,该服务器(Ubuntu 16.04)还包含一个数据库,我也想监视它的性能(每分钟查询次数,执行时间等)。我还没有找到如何使用Zabbix做到这一点。

有人可以指导我如何做到这一点吗?如果Zabbix无法做到这一点,还有另一种可以监控远程数据库的工具吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

Zabbix由两个组成部分组成

  1. Zabbix服务器,其中存储了所有收集的数据,处理并触发了触发器
  2. Zabbix Agent,可以安装在大多数操作系统上,允许从系统中收集深度数据。然后,代理将收集的数据发送回Zabbix服务器
  3. 因此,在您的情况下,最好是在数据库服务器上安装zabbix代理,然后使用zabbix中包含的mysql监控内容。 这样您就不必允许网络访问您的mysql服务器。

    最常见的问题是,您需要拥有一个名为zabbix的db用户(或您在配置文件中定义的用户),该用户具有对mysql统计信息的读取权限。

    这里创建mysql用户并分配权限

    root@web01:~# mysql -u root -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 5
    Server version: 5.7.17-0ubuntu0.16.04.1 (Ubuntu)
    
    Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> create user 'zabbix_admin'@'localhost' IDENTIFIED BY 'Password';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> GRANT USAGE ON *.* TO 'zabbix_admin'@'localhost' IDENTIFIED BY 'Password';
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> exit
    Bye
    

    在zabbix配置文件夹中,您可以指定登录信息

    root@web01:~# vi /etc/zabbix/.my.cnf
    #
    [mysql]
    user=zabbix_admin
    password=Password
    [mysqladmin]
    user=zabbix_admin
    password=Password
    

    /etc/zabbix/zabbix_agentd.conf.d/userparameter_mysql.conf文件中指定要监控的内容(取自模板) 这里还有一些额外的指示: