Zabbix 7.0LTS教程
一、环境介绍
操作系统:Rocky Linux 9.5
软件版本:7.0LTS
二、安装教程
官网:Zabbix:企业级开源监控解决方案
点击右上角的下载ZABBIX
选择对应的环境:
选择之后往下拉会看到相应的部署步骤:
2.1 软件源配置
按照文档提示:
如果有epel.repo源码,需要先注释里面的zabbix源,默认是没有的:
[epel]
...
excludepkgs=zabbix*
[root@localhost ~]# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
[root@localhost ~]# dnf clean all
0 files removed
[root@localhost ~]# dnf makecache
安装Zabbix server,Web前端,agent:
[root@localhost ~]# dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
安装过程看网速,一般是有点慢,因为是美国的网站。
2.2 初始化数据库
这里由于文档中未介绍,需要自己安装MySQL或者PostgreSQL,安装方法见我写的其它文章,这里我们直接使用dnf安装MySQL8.0:
参考MySQL Linux通用版安装方法:MySQL管理篇 - 国杰响当当 - 博客园
参考PostgreSQL源码编译安装方法:PostgreSQL - 随笔分类 - 国杰响当当 - 博客园
查看可安装的mysql版本:
[root@localhost ~]# dnf --showduplicates list mysql-server
Last metadata expiration check: 0:17:50 ago on Mon 10 Mar 2025 02:19:07 AM EDT.
Available Packages appstream
mysql-server.x86_64 8.0.41-2.el9_5
只有一个MySQL 8.0.41,直接安装它:
[root@localhost ~]# dnf -y install mysql-server.x86_64
创建相关的数据库:
[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# mysql -uroot -p
Enter password:
# 创建数据库zabbix
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
# 创建用户zabbix并设置密码为password,只允许从localhost登录。
mysql> create user zabbix@localhost identified by 'password';
# 将数据库zabbix授权给zabbix用户
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
默认root的密码是空的。
导入初始架构和数据,系统将提示您输入新创建的密码,密码上面设置的password:
[root@localhost ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Enter password:
导入数之后重新禁用log_bin_trust_function_creators
:
[root@localhost ~]# mysql
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
2.3 配置zabbix
为Zabbix server配置数据库
编辑配置文件 /etc/zabbix/zabbix_server.conf
DBPassword=password
取消注释并添加密码
为Zabbix前端配置PHP
编辑配置文件 /etc/nginx/conf.d/zabbix.conf
listen 8080;
设置监听端口,取消注释
2.4 启动zabbix
启动Zabbix server和agent进程
启动Zabbix server和agent进程,并为它们设置开机自启:
[root@localhost ~]# systemctl restart zabbix-server zabbix-agent nginx php-fpm
[root@localhost ~]# systemctl enable zabbix-server zabbix-agent nginx php-fpm
三、软件配置
3.1 开放防火墙端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
嫌麻烦也可以直接关闭防火墙。
浏览器访问:
3.2 无法选择中文的问题
但是默认系统最小化安装它不带中文包,还需要手动安装一下,我们可以使用dnf search 查看中文包:
安装它:
[root@localhost ~]# dnf install -y langpacks-zh_CN.noarch
[root@localhost ~]# locale -a
设置成中文:
[root@localhost ~]# localectl set-locale LANG=zh_CN.utf8
刷新页面就有了
3.3 完成相关配置并登录
设置成中文之后下一步到检查必要条件,必要条件都是正常的:
下一步到设置数据库,按照环境填写相关参数:
下一步填写主机名:
检查配置:
完成:
登录:
默认用户名/密码是:Admin/zabbix
四、仪表显示乱码修复
安装完成之后由于字体问题会显示乱码,需要拷贝电脑上的字体到服务器上设置。
打开本地的文件资源管理器,在地址栏输入C:\Windows\Fonts
复制楷体到桌面:
注意
:把它的名字改成小写,我试了大写的不行.
把它上传到服务器上的/usr/share/zabbix/assets/fonts
l路径:
然后修改配置文件/usr/share/zabbix/include/defines.inc.php
[root@localhost ~]# vi /usr/share/zabbix/include/defines.inc.php
# 搜索ZBX_GRAPH_FONT_NAME,把原来的graphfont改成字体文件名称stkaiti
define('ZBX_GRAPH_FONT_NAME', 'stkaiti'); // font file name
保存退出之后刷新页面乱码即可恢复正常:
五、agent安装
10050:用于被动模式下服务端主动获取数据。
10051:接受来自agent的监控数据。
5.1 软件下载
这里方便通用使用二进制方式安装,选择到Zabbix Agent,选择对应的版本。
复制下载链接:
到监控主机上下载它,这里以CentOS7为例
[root@localhost ~]# wget https://cdn.zabbix.com/zabbix/binaries/stable/7.0/7.0.10/zabbix_agent-7.0.10-linux-3.0-amd64-static.tar.gz
5.2 环境配置
创建管理用户:
[root@localhost ~]# groupadd zabbix
[root@localhost ~]# useradd -g zabbix zabbix -s /sbin/nologin
解压软件:
[root@localhost ~]# mkdir /opt/zabbix_agent
[root@localhost ~]# tar -zxvf zabbix_agent-7.0.10-linux-3.0-amd64-static.tar.gz -C /opt/zabbix_agent/
日志存放路径:
[root@localhost ~]# mkdir /var/log/zabbix_agentd
[root@localhost ~]# touch /var/log/zabbix_agentd/zabbix_agentd.log
[root@localhost ~]# chown -R zabbix.zabbix /var/log/zabbix_agentd
添加执行脚本:
[root@localhost ~]# cat >/opt/zabbix_agent/sbin/agent_start.sh<<'EOF'
#/bin/bash
usage() {echo "Usage: sh 脚本名.sh [start|stop|restart|status]"exit 1
}
#检查程序是否在运行
is_exist(){pid=`ps -ef |grep zabbix_agent|grep -v "grep" |awk '{print $2}'`#如果不存在返回1,存在返回0if [ -z "${pid}" ]; thenreturn 1elsereturn 0fi
}
#启动方法
start(){is_existif [ $? -eq "0" ]; thenecho "agent2 is already running. pid=${pid} ."else/opt/zabbix_agent/sbin/zabbix_agentd -c /opt/zabbix_agent/conf/zabbix_agentd.conf >/dev/null 2>&1 &echo "agent2 start success"fi
}#停止方法
stop(){is_existif [ $? -eq "0" ]; thenkill -9 $pidelseecho "agent2 is not running"fi
}
#重启
restart(){stopstart
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in"start")start;;"stop")stop;;"restart")restart;;*)usage;;
esac
EOF[root@localhost ~]# chmod +x /opt/zabbix_agent/sbin/agent_start.sh
准备置文件:
[root@localhost ~]# cp /opt/zabbix_agent/conf/zabbix_agentd.conf /opt/zabbix_agent/conf/zabbix_agentd.bak
[root@localhost ~]# egrep -v '^$|^#' /opt/zabbix_agent/conf/zabbix_agentd.bak > /opt/zabbix_agent/conf/zabbix_agentd.conf
[root@localhost ~]# vi /opt/zabbix_agent/conf/zabbix_agentd.conf
LogFile=/var/log/zabbix_agentd/zabbix_agentd.log #日志路径
Server=10.1.1.5 #服务端地址
ServerActive=10.1.1.5 #服务端地址
Hostname=Zabbix server #主机名
启动:
[root@localhost ~]# /opt/zabbix_agent/sbin/agent_start.sh start
agent2 start success
查看日志提示连接到服务端的10051端口失败,原因是我们防火墙没开放该端口:
服务端上开放端口:
[root@localhost ~]# firewall-cmd --zone=public --add-port=10051/tcp --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
客户端重启agent:
[root@localhost ~]# /opt/zabbix_agent/sbin/agent_start.sh restart
之后登录Web上添加资产,这里我们看到服务端还需要连接到客户端的10050端口,需要确保客户端要开放10050端口:
[root@localhost ~]# firewall-cmd --zone=public --add-port=10050/tcp --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
稍等一会儿主机就会显示被监控主机: