环境准备:

基于Rocky_Linux9安装配置

主机

IP

zabbix-server

192.168.10.38/24

mysql-server

192.168.10.10/24

Agent-Centos7

192.168.10.37/24

安装前准备

下载zabbix6.4repo源

rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-6.4-1.el9.noarch.rpm
dnf clean all && dnf makecache

ZABBIX6.4安装配置小记_运维

安装Zabbix

1)安装Zabbix server,Web前端,agent,

dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent

ZABBIX6.4安装配置小记_运维_02

2)启用红帽软件集合

yum install centos-release-scl -y

ZABBIX6.4安装配置小记_运维_03

安装mysql数据库

在mysql-server主机上安装mysql数据库

mysql安装包下载(适用于Rocky-Linux9.1,其他版本请自行测试):https://share.weiyun.com/lXsCGb4J 密码:9usdxr

mysql安装脚本:

#!/bin/bash
# **********************************************************
# * Author        : 青菜浪人
# * Create time   : 2023-05
# * Filename      : mysql_install.sh
# * Description   : mysql安装脚本
# **********************************************************
#卸载自带的mariadb
rpm -e --nodeps `rpm -qa|grep mariadb`
rpm -e --nodeps `rpm -qa|grep MySQL`
rpm -e --nodeps `rpm -qa|grep mysql`

rpm_list=(
    mysql-community-client-plugins-8.0.33-1.el9.x86_64.rpm
    mysql-community-libs-8.0.33-1.el9.x86_64.rpm
    mysql-community-common-8.0.33-1.el9.x86_64.rpm
    mysql-community-libs-8.0.33-1.el9.x86_64.rpm
    mysql-community-client-8.0.33-1.el9.x86_64.rpm
    mysql-community-icu-data-files-8.0.33-1.el9.x86_64.rpm
    mysql-community-server-8.0.33-1.el9.x86_64.rpm

)
for install_rpm in ${rpm_list[@]}
do
		rpm -ivh ${install_rpm}
done

echo '正在启动MySQL,请稍等......'
systemctl restart mysqld.service
if [ $? -ne 0 ];then
   echo 'MySQL启动失败'
   exit 1
else
   echo 'MySQL启动成功'
fi

A=1
while [ $A -eq 1 ]
do
	echo "新密码必须为8位字符字母大小写、数字+特殊符号"
	read -p "请输入新密码:"  newpasswd
	read -p "请确认密码:"  passwd
   if [ "$newpasswd" ==  $passwd ];then
      A=2
      echo "密码设置成功"
   else
      echo "两次密码不一致,请重新输入"
    fi
done

echo "设置的新密码为:${newpasswd}"

echo "skip-grant-tables" >>/etc/my.cnf   
systemctl restart mysqld.service
echo "************************************"
echo "注:该脚本默认配置了无密码登录,此处直接回车即可。"
echo "************************************"

mysql --connect-expired-password -uroot -p  -e "flush privileges;set global validate_password.policy=LOW;set global validate_password.length=4;alter user 'root'@'localhost' identified  by '${newpasswd}';"

if [ $? -ne 0 ];then
   echo '新密码设置失败!!!'
   exit 1
else
   echo "新密码设置成功!,新密码为:${newpasswd}"
fi

sed -i "s/skip-grant-tables/#skip-grant-tables/" /etc/my.cnf
echo "已禁用无密码登录mysql" 
systemctl restart mysqld.service
if [ $? -eq 0 ];then
   echo "mysql已启动"
else
   echo "mysql启动失败"
fi

3)初始化Zabbix数据库

执行如下语句

#`create database zabbix character set utf8mb4 collate utf8mb4_bin;  这条命令创建了一个名为`zabbix`的数据库,并设置了数据库字符集为`utf8mb4`,排序规则为`utf8mb4_bin`。
#create user zabbix@localhost identified by 'zabbix@123';   这条命令创建了一个名为`zabbix`的用户,该用户只能从`localhost`连接到数据库,并使用密码`zabbix@123`进行身份验证。
#grant all privileges on zabbix_proxy.* to zabbix@localhost;   这条命令授予用户`zabbix@localhost`对数据库`zabbix`的所有权限。这意味着该用户可以执行该数据库中的所有操作。
#set global log_bin_trust_function_creators = 1;   这条命令设置了全局变量`log_bin_trust_function_creators`的值为1。这个变量决定了是否允许二进制日志信任函数创建者。如果将其设置为1,则表示信任函数创建者,即使他们不是SUPER或PROCESS用户。这可以使得在某些情况下创建的函数可以被复制到其他服务器,而不需要相同的用户权限。

