安装zabbix3.0以及升级到5.0过程

时间:2024-03-08 11:24:47

关闭防火墙:

systemctl stop firewalld.service

systemctl disable firewalld.service

需要关闭 selinux,一定要关闭这个,开启selinux会引起一连串问题,甚至zabbix的discovery功能也不能正常使用

 

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

确认是否修改成功

grep SELINUX /etc/selinux/config

然后重启系统即可。

reboot

 

 

同步时间:

[root@localhost ~]# crontab -l

0 0 * * * /usr/sbin/ntpdate -u cn.pool.ntp.org

//如果没有ntpdate记得安装 yum -y install ntp

 

安装依赖包:

yum -y install wget net-snmp-devel net-snmp-utils OpenIPMI-devel httpd openssl-devel java lrzsz fping-devel

libcurl-devel perl-DBI pcre-devel libxml2 libxml2-devel mysql-devel gcc php php-bcmath php-gd php-xml

php-mbstring php-ldap php-mysql.x86_64 php-pear php-xmlrpc net-tools wget vim-enhanced

 

若有一些包本地yum无法安装,切换yum源再进行安装:OpenIPMI-devel fping-devel php-bcmath php-mbstring

 

 

在centos7上安装zabbix server3.0之前,我们首先搭建zabbix所需要的lamp环境。

 

使用最新的yum阿里源,如下:

 

wget -P /etc/yum.repos.d http://mirrors.aliyun.com/repo/Centos-7.repo

 

现在开始安装lamp环境,使用如下命令:

 

yum -y install mariadb mariadb-server php php-mysql httpd

 

通过信息,我们可以很明显的看出centos7默认安装的是php5.4、httpd2.4和maradb5.5,这个完全符合zabbix3.0对软件版本的要求。

lamp安装完毕后,我们现在来配置mysql数据库。

 

设置开机自启动mysql,并启动mysql,使用如下命令:

systemctl enable mariadb.service

systemctl start mariadb.service

 

初始化mysql数据库,并配置root用户密码

]# mysql_secure_installation

*****新密码:wen123

注意:在上图中的Enter current passwdord for root处,我们直接敲回车键即可。因为centos7上mysql的默认root用户密码为空。

上图中主要是为root用户配置密码,并刷新相关权限。(密码设为123456,只为实验用,生产环境自定义)

Remove anonymous users? 删除匿名用户?

Disallow root login remotely? 禁止root远程登陆

Remove test database and access to it? 删除测试数据库并且和访问它

Reload privilege tables now? 重新载入特权表

上图中主要是配置匿名用户、test用户以及root用户远程连接等相关配置。

 

mysql初始化完毕后,我们现在来创建zabbix数据库及其用户,使用如下命令:

]# mysql -uroot -pwen123

MariaDB [(none)]> create database zabbix default character set utf8 collate utf8_bin;

Query OK, 1 row affected (0.00 sec)

 

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by \'zabbix\';

Query OK, 0 rows affected (0.00 sec)

 

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

现在来测试刚刚创建的zabbix用户,是否可以连接mysql数据库

]# mysql -uzabbix -pzabbix;

 

启动apache以及开放80端口

]# systemctl start httpd

]# netstat -anptu |grep 80

tcp        0      0 192.168.111.3:22        192.168.111.254:50480   ESTABLISHED 7301/sshd: root@pts

tcp6       0      0 :::80                   :::*                    LISTEN      19081/httpd

]# netstat -anptu |grep 3306

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      18948/mysqld

 

安装zabbix server3.0

安装zabbix3.0所需要EPEL源和zabbix的yum源,如下:(3.2与3.4版本)

rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm                  3.2版本

rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm                         3.4版本

 

以上安装完毕后,我们现在来正式安装zabbix3.0,使用如下命令:

yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-get

 

通过信息,我们可以很明显的看出目前zabbix server是3.2.11版本的。

以上安装完毕后,我们现在开始进行zabbix的相关配置。

 

导入zabbix数据库结构,如下:

]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/

]# zcat create.sql.gz |mysql -uroot -pwen123 zabbix

 

数据库导入完毕后,我们现在来修改zabbix sever的配置文件

]# vim /etc/zabbix/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log

LogFileSize=0

PidFile=/var/run/zabbix/zabbix_server.pid

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix

SNMPTrapperFile=/var/log/snmptrap/snmptrap.log

Timeout=4

AlertScriptsPath=/usr/lib/zabbix/alertscripts

ExternalScripts=/usr/lib/zabbix/externalscripts

LogSlowQueries=3000

上述配置文件中,我们只需要关注 DBHost、DBName、DBUser、

DBPassword 几项即可。这几项是配置zabbix server连接mysql数据库的参数。

 

