记一次CentOS7下zabbix4.0的安装记录

偶然看到群里发的一篇"ZABBIX从入门到精通v3.0.1"的pdf, 想着照着里面的流程来搭建zabbix练手.

不过教程里的Nginx和PHP全都是编译安装, 在过程中因未知原因卡住了, 最后选择了用yum来安装.

将中间遇到的一些小问题做个记录.

确认yum仓库有你要装的包zabbix-server-mysql和zabbix-web-mysql

yum search zabbix
...内容省略, 找到你的包名...

yum install -y zabbix40-server-mysql zabbix40-web-mysql

安装数据库, 随后建立zabbix数据库账号及初始数据库

# 选用开源MariaDB代替MySQL
yum install -y mariadb-server

# 启动数据库服务
systemctl start mariadb

# 确认数据库可用, 执行命令后能看到数据库欢迎信息
mysql -uroot
MariaDB [(none)]>\q

# 数据库root密码设置, 同时会有些安全项的设置, 很易懂的英文, 按照自己需求来设置即可
mysql_secure_installation

# 进入数据库建立zabbix服务所用账号
mysql -uroot -p

## 建立zabbix数据库
MariaDB [(none)]>create database zabbix character set utf8 collate utf8_bin;
## 建立zabbix账户, 设定密码
MariaDB [(none)]>grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';
## 刷新数据库权限
MariaDB [(none)]>flush privileges;
MariaDB [(none)]>\q

# 导入zabbix库文件
cd /usr/share/zabbix-mysql/
mysql -uzabbix -pzabbix zabbix < schema.sql
mysql -uzabbix -pzabbix zabbix < image.sql
mysql -uzabbix -pzabbix zabbix < data.sql

配置zabbix-server和httpd

vim /etc/zabbix_server.conf

# 找到DBUser=zabbix行, 添加密码信息
DBPassword=zabbix

vim /etc/httpd/conf.d/zabbix.conf

# 在<IfModule mod_php5.c>段末尾加入时区配置
php_value date.timezone Asia/Shanghai

启动httpd和zabbix-server

systemctl start httpd zabbix-server

尝试访问http://Server-IP/zabbix, 会发现无法访问, 因为防火墙拦截了

# 需要永久生效再带上--permanent参数
firewall-cmd --add-service=http

再试, 还不行, 用systemctl status检查httpd和zabbix-server状态, 会发现zabbix-server没起起来

查看日志/var/log/message、/var/log/zabbixsrv/zabbix_server.log(其实后者才有有效信息, 不过按照排查逻辑, 当然先看系统日志~)

cannot start preprocessing service: Cannot bind socket to "/var/lib/zabbixsrv/tmp/zabbix_server_preprocessing.sock": [13] Permission denied.

 必应一下, 发现极大可能是SELinux相关问题.

当然你可以选择关掉SELinux, 或者将它设置成调试模式, 但这都不是解决问题的根本办法.

我需要不动SELinux同时运行zabbix.

# 清空audit.log
:>/var/log/audit/audit.log

# 重启zabbix-server以记录audit日志
systemctl restart zabbix-server

# 根据audit日志生成zabbix-server规则
grep AVC /var/log/audit/audit.log | audit2allow -M zabbix-systemd-allow

# 写入SELinux规则
semodule -i zabbix-systemd-allow.pp

# 查看是否成功写入
semodule -l

# 再次尝试重启zabbix-server并查看其状态
systemctl restart zabbix-server
systemctl status zabbix-server

能看到zabbix服务成功启动了, 这时候再访问http://Server-IP/zabbix, 开启zabbix4.0之旅吧~

补充:

遇到SELinux相关问题时, 可以借助于setroubleshoot工具, 该工具在鸟哥的基础篇有介绍.

补充1:

报错

[Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 

处理方式

setsebool -P httpd_can_network_connect_db=1

[参考链接]

Zabbix安装部署

ZABBIX BUGS AND ISSUES

Zabbix server is not running:the information displayed may not be current .

Zabbix连接数据库失败解决办法

发布了41 篇原创文章 · 获赞 6 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/sean908/article/details/91490362
今日推荐