一、环境准备
- 硬件:2-3台服务器
- 操作系统:Centos8 Stream
- 数据库:MYSQL8.0
IP地址以及用途:
- zabbix服务:4核、8G系统盘100G,192.168.97.150 zabbix-server、zabbix-nginx-web
- zabbix数据库MYSql8.0:4核、8G、系统盘500G,192.168.97.155 mysql-DB
用途 | CPU | 内存 | 存储 | IP地址 | 主机名 |
zabbix服务、前端 | 4 | 4 | 系统盘 20G 数据盘 50G | 192.168.97.150 | zabbix-server |
zabbix 数据库 | 4 | 8 | 系统盘 60G 数据盘 300G | 192.168.97.155 | zabbix-DB |
二、zabbix组件部署位置
组件名称 | 描述 | 部署主机 | 主机IP地址 |
zabbix-server-mysql | zabbix server 主程序 | zabbix-server | 192.168.97.150 |
zabix-web-mysql | zabbix前端程序 | zabbix-server | 192.168.97.150 |
zabbix-nginx-conf | zabbix nginx程序 | zabbix-server | 192.168.97.150 |
zabbix-agent | 采集数据插件 | zabbix-server | 192.168.97.150 |
zabbix-selinux-Policy | 安全模块 | 不安装 | 不安装 |
三、安装步骤
1.给每台服务器配置zabbix仓库源
# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/centos/8/x86_64/zabbix-release-latest-7.0.el8.noarch.rpm
# dnf clean all
2.每台服务器上关闭防火墙
systemctl stop firewalld.service //停止防火墙
systemctl disable firewalld.service
setenforce 0
vi /etc/selinux/config //编辑防火墙配置文件
SELINUX=disabled //将防火墙永久关闭
systemctl status firewalld //查看防火墙状态
3.更换源文件为阿里源
以 root 用户打开 /etc/yum.repos.d 文件夹,找到以下三个文件:
CentOS-Stream-AppStream.repo
CentOS-Stream-BaseOS.repo
CentOS-Stream-Extras.repo
baseurl=https://mirrors.aliyun.com/centos/$releasever-stream/AppStream/$basearch/os
baseurl=https://mirrors.aliyun.com/centos/$releasever-stream/BaseOS/$basearch/os/
baseurl=https://mirrors.aliyun.com/centos/$releasever-stream/extras/$basearch/os/
将上方阿里云源依次替换
在终端输入 yum clean all 回车执行
在终端输入 yum makecache 回车执行
附:
yum list 列出所有已安装和可以安装的软件
yum install 包名 安装具体软件
yum update 包名 更新具体包,若不写包名,则更新所有软件
3.1 zabbix-DB 服务器:
3.1.1 安装数据库mysql8.0
1. 下载并安装数据库
#wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
#yum install mysql80-community-release-el8-1.noarch.rpm
#yum module disable mysql
#yum install mysql-community-server --nogpgcheck
2.初始化配置mysql8,修改etc下的my.cnf
vi /etc/my.cnf
default-authentication-plugin=mysql_native_password
#systemctl restart mysqld //启动mysql
#service mysqld status //查看mysql状态
#systemctl enable mysqld //开机自启
3.修改 mysql 密码策略,允许弱密码
# grep 'temporary password' /var/log/mysqld.log //查找默认密码 gtD-Y3!ikfmd
#mysql -u root -p //进入mysql数据库
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'root_21Root'; //建一个复杂的密码
# SHOW VARIABLES LIKE 'validate_password%'; //查看密码策略
set global validate_password.policy=0; //修改密码策略
set global validate_password.mixed_case_count=0; //修改密码策略
set global validate_password.number_count=0; //修改密码策略
set global validate_password.special_char_count=0; //修改密码策略
set global validate_password.length=0; //修改密码策略
# SHOW VARIABLES LIKE 'validate_password%'; //查看密码策略是否修改成功
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'password'; //修改root密码
4.进入并创建zabbix数据库、zabbix用户及相关授权:
create database zabbix character set utf8mb4 collate utf8mb4_bin;
//创建表名为zabbix数据库,并设置字符集utf8mb4,为数据库指定排序规则
create user zabbix@'*' identified by 'password';
//创建用户zabbix,并允许从任何主机连接到此数据库
grant all privileges on zabbix.* to zabbix@'*';
//给予相关授权
set global log_bin_trust_function_creators = 1;
//允许用户创建存储函数而不进行额外的安全性检查。
quit; //退出
3.1.2 下载安装zabbix数据结构文件并导入
# dnf install zabbix-sql-scripts
//下载结构文件
# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
//导入结构文件到mysql数据库
导入数据库出现的问题
ERROR 1046 (3D000) at line 1: No database selected:
//错误是因为默认打开的是mysql数据库,而不是zabbix数据库,因此需要在脚本中开头加一个use zabbix;切换到zabbix数据库。利用vim进行编辑,vi编辑是乱码。
vim /usr/share/zabbix-sql-scripts/mysql/server.sql.gz
至此,zabbix数据库安装部分已完成,接着部署zabbixserver部分
3.2 zabbix-server服务器:
1.切换PHP的DNF模块版本
# dnf module switch-to php:8.2
2.安装 zabbix server,Web 前端,agent
# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-selinux-policy zabbix-agent
3. 更改zabbix server配置信息更改为数据库ip,数据库名称、数据库账密、以及端口
vim /etc/zabbix/zabbix_server.conf //打开zabbix配置文件
修改DBHhost数据库IP
修改DBName数据库名称
修改DBUser数据库账号
修改DBPassword数据库密码
修改DBPort数据库端口
修改服务器自带的nginx配置:
vim /etc/nginx/nginx.conf //将主页80端口注释
修改zabbix的nginx配置:
vim /etc/nginx/conf.d/zabbix.conf //更改8080端口为80端口,并将注释删除
现在可以访问http://192.168.97.150 ,初始化web端zabbix。
启动Zabbix server和agent进程
启动Zabbix server和agent进程,并为它们设置开机自启:
systemctl restart zabbix-server zabbix-agent nginx php-fpm
systemctl enable zabbix-server zabbix-agent nginx php-fpm
四、删除zabbix历史记录
1.查看数据库表大小:
SELECT
table_schema as '数据库',
sum(table_rows) as '记录数',
sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',
sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)',
sum(truncate(DATA_FREE/1024/1024, 2)) as '碎片占用(MB)'
from information_schema.tables
group by table_schema
order by sum(data_length) desc, sum(index_length) desc;
2.查看表占用空间情况:
select table_name, (data_length+index_length)/1024/1024 as total_mb, table_rows from information_schema.tables where table_schema= 'zabbix' ;
3.如果不要zabbix的历史记录那么就很简单的来做了.如下:
use zabbix;
truncate table history; 清空history表项
optimize table history;
truncate table history_str;
truncate table history_uint;