利用Zabbix部署一个简易的MySQL监控系统

  • GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。
  • GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。

[toc]

一、Zabbix部署

1.配置Zabbix源

# 1.下载rpm包
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i "s#http://repo.zabbix.com/#https://mirror.tuna.tsinghua.edu.cn/zabbix/#g" /etc/yum.repos.d/zabbix.repo

# 2.启用Zabbix前端仓库
sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/zabbix.repo
sed -i "s/enabled=0/enabled=1/g" /etc/yum.repos.d/zabbix.repo

# 3.清理源yum信息
yum clean all

2.安装 Zabbix server 和 agent

yum -y install zabbix-server-mysql zabbix-agent

3.启用 Red Hat软件集合

SCL(Software Collections)可以让你在同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包。

yum -y install centos-release-scl

4.安装Zabbix前端软件包

通常我们会安装的独立的Nginx和Php,这里演示方便就直接安装了

yum -y install zabbix-web-mysql-scl zabbix-nginx-conf-scl

5.安装MySQL用来存储Zabbix的元数据信息

安装MySQL步骤跳过,非本文重点。

6.数据库赋权

create database zabbix charset utf8 collate utf8_bin; 
create user zabbix@'127.0.0.1' identified by 'zabbix';
grant all on zabbix.* to zabbix@'127.0.0.1';
ALTER USER 'zabbix'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'zabbix';
flush privileges;

7.导入Zabbix元数据SQL

zcat /usr/share/doc/zabbix-server-mysql-5.0.24/create.sql.gz|mysql -uroot -p -S /data/GreatSQL/3306/mysql.sock zabbix

8.服务端配置连接zabbix数据库

[root@localhost]# cat /etc/zabbix/zabbix_server.conf|grep -v '#'|grep -v '^$'
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBHost=127.0.0.1
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1

9、配置Nignx 配置后把域名绑定到hosts文件中

[root@localhost]# more /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
server {
        listen      80;
        server_name     greatsql.zabbix.com;  # 自定义域名
        root    /usr/share/zabbix;

10、配置Php

[root@localhost]# cat /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
listen.acl_users = apache,nginx           # 加个nginx白名单
php_value[date.timezone] = Asia/Shanghai  # 时区改成上海

11、启动服务并设置开机启动

systemctl start zabbix-server
systemctl start rh-nginx116-nginx.service 
systemctl start rh-php72-php-fpm.service 
systemctl enable zabbix-server
systemctl enable rh-nginx116-nginx.service 
systemctl enable rh-php72-php-fpm.service 

二、浏览器安装Zabbix

1.访问WEB地址

先绑定下host,步骤略,然后浏览器访问地址。

http://greatsql.zabbix.com/setup.php

利用Zabbix部署一个简易的MySQL监控系统_第1张图片

2.确认所有条件都OK,点击Next step

利用Zabbix部署一个简易的MySQL监控系统_第2张图片

3.填写账户密码等信息,点击Next step

利用Zabbix部署一个简易的MySQL监控系统_第3张图片

4.再执行Next step

利用Zabbix部署一个简易的MySQL监控系统_第4张图片

5.执行Next step

利用Zabbix部署一个简易的MySQL监控系统_第5张图片

6.确认安装完成

利用Zabbix部署一个简易的MySQL监控系统_第6张图片

7.登陆主页,默认账户密码:Admin/zabbix

http://greatsql.zabbix.com/index.php

利用Zabbix部署一个简易的MySQL监控系统_第7张图片

8.主页信息

利用Zabbix部署一个简易的MySQL监控系统_第8张图片

三、Zabbix Agent 安装

1、配置Zabbix yum地址

# 1.下载rpm包
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i "s#http://repo.zabbix.com/#https://mirror.tuna.tsinghua.edu.cn/zabbix/#g" /etc/yum.repos.d/zabbix.repo

# 2.启用Zabbix前端仓库
sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/zabbix.repo
sed -i "s/enabled=0/enabled=1/g" /etc/yum.repos.d/zabbix.repo

# 3.清理源yum信息
yum clean all

2、安装zabbix-agent

yum install zabbix-agent -y

3、配置Zabbix Server地址

[root@localhost zabbix]# cat /etc/zabbix/zabbix_agentd.conf|grep -v '#'|grep -v '^$'
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.6.221         # Zabbix服务端地址
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf

4、启动zabbix-agent

systemctl start zabbix-agent
systemctl enable zabbix-agent

四、配置MySQL监控

4.1 配置 Host groups

左侧下拉菜单栏 Configuration -> Host groups

利用Zabbix部署一个简易的MySQL监控系统_第9张图片

右上角 Create host group

file

输入名称 MySQL Monitor 点击 Add,完成

file

4.2 配置 Templates

1、菜单栏点击 Templates

file

2、右上角点击 Create template

file

3、填写模板名称和组,Groups就是上一个步骤创建的MySQL Monitor

利用Zabbix部署一个简易的MySQL监控系统_第10张图片

4、选择链接的模板,链接了2个模板、分别是系统监控和MySQL服务监控

利用Zabbix部署一个简易的MySQL监控系统_第11张图片

5、配置完成后,如果是首次配置则点击Add。否则就是Update。

4.3 配置 hosts

1、左侧菜单栏点击 hosts

file

2、右侧点击 Create host

file

3、配置Host内容

利用Zabbix部署一个简易的MySQL监控系统_第12张图片

4、配置 Templates 内容,选择上个步骤创建的自定义MySQL Monitor Template

利用Zabbix部署一个简易的MySQL监控系统_第13张图片

5、配置完成后,点击Add

4.4 配置后最终效果

利用Zabbix部署一个简易的MySQL监控系统_第14张图片

以上就配置完成一台受监控的数据库服务器。

五、查看监控数据

点击左边菜单页Monitorning -> Latest data 可以看到 MySQL-01 系统以及MySQL相关的监控项汇总信息。

利用Zabbix部署一个简易的MySQL监控系统_第15张图片

点击其中一个监控项Graph,可以看到历史监控绘图数据。

利用Zabbix部署一个简易的MySQL监控系统_第16张图片

由于zabbix_agentd没有收集MySQL的信息,所以我们要结合监控模板自定义编写监控脚本进行数据收集。

1、查看模板配置要求

打开相关模板,查看描述

利用Zabbix部署一个简易的MySQL监控系统_第17张图片

Requirements for template operation:
1.Install Zabbix agent and MySQL client.
2.Copy Template_DB_MySQL.conf into folder with Zabbix agent configuration (/etc/zabbix/zabbix_agentd.d/ by default). Don't forget restart zabbix-agent. 
3.Create MySQL user for monitoring. For example:
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '';
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
For more information read the MYSQL documentation https://dev.mysql.com/doc/refman/8.0/en/grant.html , please. 
4.Create .my.cnf in home directory of Zabbix agent for Linux (/var/lib/zabbix by default ) or my.cnf in c:\ for Windows. For example:
[client]
user=zbx_monitor
password=

按步骤满足相关要求。

1、安装 Zabbix agent and MySQL client.

2、复制监控采集模板,服务器并没有Template_DB_MySQL.conf文件,我们自定义一个文件,如下:

[root@localhost ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mysql.uptime[*], HOME=/etc/zabbix mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.ping[*], HOME=/etc/zabbix mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], HOME=/etc/zabbix mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"

3、数据库采集权限开通

CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '123456';
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
flush privileges;

4、创建监控采集的账户信息

root@localhost ~]# cat /etc/zabbix/.my.cnf
[mysql]
user=zbx_monitor
password=123456
[mysqladmin]
user=zbx_monitor
password=123456

以上按要求配置完成后,重启进程。

[root@mgr1 ~]# systemctl restart zabbix-agent

再次查看就有MySQL监控数据了。

利用Zabbix部署一个简易的MySQL监控系统_第18张图片

Enjoy GreatSQL :)


Enjoy GreatSQL :)

文章推荐:

面向金融级应用的GreatSQL正式开源

Changes in GreatSQL 8.0.25 (2021-8-18)

MGR及GreatSQL资源汇总

GreatSQL MGR FAQ

在Linux下源码编译安装GreatSQL/MySQL

关于 GreatSQL

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

Gitee: https://gitee.com/GreatSQL/GreatSQL

GitHub: https://github.com/GreatSQL/GreatSQL

Bilibili: https://space.bilibili.com/1363850082/favlist

微信&QQ群:

QQ群:533341697

微信群:可搜索添加GreatSQL社区助手微信好友,发送验证信息“加群”加入GreatSQL/MGR交流微信群

GreatSQL社区助手:wanlidbc

你可能感兴趣的:(GreatSQL)