分离部署zabbix7.0实施过程

一、环境准备

  • 硬件: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服务、前端44系统盘 20G
数据盘 50G
192.168.97.150zabbix-server
zabbix 数据库48系统盘 60G
数据盘 300G
192.168.97.155zabbix-DB

二、zabbix组件部署位置

组件名称描述部署主机主机IP地址
zabbix-server-mysqlzabbix server 主程序zabbix-server192.168.97.150
zabix-web-mysqlzabbix前端程序zabbix-server192.168.97.150
zabbix-nginx-confzabbix nginx程序zabbix-server192.168.97.150
zabbix-agent采集数据插件zabbix-server192.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;
上一篇