利用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

file

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

file

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

file

4.再执行Next step

file

5.执行Next step

file

6.确认安装完成

file

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

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

file

8.主页信息

file

三、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

file

右上角 Create host group

file

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

file

4.2 配置 Templates

1、菜单栏点击 Templates

file

2、右上角点击 Create template

file

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

file

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

file

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

4.3 配置 hosts

1、左侧菜单栏点击 hosts

file

2、右侧点击 Create host

file

3、配置Host内容

file

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

file

5、配置完成后,点击Add

4.4 配置后最终效果

file

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

五、查看监控数据

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

file

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

file

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

1、查看模板配置要求

打开相关模板,查看描述

file

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 '<password>';
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=<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监控数据了。

file

Enjoy GreatSQL :)

优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/GreatSQL/blog/5565331

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。