官网安装指南
centos7 数据库mysql,服务器nginx
1.安装Zabbix仓库
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
2.安装Zabbix server和Agent
yum install zabbix-server-mysql zabbix-agent
3.安装Zabbix前端
安装SCL软件集仓库
yum install centos-release-scl
编辑配置文件 /etc/yum.repos.d/zabbix.repo 启用前端仓库
[zabbix-frontend]
...
enabled=1
...
安装zabbix前端包
yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl
4.安装及初始化数据库
4.1 安装mysql8 数据库
查看之前是否安装了mariadb ,默认情况下是安了的,安装了需要卸载
# 查看是否安装了mariadb,默认情况下是安装的
rpm -qa | grep mariadb
# 卸载mariadb
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
下载及安装
# 下载repo仓库
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
# 安装仓库
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
使用下面的命令安装,下面这步安装非常慢,可能和源有关,建议离线安装 mysql-community-server-8.0.23-1.el7.x86_64.rpm 和 mysql-community-client-8.0.23-1.el7.x86_64.rpm
# 安装mysqlserver
yum install -y mysql-community-server
若提示公钥尚未安装,则先导入公钥再安装
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
离线安装方式如下
# 离线包下载旧版 MySQL :: Download MySQL Community Server (Archived Versions)
# 离线包下载最新版 MySQL :: Download MySQL Community Server 需要登录oracle账号
# 最终获取的下载地址如下, 最快的的方式迅雷下载完传上去
# 下载rpm包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-server-8.0.23-1.el7.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-client-8.0.23-1.el7.x86_64.rpm
# 安装rpm包
rpm -ivh mysql-community-client-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.23-1.el7.x86_64.rpm
可能会缺依赖,缺的依赖用下面的命令补全
yum install net-tools perl mysql-community-common mysql-community-libs
设置启动 和 开机自启
# 启动和开机自启
systemctl start mysqld.service && systemctl enable mysqld.service
查看启动状态
# 查看启动状态
systemctl status mysqld.service
# 查看版本
mysqld -V
mysql -V
查看初始密码
grep "A temporary password" /var/log/mysqld.log
初始化数据库
mysql_secure_installation
第一次会提示修改初始的root密码
后续的设置, 不修改的话输入4个n和一个y
4.2 初始化数据库
初始化前确保数据库处于运行状态
# mysql -uroot -p
输入设置的密码,执行下面的创建数据库及授权命令
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password'; #其中password 改成自己的密码,否则会报错
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
导入初始架构和数据,系统将提示您输入新创建的密码。
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
5. 为Zabbix server配置数据库
编辑配置文件 /etc/zabbix/zabbix_server.conf
DBPassword=password
6. 为Zabbix前端配置PHP
编辑配置文件 /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf, 取消掉 'listen' 和 'server_name'项的注释.
# listen 80;
# server_name example.com;
编辑配置文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf, 对listen.acl_users的值增加nginx项.
listen.acl_users = apache,nginx
将注释掉时区去掉注释并设置正确的时区
; php_value[date.timezone] = Europe/Riga
改成
php_value[date.timezone] = Asia/Shanghai
7. 启动Zabbix server和agent进程
7.1 启动
启动Zabbix server和agent进程,并为它们设置开机自启:
# systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
# systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
7.2启动报错解决
error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or direct
执行find命令没有结果
find / -name libmysqlclient.so.18
应该是有个包没安装,搜索一下
yum whatprovides libmysqlclient*
结果中发现应该是缺少mysql-community-libs-compat,安装一下
yum install mysql-community-libs-compat
7.3防火墙配置
7.3.1 关闭SELINUX
编辑/etc/selinux/config
将SELINUX=enforcing 改成SELINUX=disabled
7.3.2添加防火墙端口
# 80端口 访问zabbix网页用, 3306 mysql端口,10051 zabbix客户端连服务器使用 160 161 SNMP端口监控交换机用
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=10051/tcp --permanent
firewall-cmd --zone=public --add-port=160/udp --permanent
firewall-cmd --zone=public --add-port=161/udp --permanent
firewall-cmd --reload
8. 配置Zabbix前端
8.1 配置
连接到新安装的Zabbix前端: http://server_ip_or_name
根据Zabbix文件里步骤操作: 3 Installation from sources
8.2 内网配置修改内容
默认教程的nginx是按虚拟主机配置的,如果只是内网配置
应该修改
把zabbix.conf中server那段内容替换掉nginx.conf中的server段内容
nginx默认配置 /etc/opt/rh/rh-nginx116/nginx/nginx.conf
nginx默认网站目录 /opt/rh/rh-nginx116/root/usr/share/nginx/html
zabbix虚拟主机配置目录 /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
之后进入网站就可以进行配置了
8.3 配置中zabbix 连接数据库报错解决
首先查看权限,排除权限问题
# mysql -uroot -p
输入设置的密码
SHOW GRANTS FOR zabbix@localhost;
查看连接日志
tail -f /var/log/zabbix/zabbix_server.log
报错如下
2502:20210314:121810.573 [Z3001] connection to database 'zabbix' failed: [2059] Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
2502:20210314:121810.573 Cannot connect to the database. Exiting...
应是认证方式的问题
登录mysql执行
ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 'password';
ALTER USER zabbix@localhost IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
设置完成之后,默认用户名密码 Admin zabbix
8.4 界面显示优化
8.4.1 页面语言设置
默认页面为英文,我们改成中文方便一些
左侧--User Setting--language改成chinese 然后点击Update
8.4.2 图形文字方块问题
复制msyh.ttc字体文件到/usr/share/fonts/dejavu目录
cd /etc/alternatives/
#查看软连接
ll /etc/alternatives/zabbix-web-font #实际是个软连接 zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf
# 删除软连接文件
rm -rf /etc/alternatives/zabbix-web-font
# 创建新的软连接
ln -s /usr/share/fonts/dejavu/msyh.ttc /etc/alternatives/zabbix-web-font
# 查看新的软连接
ll /etc/alternatives/zabbix-web-font #这时指向/etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/msyh.ttc
#重启zabbix服务
systemctl restart zabbix-server
8.4.3 常用问题排查路径
服务端配置文件
/etc/zabbix/zabbix_server.conf
服务端日志文件
/var/log/zabbix/zabbix_server.log