一、先下载并安装zabbix的repo.
rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
yum clean all
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
出现报错提示:
---> Package libXau.x86_64 0:1.0.8-2.1.el7 will be installed
---> Package zabbix-web.noarch 0:4.2.0-1.el7 will be installed
--> Processing Dependency: php-mbstring for package: zabbix-web-4.2.0-1.el7.noarch
--> Processing Dependency: php-bcmath for package: zabbix-web-4.2.0-1.el7.noarch
--> Finished Dependency Resolution
Error: Package: zabbix-web-4.2.0-1.el7.noarch (zabbix)
Requires: php-mbstring
Error: Package: zabbix-web-4.2.0-1.el7.noarch (zabbix)
Requires: php-bcmath
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
这个原因是当前yum源里没 php-mbstring php-bcmath 这两个包,yum search 一下可以确认。
根据网上查询——These packages are in the RHEL “optional” repository.
那么下一步去下载rpm包,或者再增加一个外部yum源:
方法一:http://yum.oracle.com/repo/OracleLinux/OL7/optional/latest/x86_64/
wget http://yum.oracle.com/repo/OracleLinux/OL7/optional/latest/x86_64/getPackage/php-mbstring-5.4.16-46.el7.x86_64.rpm
wget http://yum.oracle.com/repo/OracleLinux/OL7/optional/latest/x86_64/getPackage/php-bcmath-5.4.16-46.el7.x86_64.rpm
rmp -ivh php-mbstring-5.4.16-46.el7.x86_64.rpm
rpm -ivh php-bcmath-5.4.16-46.el7.x86_64.rpm
又出现报错提示:
warning: php-mbstring-5.4.16-46.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
error: Failed dependencies:
php-common(x86-64) = 5.4.16-46.el7 is needed by php-mbstring-5.4.16-46.el7.x86_64
不过php-common目前yum源有,直接安装:
yum install -y php-common
安装又报错,提示目前的php-common版本过低,不能安装目前的php-bcmath包:
[root@localhost data]# rpm -ivh php-bcmath-5.4.16-46.el7.x86_64.rpm
warning: php-bcmath-5.4.16-46.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
error: Failed dependencies:
php-common(x86-64) = 5.4.16-46.el7 is needed by php-bcmath-5.4.16-46.el7.x86_64
所以还是去下一个:http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/index.html
wget http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/php-common-5.4.16-46.el7.x86_64.rpm
rpm -e php-common-5.4.16-42.el7.x86_64
rpm -ivh php-common-5.4.16-46.el7.x86_64.rpm
rpm -ivh php-bcmath-5.4.16-46.el7.x86_64.rpm
rpm -ivh php-common-5.4.16-46.el7.x86_64.rpm
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
报错:
--> Processing Dependency: php-common(x86-64) = 5.4.16-42.el7 for package: php-xml-5.4.16-42.el7.x86_64
--> Finished Dependency Resolution
Error: Package: php-5.4.16-42.el7.x86_64 (base)
Requires: php-common(x86-64) = 5.4.16-42.el7
Installed: php-common-5.4.16-46.el7.x86_64 (installed)
php-common(x86-64) = 5.4.16-46.el7
Available: php-common-5.4.16-42.el7.x86_64 (base)
php-common(x86-64) = 5.4.16-42.el7
Error: Package: php-cli-5.4.16-42.el7.x86_64 (base)
Requires: php-common(x86-64) = 5.4.16-42.el7
Installed: php-common-5.4.16-46.el7.x86_64 (installed)
php-common(x86-64) = 5.4.16-46.el7
Available: php-common-5.4.16-42.el7.x86_64 (base)
php-common(x86-64) = 5.4.16-42.el7
Error: Package: php-gd-5.4.16-42.el7.x86_64 (base)
Requires: php-common(x86-64) = 5.4.16-42.el7
Installed: php-common-5.4.16-46.el7.x86_64 (installed)
php-common(x86-64) = 5.4.16-46.el7
Available: php-common-5.4.16-42.el7.x86_64 (base)
php-common(x86-64) = 5.4.16-42.el7
Error: Package: php-xml-5.4.16-42.el7.x86_64 (base)
Requires: php-common(x86-64) = 5.4.16-42.el7
Installed: php-common-5.4.16-46.el7.x86_64 (installed)
php-common(x86-64) = 5.4.16-46.el7
Available: php-common-5.4.16-42.el7.x86_64 (base)
php-common(x86-64) = 5.4.16-42.el7
Error: Package: php-pdo-5.4.16-42.el7.x86_64 (base)
Requires: php-common(x86-64) = 5.4.16-42.el7
Installed: php-common-5.4.16-46.el7.x86_64 (installed)
php-common(x86-64) = 5.4.16-46.el7
Available: php-common-5.4.16-42.el7.x86_64 (base)
php-common(x86-64) = 5.4.16-42.el7
Error: Package: php-ldap-5.4.16-42.el7.x86_64 (base)
Requires: php-common(x86-64) = 5.4.16-42.el7
Installed: php-common-5.4.16-46.el7.x86_64 (installed)
php-common(x86-64) = 5.4.16-46.el7
Available: php-common-5.4.16-42.el7.x86_64 (base)
php-common(x86-64) = 5.4.16-42.el7
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
从这看到依赖太麻烦了,决定以目前本地yum源的php版本为基准,然后去下载和本地php-common版本一致的其他rpm包:
rpm -e php-bcmath
rpm -e php-mbstring
rpm -e php-common
rm -rf php*
yum install -y php*
rpm -qa php-common
//这里查询目前的php-common的版本:php-common-5.4.16-42.el7.x86_64
wget http://yum.oracle.com/repo/OracleLinux/OL7/optional/archive/x86_64/getPackage/php-bcmath-5.4.16-42.el7.x86_64.rpm
wget http://yum.oracle.com/repo/OracleLinux/OL7/optional/archive/x86_64/getPackage/php-mbstring-5.4.16-42.el7.x86_64.rpm
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
这次安装zabbix终于正常。
方法二:再配置一个外部yum源并安装
wget http://mirrors.aliyun.com/repo/Centos-7.repo
cp Centos-7.repo /etc/yum.repo.d
vim /etc/yum.repo.d/Centos-7.repo
//将repo文件里的$releasever所有替换为目前的redhat版本号,比如7
rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
yum clean all
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
二、启动服务:
systemctl start zabbix-server
systemctl start zabbix-agent
systemctl enable zabbix-server
systemctl enable zabbix-agent
三、进行zabbix的初始化配置:
mysql -u root -p
//输入密码:
xxxx
//创建zabbix数据库和zabbix用户,给予权限
create database zabbix character set utf8 collate utf8_bin;
create user 'zabbix'@'localhost' identified by 'Test@123';
grant all privileges on zabbix.* to zabbix@localhost
//利用zabbix自带的脚本初始化zabbix数据库
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
//编辑zabbix数据库密码
vim /etc/zabbix/zabbix_server.conf
//配置为
DBPassword=Test@123
这个时候重新启动相关zabbix服务,发生报错:
systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd
查看zabbix报错日志:
cat /var/log/zabbix/zabbix_server.log
//报错信息
...
3662:20190414:024445.741 ******************************
3662:20190414:024445.741 using configuration file: /etc/zabbix/zabbix_server.conf
3662:20190414:024445.767 [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
3662:20190414:024445.767 Cannot connect to the database. Exiting...
检查mysql的配置信息:
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.15 |
+-----------+
1 row in set (0.56 sec)
mysql> show variables like 'default_authentication_plugin';
+-------------------------------+-----------------------+
| Variable_name | Value |
+-------------------------------+-----------------------+
| default_authentication_plugin | caching_sha2_password |
+-------------------------------+-----------------------+
1 row in set (1.07 sec)
经查阅资料,MySQL8.0后版本默认的认证方式是caching_sha2_password ,而老的MySQL版本则为mysql_native_password.
方法一:
修改my.cnf并重启mysqld。
vim my.cnf
[mysqld]
default_authentication_plugin=mysql_native_password
mysql> select host,user,plugin from mysql.user;
+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session | caching_sha2_password |
| localhost | mysql.sys | caching_sha2_password |
| localhost | root | mysql_native_password |
| localhost | zabbix | caching_sha2_password |
+-----------+------------------+-----------------------+
方法二:在数据库中修改用户属性
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Test@123'
flush privileges;
select host,user,plugin from mysql.user; #检查是否生效
但是按照以上两步,修改了root的属性后,还是报一样的错误,于是尝试对zabbix用户的属性也一并修改,
ALTER USER 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Test@123'
flush privileges;
再次重启zabbix-server,服务正常。
四、配置Zabbix frontend,访问zabbix-server的服务ip:http://server_ip_or_name/zabbix
1、这里报错时区错误,因为配置文件里面的时区出现了问题,系统里默认是欧洲时区,修改为上海时区。
vi /etc/php.ini
//找到如下配置
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
//修改为
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone =Asia/Shanghai //注意前面的分号要去掉
2、查看并修改/etc/httpd/conf.d/zabbix.conf配置文件的配置
vi /etc/httpd/conf.d/zabbix.conf
//查看配置
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga
</IfModule>
//修改为
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai //注意去掉“#”号
</IfModule>
//重启httpd服务,后续无报错
systemctl resteart httpd
输入默认zabbix的账号密码登陆:
用户名:Admin A大写
密码:zabbix
其他tips:
1、如果上面登陆zabbix监控页面时,忘记用户名密码的时候,可以通过登陆数据库去查看用户名、修改密码。
mysql> use zabbix;
mysql> show tables; #查看是否存放用户、密码信息
mysql> select * from users; #发现有passwd的字段
mysql> update users set passwd=md5("zabbix") where userid='1'; #使用MD5函数进行密码加密
Query OK, 0 rows affected (0.29 sec)
Rows matched: 1 Changed: 0 Warnings: 0
2、安装zabbix-proxy
特别要注意配置和安装zabbix-proxy时,需要建立一个和zabbix-server有区分的单独的数据库。
[root@test02sz ~]# yum search zabbix-proxy
Loaded plugins: fastestmirror, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Repository base is listed more than once in the configuration
Loading mirror speeds from cached hostfile
===================================================== N/S matched: zabbix-proxy ======================================================
zabbix-proxy-mysql.x86_64 : Zabbix proxy for MySQL or MariaDB database
zabbix-proxy-pgsql.x86_64 : Zabbix proxy for PostgreSQL database
zabbix-proxy-sqlite3.x86_64 : Zabbix proxy for SQLite3 database
Name and summary matches only, use "search all" for everything.
//选择合适的数据库类型并安装,这里使用mysql
[root@test02sz ~]# yum install zabbix-proxy-mysql.x86_64 -y
[root@test02sz ~]#mysql -uroot -p
password
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost;
mysql> quit;
[root@test02sz ~]# zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -u zabbix -p zabbix_proxy
//查看安装的zabbix-proxy版本,rpm -q zabbix-proxy-<database_type>
zabbix-proxy-mysql-4.2.1-1.el7.x86_64
[root@test02sz ~]# rpm -q zabbix-proxy-mysql
//设置DBPassword
[root@test02sz ~]# vim /etc/zabbix/zabbix_server.conf
DBPassword=password
//这里遗留一个问题,按照以上配置后,启动proxy会报错,一直未解决,后续有精力时再回来分析。