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

2023年 8月 15日 53.3k 0

  • 一、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.rpmsed -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.reposed -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.logLogFileSize=0PidFile=/var/run/zabbix/zabbix_server.pidSocketDir=/var/run/zabbixDBName=zabbixDBUser=zabbixDBPassword=zabbixDBHost=127.0.0.1SNMPTrapperFile=/var/log/snmptrap/snmptrap.logTimeout=4AlertScriptsPath=/usr/lib/zabbix/alertscriptsExternalScripts=/usr/lib/zabbix/externalscriptsLogSlowQueries=3000StatsAllowedIP=127.0.0.1

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

[root@localhost]# more /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.confserver {        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.conflisten.acl_users = apache,nginx           # 加个nginx白名单php_value[date.timezone] = Asia/Shanghai  # 时区改成上海

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

systemctl start zabbix-serversystemctl start rh-nginx116-nginx.service systemctl start rh-php72-php-fpm.service systemctl enable zabbix-serversystemctl 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.rpmsed -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.reposed -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.pidLogFile=/var/log/zabbix/zabbix_agentd.logLogFileSize=0Server=192.168.6.221         # Zabbix服务端地址ServerActive=127.0.0.1Hostname=Zabbix serverInclude=/etc/zabbix/zabbix_agentd.d/*.conf

4、启动zabbix-agent

systemctl start zabbix-agentsystemctl 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 '

';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_monitorpassword=

按步骤满足相关要求。

1、安装 Zabbix agent and MySQL client.

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

[root@localhost ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.confUserParameter=mysql.uptime[*], HOME=/etc/zabbix mysqladmin -h"$1" -P"$2" pingUserParameter=mysql.ping[*], HOME=/etc/zabbix mysqladmin -h"$1" -P"$2" pingUserParameter=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" versionUserParameter=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_monitorpassword=Zabbix.~#[mysqladmin]user=zbx_monitorpassword=Zabbix.~#

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

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

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

Enjoy GreatSQL 🙂

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论