环境准备:
基于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
安装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
2)启用红帽软件集合
yum install centos-release-scl -y
安装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;"
4)导入初始化架构和数据
在zabbix-server上拷贝server.sql.gz文件到mysql-server主机
scp /usr/share/zabbix-sql-scripts/mysql/server.sql.gz root@192.168.10.10:/root/
导入初始化数据
zcat server.sql.gz|mysql --default-character-set=utf8mb4 -uzabbix -p"zabbix@123" -D"zabbix"
5)导入数据库架构后禁用log_bin_trust_function_creators选项
mysql -uroot -p"Admin@123" -e "set global log_bin_trust_function_creators = 0;flush privileges;"
修改zabbix配置文件
1)修改配置文件,为Zabbix配置数据库
vim /etc/zabbix/zabbix_proxy.conf
2)配置前端监听端口
vim /etc/nginx/conf.d/zabbix.conf
3)启动服务
systemctl restart zabbix-server zabbix-agent nginx php-fpm
systemctl enable zabbix-server zabbix-agent nginx php-fpm
登录web页面,进行初始化配置
检查必要条件都显示ok时点击下一步
配置数据库连接
当连接数据库出现下图报错时,启用数据库的远程连接后重新授权即可
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'@'%';
"
设置一个主机名称
最后登录系统即表示配置成功
默认登录密码:Admin/zabbix
文字显示乱码处理
在图表界面出现文字显示乱码状态,在windows主机中导入一个中文字体即可解决
在C:\Windows\Fonts文件夹内任意挑选一款中文字体上传至zabbix-server主机内进行替换即可
上传后将默认的中文字体文件进行备份,将上传的中文字体改为默认的字体名
mv graphfont.ttf graphfont.ttf.bak
mv SIMYOU.TTF graphfont.ttf
回到前端页面刷新查看,刚刚不显示的文字已经显示正常了
安装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
修改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
在web页面中添加主机
点击创建主机
填写主机名称、主机群组以及使用的模板与接口类型等
注:主机名称需要与配置文件中填写的
Hostname=Agent-Centos7
一致。
添加完毕后刷新页面即可看到被监控的主机上线