关闭防火墙:
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