转自https://www.cnblogs.com/yjlch1016/p/8371049.html,感谢原作者。
提示:安装zabbix前,先按照下面的步骤安装MySQL
一、安装MySQL(参考资料:https://blog.csdn.net/james_nan/article/details/82053430#commentBox)
(1)sudo apt-get install mysql-server
按照提示输入密码
(2)sudo apt-get install mysql-client
(3)sudo apt-get install libmysqlclient-dev
测试是否安装成功:
sudo netstat -tap | grep mysql
二、安装zabbix(基于Zabbix+MySQL+Apache(可选))
sudo apt-get install php7.0-bcmath php7.0-xml php7.0-mbstring
安装Zabbix所需的几个PHP模块
sudo wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
安装存储库包
sudo apt-get update
更新apt包源码
apt-get install zabbix-server-mysql zabbix-frontend-php
安装具有MySQL支持的Zabbix Server和PHP前端模块
sudo apt-get install language-pack-zh-hant language-pack-zh-hans
安装中文语言包
sudo apt-get install zabbix-agent
安装Zabbix agent
mysql -uroot -p
登录数据库
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
创建一个新的MySQL数据库zabbix,将存储收集的数据
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@'%' IDENTIFIED BY '123456';
用户名zabbix,密码123456
FLUSH PRIVILEGES;
刷新权限表
EXIT;
退出数据库
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
导入初始模式和数据
输入密码123456
修改 Zabbix Server配置文件
路径 /etc/zabbix/zabbix_server.conf
找到 # DBPassword=这一行
取消注释#,改为 DBPassword=123456
找到 #DBHost=localhost这一行并取消注释
修改PHP时区为亚洲/上海时区
路径 /etc/zabbix/apache.conf
找到 #php_value date.timezone Europe/Rome这一行
取消注释#,改为php_value date.timezone Asia/Shanghai
systemctl restart zabbix-server zabbix-agent apache2
重启服务
systemctl enable zabbix-server zabbix-agent apache2
设置开机启动
在浏览器输入地址http://192.168.1.106/zabbix/
三、更新zabbix
停止服务
sudo service zabbix-server stop
sudo service zabbix-agent stop
sudo service apache2 stop
备份 zabbix 文件
mkdir /opt/zabbix-backup/
cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
cp /etc/apache2/conf-enabled/zabbix.conf /opt/zabbix-backup/
cp -R /usr/share/zabbix/ /opt/zabbix-backup/
cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup/
升级 zabbix 源
sudo rm -Rf /etc/apt/sources.list.d/zabbix.list
sudo wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.3-2+bionic_all.deb
sudo dpkg -i zabbix-release_4.3-1+xenial_all.deb
sudo apt-get update
添加时出现问题:dpkg: error: dpkg status database is locked by another process
sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a
升级 zabbix
apt-get install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent zabbix-proxy-mysql
sudo apt-get install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent
启动 zabbix
sudo service zabbix-server start
sudo service zabbix-agent start
sudo service apache2 start
安装上述步骤更新后,肯能会出现一些问题:
(1)打开zabbix可能会出现如下错误:
The frontend does not match Zabbix database. Current database version (mandatory/optional): 3020000/3020000. Required mandatory version: 4030010. Contact your system administrator.
解决办法:进入数据库,然后执行如下命令
mysql> show databases;
mysql> use zabbix;
mysql> update dbversion set mandatory=4030010;
mysql> flush privileges;
(2)打开zabbix还可能出现如下错误:
Error in query [SELECT d.dashboardid,d.name FROM dashboard d LIMIT 1001] [Table 'zabbix.dashboard' doesn't exist]
Undefined index: custom_color [zabbix.php:21 → require_once() → ZBase->run() → ZBase->processRequest() → CView->getOutput() → include() → local_generateHeader() → CView->getOutput() → include() → getTriggerStatusCss() in include/html.inc.php:998]
解决办法:
修改 Zabbix Server配置文件
路径 /etc/zabbix/zabbix_server.conf
找到 # DBPassword=这一行
取消注释#,改为 DBPassword=123456
找到 #DBHost=localhost这一行并取消注释
最后重启服务:
sudo systemctl restart zabbix-server zabbix-agent apache2
(3)如果主机已安装php,但版本比较低(比如我的一台主机因为安装rockmongo而安装了php5.6),此时再按照上面的方法安装依赖中的php7.0时,会出现一下问题:
At least one of MySQL, PostgreSQL, Oracle or IBM DB2 should be supported.
以及其他一堆php扩展插件没有安装、ldap warning等问题。
解决办法:
a、对于不能支持MySQL的问题,重新安装相应php版本的php-mysql驱动:sudo apt-get install php5.6-mysql。安装后可能会导致登录页面提示没有数据库权限,此时修改/usr/share/zabbix/conf/zabbix.conf.php文件中的数据库密码(原为空)为上文中的123456即可。不过该文件是链接文件,链接到/etc/zabbix/web/zabbix.conf.php的,但这个链接路径中又不存在zabbix.conf.php,所以我把/usr/share/zabbix/conf/zabbix.conf.php.example拷贝一份到/etc/zabbix/web中并重命名为zabbix.conf.php即可(这样会导致登录页面配置到最后提示创建配置文件失败,原因是/etc/zabbix/web中已存在zabbix.conf.php,别方,此时把原zabbix.conf.php备份,并吧页面提供的配置文件下载后拷贝到web中即可)
b、ldap warning的问题,首先查看php安装模块是否已存在ldap.so。网上很多博客是到/usr/local/php/lib/php/extensions中去找ldap.so,然而我没有这个路径。我的路径在/usr/lib/php中。进入这个路径后,看看与php版本对于的文件夹下(我的是一串数字20131226)是否有ldap.so。如果没有,那么安装下面的办法产生这个文件夹:
首先进入对于版本php的源文件中(如果没有,可以通过http://cn2.php.net/distributions/php-5.6.40.tar.gz下载。其中40是我的php5.6具体的版本,如果你不知道自己的具体版本,可以通过sudo apt-get php5.6来再安装一下,结果中会提示你具体版本),切换到ext/ldap中,执行phpize或/usr/bin/phpize,然后执行./configure --with-php-config=/usr/bin/php-config5.6 --with-ldap && make && make install就会产生上面说的文件夹了,其中就有ldap.so文件。--with-php-config参数是我的路径,你可以通过find / -name "php-config5.6"来查找你php版本的配置文件。最后到/etc/php/5.6/apache2/php.ini中加入extension=/usr/lib/php/20131226/ldap.so,重启systemctl restart zabbix-server zabbix-agent apache2,然后登录页面的ldap warning就会消失
c、其他php扩展的error,也要安装php版本对于的扩展才行,比如我执行了下面的命令:
sudo apt-get install php5.6-bcmath php5.6-xml php5.6-mbstring
总之,看到很多红色报错不要紧张(我是由于了几分钟是要重装,还是修复问题后再决定采取修复行动的),一个个google解决即可。