mysql -uroot -p"Admin@123" -e "create database zabbix character set utf8mb4 collate utf8mb4_bin;create user zabbix@localhost identified by 'zabbix@123';grant all privileges on zabbix.* to zabbix@localhost; set global log_bin_trust_function_creators = 1;"

ZABBIX6.4安装配置小记_运维_04

4)导入初始化架构和数据

在zabbix-server上拷贝server.sql.gz文件到mysql-server主机

scp /usr/share/zabbix-sql-scripts/mysql/server.sql.gz   root@192.168.10.10:/root/

ZABBIX6.4安装配置小记_Linux_05

导入初始化数据

zcat server.sql.gz|mysql --default-character-set=utf8mb4  -uzabbix -p"zabbix@123" -D"zabbix"

ZABBIX6.4安装配置小记_Linux_06

5)导入数据库架构后禁用log_bin_trust_function_creators选项

mysql -uroot -p"Admin@123" -e "set global log_bin_trust_function_creators = 0;flush privileges;"

ZABBIX6.4安装配置小记_Linux_07

修改zabbix配置文件

1)修改配置文件,为Zabbix配置数据库

vim /etc/zabbix/zabbix_proxy.conf

ZABBIX6.4安装配置小记_ZABBIX_08

2)配置前端监听端口

vim /etc/nginx/conf.d/zabbix.conf

ZABBIX6.4安装配置小记_运维_09

3)启动服务

systemctl restart zabbix-server zabbix-agent nginx php-fpm
systemctl enable zabbix-server zabbix-agent nginx php-fpm

ZABBIX6.4安装配置小记_mysql_10

登录web页面,进行初始化配置

ZABBIX6.4安装配置小记_Linux_11

检查必要条件都显示ok时点击下一步

ZABBIX6.4安装配置小记_mysql_12

配置数据库连接

ZABBIX6.4安装配置小记_mysql_13

当连接数据库出现下图报错时,启用数据库的远程连接后重新授权即可

ZABBIX6.4安装配置小记_Linux_14

mysql -uroot -p"Admin@123" -e "update mysql.user set Host = '%' where Host = 'localhost' and User='zabbix';flush privileges;grant all privileges on zabbix.* to 'zabbix'@'%';
"

设置一个主机名称

ZABBIX6.4安装配置小记_mysql_15

最后登录系统即表示配置成功

默认登录密码:Admin/zabbix

ZABBIX6.4安装配置小记_mysql_16

文字显示乱码处理

在图表界面出现文字显示乱码状态,在windows主机中导入一个中文字体即可解决

ZABBIX6.4安装配置小记_Linux_17

在C:\Windows\Fonts文件夹内任意挑选一款中文字体上传至zabbix-server主机内进行替换即可

ZABBIX6.4安装配置小记_mysql_18

上传后将默认的中文字体文件进行备份,将上传的中文字体改为默认的字体名

mv graphfont.ttf graphfont.ttf.bak
 mv SIMYOU.TTF graphfont.ttf

ZABBIX6.4安装配置小记_mysql_19

回到前端页面刷新查看,刚刚不显示的文字已经显示正常了

ZABBIX6.4安装配置小记_mysql_20

安装zabbix-agent客户端

在Centos7中安装agent客户端,并使用zabbix-server进行监控

#安装repo源
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/7/x86_64/zabbix-release-6.4-1.el7.noarch.rpm
yum clean all && yum makecache

安装客户端软件包

yum install zabbix-agent

ZABBIX6.4安装配置小记_ZABBIX_21

修改agent配置文件

Server:这是Zabbix服务器的地址。当Zabbix客户端需要连接到Zabbix服务器时,它将使用这个地址来建立连接。

ServerActive:它用于检测Zabbix服务器的活动状态。如果Zabbix客户端无法连接到这个地址,那么它会认为Zabbix服务器已经不再活跃,从而触发警报。

Hostname:这是客户端主机的名字。在Zabbix中,每个主机都需要有一个唯一的主机名,以便在服务器上进行识别。

Server=192.168.10.39
ServerActive=192.168.10.39
Hostname=Agent-Centos7

修改完配置文件后,我们启动客户端程序

systemctl start zabbix-agent
systemctl enable zabbix-agent

ZABBIX6.4安装配置小记_mysql_22

在web页面中添加主机

点击创建主机

ZABBIX6.4安装配置小记_Linux_23

填写主机名称、主机群组以及使用的模板与接口类型等

注:主机名称需要与配置文件中填写的Hostname=Agent-Centos7一致。

ZABBIX6.4安装配置小记_运维_24

添加完毕后刷新页面即可看到被监控的主机上线

ZABBIX6.4安装配置小记_运维_25