以上修改完毕后,我们再来修改下zabbix.conf文件

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

 # php_value date.timezone Europe/Riga   //去掉注释并改为以下

php_value date.timezone Asia/Shanghai

 

其中php_value date.timezone Asia/Shanghai主要是定义php的时区。

以上修改完毕后,我们把把zabbix-server加入开机启动,并启动zabbix-server

systemctl start zabbix-server.service

systemctl enable zabbix-server.service

 

尝试访问http://IP地址/zabbix    默认用户名为Admin  密码zabbix

 

*********升级zabbix3.2到4.4

备份重要目录:

cp -a /etc/zabbix /tmp/bakup/

cp -a /etc/httpd/conf.d /tmp/bakup/

cp -a /usr/share/zabbix /tmp/bakup/share/

cp -a /usr/share/doc/zabbix-* /tmp/bakup/share/

备份数据库

mysqldump -uzabbix -pzabbix --opt --skip-lock-tables --database zabbix > zabbix.sql

mysqldump -uzabbix -pzabbix  --opt --skip-lock-tables --database zabbix | gzip > zabbix_`date +\'%Y%m%d%H%M%S\'`.sql.gz

安装升级用的yum源

 

rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm

yum clean all

yum list

 

停止旧版本

systemctl stop zabbix-server.service

systemctl stop zabbix-agent.service

systemctl stop httpd

systemctl stop mariadb

 

更新升级

yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent

(过程可能较慢,可自行下载到本地进行安装升级)

启动新版本zabbix

systemctl start zabbix-server.service

systemctl start zabbix-agent.service

 

查看升级日志

[root@zabbix1 zabbix]# tailf /var/log/zabbix_server.log

 

 

 

升级zabbix4.4到5.0

zabbix5.0要求php版本为7.2以上,先升级php

卸载旧版本,不查看依赖关系

]# rpm -aq |grep php|xargs rpm -e --nodeps

 

更新yum源

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

yum clean all

yum list|grep php //查看可用的php包

 

安装php7.2版本

php-gd php-mysql php-ldap  php-bcmath php-mbstring  php-xml php     //之前php5.4版本所需的依赖

---->yum -y install php72-php-gd php72-php-mysqlnd php72-php-ldap php72-php-bcmath php72-php-mbstring php72-php-xml php72-php php72-php-fpm

 

查看php升级后版本

]# php72 --version

PHP 7.2.33 (cli) (built: Aug  4 2020 10:15:02) ( NTS )

 

升级zabbix4.4到zabbix5.0

systemctl stop httpd mariadb zabbix-server

yum remove zabbix-web-*  httpd -y     

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

yum clean all

yum update zabbix-server-mysql zabbix-agent -y

yum-config-manager --enable rhel-server-rhscl-7-rpms    //没有此命令安装yum-utils包

 

vi /etc/yum.repos.d/zabbix.repo

[zabbix-frontend]

...

enabled=1      //改为1

 

安装ZABBIX 前端包

yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y

 

报Error: Package: zabbix-web-deps-scl-5.0.2-1.el7.noarch (zabbix-frontend)

           Requires: rh-php72-php-gd

安装yum -y install centos-release-scl

 

启动服务并设置开机自启

systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm mariadb

systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm mariadb

 

查看zabbix版本

]# zabbix_server --version

 

查看日志是否升级成功

~]# tail /var/log/zabbix/zabbix_server.log

 

访问zabbix首页。

 

 

[root@localhost ~]# rpm -qa|grep zabbix

zabbix-web-mysql-scl-5.0.2-1.el7.noarch

zabbix-release-5.0-1.el7.noarch

zabbix-web-5.0.2-1.el7.noarch

zabbix-web-deps-scl-5.0.2-1.el7.noarch

zabbix-apache-conf-scl-5.0.2-1.el7.noarch

zabbix-agent-5.0.2-1.el7.x86_64

zabbix-get-3.2.11-1.el7.x86_64               -----------升级后注意各个组件的版本。

zabbix-server-mysql-5.0.2-1.el7.x86_64

 

升级zabbix-get-3.2.11到5.0.2否则无法使用命令zabbix-get获取到数据

 

在服务端测试通讯
zabbix_get 命令是在 server 端用来检查 agent 端的一个命令,在添加完主机或者触发器后,不能正常获得数据,可以用 zabbix_get 来检查能否采集到数据,以便判断问题所在。
zabbix_get 参数说明:
-s --host: 指定客户端主机名戒者 IP
-p --port:客户端端口,默认 10050
-I --source-address:指定源 IP,写上 zabbix server 的 ip 地址即可,一般留空,服务器如果有多ip 的时候,你指定一个。
-k --key:你想获取的 key

 

注:system.uname这个健值是在监控主机的监控项中查看

]#  zabbix_get -s 192.168.111.3 -p 10050 -k system.uname

Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64