赞
踩
偶然看到群里发的一篇"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
[参考链接]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。