利用Zabbix部署一个简易的MySQL监控系统
• 一、Zabbix部署
• 二、浏览器安装Zabbix
• 三、Zabbix Agent 安装
• 四、配置MySQL监控
• 五、查看监控数据
一、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
2.确认所有条件都OK,点击Next step
3.填写账户密码等信息,点击Next step
4.再执行Next step
5.执行Next step
6.确认安装完成
7.登陆主页,默认账户密码:Admin/zabbix
http://greatsql.zabbix.com/index.php
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
右上角 Create host group
输入名称 MySQL Monitor 点击 Add,完成
4.2 配置 Templates
1、菜单栏点击 Templates
2、右上角点击 Create template
3、填写模板名称和组,Groups就是上一个步骤创建的MySQL Monitor
4、选择链接的模板,链接了2个模板、分别是系统监控和MySQL服务监控
5、配置完成后,如果是首次配置则点击Add。否则就是Update。
4.3 配置 hosts
1、左侧菜单栏点击 hosts
2、右侧点击 Create host
3、配置Host内容
4、配置 Templates 内容,选择上个步骤创建的自定义MySQL Monitor Template
5、配置完成后,点击Add
4.4 配置后最终效果
以上就配置完成一台受监控的数据库服务器。
五、查看监控数据
点击左边菜单页Monitorning -> Latest data 可以看到 MySQL-01 系统以及MySQL相关的监控项汇总信息。
点击其中一个监控项Graph,可以看到历史监控绘图数据。
由于zabbix_agentd没有收集MySQL的信息,所以我们要结合监控模板自定义编写监控脚本进行数据收集。
1、查看模板配置要求
打开相关模板,查看描述
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 'Zabbix.~#';
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=Zabbix.~#
[mysqladmin]
user=zbx_monitor
password=Zabbix.~#
以上按要求配置完成后,重启进程。
[root@mgr1 ~]# systemctl restart zabbix-agent
再次查看就有MySQL监控数据了。
Enjoy GreatSQL :)
文章转载自公众号:GreatSQL社区