關閉防火牆:
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