一、环境准备
- 硬件: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;
Comments NOTHING