安装环境:
环境:Ubuntu
提示:以下是本篇文章正文内容,开始踩坑
一、安装步骤
1.获取安装源
我采用的是官网的方式,下载安装,在里面选择对应的版本。 链接:https://www.zabbix.com/download
例如:
接着,我们继续按它的命令进行下载
代码提取(示例):非root用户,带上最前面带上sudo 或 su root
# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+xenial_all.deb
# dpkg -i zabbix-release_4.0-3+xenial_all.deb
# apt update
# 此处从所有库资源里面获取安装zabbix-server-mysql(服务端)、zabbix-frontend-php(前端显示php,zabbix是php写的)、zabbix-agent(客户端)三个模块
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent
扩展(看自己需求才观看):此处截图下载的是zabbix4.0版本,若我们想要安装其他版本,如4.4版本,可在此地址切换:链接:https://mirrors.aliyun.com/zabbix/zabbix/
此时更换了版本,记得更换命令哦!
2.数据库配置
zabbix会将所有的数据以数据库的方式存储,所有我们还需要搭建、配置数据库环境
ubuntu环境安装mysql自己查看资料,此处讲述数据库配置
- 第一步
配置过程的说明:先输入用户名、密码进入mysql数据库服务,然后创建zabbix数据库,再创建一个针对于zabbix使用的用户名和密码(此处用户名为:zabbix,密码为:password),再刷新,退出。
配置命令(示例):
mysql -uroot -p
#输入密码
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
这些操作无误后,我们将会往zabbix数据库里面导入数据
- 第二步
命令行说明:将zabbix-server-mysql目录下的create.sql.gz文件内容导入到上面创建的zabbix数据库中,然后输入密码。
导入命令(示例):
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
可通过命令行或可视化工具查看该操作,是否向zabbix中导入了数据,该过程比较慢,正常现象,一定要等该命令执行完毕
- 数据装在docker里面的,那么我们输入mysql -uroot -p 就可能失效,此时我们只需要做到第一步和第二步中说明所讲述的事情就行了,只是以docker的方式实现 ,以docker命令操作数据库链接
3.zabbix配置
在zabbix服务主配置文件中配置相关参数
cd /etc/zabbix
sudo vim zabbix_server.conf\
#主要配置这些参数,可在状态模式下输入 :/ListenPort 直接查找关键字位置
ListenPort=10051 #zabbix服务端口
DBHost=192.168.0.98 #数据库ip
DBName=zabbix #数据库名
DBUser=zabbix #用户名
DBPassword=password #密码,上面数据库配置第一步配置的密码
DBPort=3306 #mysql数据库端口
更改时区为亚洲上海
sudo vim /etc/zabbix/apache.conf
#php_value date.timezone Europe/Riga 更改为
php_value date.timezone Asia/Shanghai
5.前端资源导入
此处web容器采用apach2,所以需要将zabbix前端文件导入Apache2
#将zabbix前端导入到apach2服务的www/html目录下,这样在通过访问Apache2的时候,访问到zabbix服务
cp -r /usr/share/zabbix/ /var/www/html
6.启动服务
确保自己有apach2服务 apache2 -v 查看
#启动zabbix-server、zabbix-agent、apache2服务
systemctl restart zabbix-server zabbix-agent apache2
#将服务加入到开机自启动
systemctl enable zabbix-server zabbix-agent apache2
至此,zabbix安装过程完成,访问 http://ip:apach2端口/zabbix,配置相关参数,跳出此至页面,那么恭喜你,这么容易就安装成功了
但是,我觉得很难出现这种“奇迹”,你多少都启动不来,哈哈哈,来看踩坑,符合你的就改
二、踩坑解决:
1.安装zabbix-server-mysql zabbix-frontend-php zabbix-agent这三个服务时就出错
解决:那个服务出错,我们就选择那个模块,链接:https://mirrors.aliyun.com/zabbix/zabbix/4.4/ubuntu/pool/main/z/zabbix/
重新执行相关命令,见上面的获取安装源,第二步命令
2.apache2相关问题
- 没安装apache2服务
查看apache2版本,若没有,则安装Apache2
apache2 -v
#安装apache2命令
sudo apt install apache2
#查看apache2服务状态
sudo systemctl status apache2.service
- 访问前端能成功(非404错误),但是页面未被编码,如图
说明apache没有提供对php的支持
解决办法(如果你想解决该问题,请耐心阅读,比你不停找博客解决有用):解决详细理解链接
要使Apache2支持对php文件的解析,需要在Apache文件中引入对php的依赖
cd /etc/apache2
sudo vim apache.conf
#在里面添加对php的支持(注意查看自己的php版本),这两个依赖文件在/etc/apache2/mods-available能找到
Include /etc/apache2/mods-available/php7.2.load
Include /etc/apache2/mods-available/php7.2.conf
#添加后,代表启动Apache2服务将会加载php支持,所以此刻重启Apache2服务,若Apache2能成功启动,则将会支持对php文件的解析
sudo systemctl restart apache2
- 查看Apache2状态,注意查看报错,寻找解决方案,
此处,出现Apache2与php关联时的问题,导致服务器不能正常启动,是上一步加入了对php的依赖后,却导致Apache2不能启动了
解决办法:
#进入mods-enabled目录,该目录是Apache2启动必加载的目录
cd /etc/apache2/mods-enabled
#将mods-enabled目录下的mpm-event的conf和load链接删除,重建prefork链接
ln -s ../mods-available/mpm_prefork.* .
#此时,再重启,就更解决如下图的问题(添加对php的支持后,反而不能启动apache2)
sudo systemctl restart apache2
- 修改Apache2的默认启动端口
cd /etc/apache2
sudo vim ports.conf
#Listen默认为80,我们可以注释掉,如我设置为10053
Listen 10053
3.未关闭防火墙
由于未关闭防火墙,导致外部不能访问到ubuntu中的Apache(默认80)服务端口
- 解决方式:直接关闭防火墙,先实现功能排查问题,后面可以自行找办法开启该端口的访问,从而又能开启防火墙ubuntu防火墙相关命令链接
sudo ufw disable
4.PHP相关问题
- 页面不能被解析,也可能是php未完全装好,问题详解链接
sudo apt-get install libapache2-mod-php
sudo a2enmod php
若显示如下
This module does not exist!
This module does not exist!
sudo apt-get remove --purge libapache2-mod-php
sudo apt-get install libapache2-mod-php
重启apache2
sudo /etc/init.d/apache2 restart
5.mysql相关问题
- zabbix database type mysql_zabbix 安装时 到第三步时 database type 没有mysql选项,只有选项PostgreSQL的情况
解决办法:注意查看自己php的版本,我这里是7.2,
#查看php版本
php -v
#安装该版本的php-mysqli
sudo apt-get install php7.2-mysqli
总结
大问题就这些,踩坑也算不少,本博客也作为自己的笔记,如果有幸能被你翻到,希望能解决你的问题,其他问题也可留言,一起讨论解决,加油技术人