zabbix4.0離線快速編譯安裝(編譯安裝方法)


本博客已整理更新至第三版。更新於2019.5.28

其實這個主要是想試一下離線編譯安裝的具體步驟,記得要配置好本地yum雲,因為我們需要使用yum,yum能幫我們自動解決很多依賴問題。發現最主要的問題是,當編譯安裝時,會提示沒有對應包,所以有一個網站我們需要到上面去找依賴包,網址http://rpm.pbone.net/,當我們找不到某些要用到的包時,可以考慮到這個網址里下載。值得注意的是php缺少的某些擴展,可以通過yum安裝,php會自動識別這些擴展的

一般來說,直接執行以下腳本也可以了。腳本統一放在root目錄下

腳本1

systemctl stop firewalld
systemctl disable firewalld
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config
setenforce 0
yum install httpd mariadb mariadb-server php php-mysql php-devel php-xml  php-bcmath  php-mbstring php-gd wget expect net-snmp gcc  mysql-devel  libxml2-devel  net-snmp-devel  libevent-devel  curl-devel -y
wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.2.1/zabbix-4.2.1.tar.gz
systemctl start httpd   
systemctl enable httpd
systemctl enable mariadb
systemctl start mariadb
chmod +x initmysqlpassword.sh 
/root/initmysqlpassword.sh 
tar -zxvf zabbix-4.2.1.tar.gz 
cd zabbix-4.2.1
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
cd database/mysql/
mysql -uroot -p123456 -e "create database zabbix character set utf8 collate utf8_bin;"
mysql -uroot -p123456 -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';"
mysql -uroot -p123456 -e "flush privileges;"
mysql -uzabbix -pzabbix -e "use zabbix;source schema.sql;source images.sql;source data.sql;"
cd ../..
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make install
sed -i s/'# DBPassword='/'DBPassword=zabbix'/g  /usr/local/etc/zabbix_server.conf
cp -r  frontends/php/ /var/www/html/zabbix
sed -i s/'^max_execution_time.*'/'max_execution_time = 300'/g /etc/php.ini
sed -i s/'^max_input_time.*'/'max_input_time = 300'/g /etc/php.ini
sed -i s/'^post_max_size.*'/'post_max_size = 16M'/g /etc/php.ini
sed -i s/'^;date.timezone.*'/'date.timezone = Asia\/Shanghai'/g /etc/php.ini
systemctl restart httpd
systemctl restart mariadb
zabbix_server

腳本2,無需手動自行,只需將該腳本命名為initmysqlpassword.sh

#!/usr/bin/expect
spawn mysql_secure_installation
expect "Enter current password for root (enter for none):"
send "\r"
expect "Set root password? "
send "Y\r"
expect "New password:"
send "123456\r"
expect "Re-enter new password:"
send "123456\r"
expect "Remove anonymous users? "
send "y\r"
expect "Disallow root login remotely? "
send "n\r"
expect "Remove test database and access to it? "
send "y\r"
expect "Reload privilege tables now? "
send "y\r"
expect eof

 

以下為具體分步驟

第一步

關閉selinux以及防火牆,被這兩個東西坑過很多次了

 

第二步

部署lamp或者lnmp環境,這里以部署lamp環境做演示。另一篇博客有更加詳細的教程https://www.cnblogs.com/biaopei/p/7730676.html

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

接着啟動對應服務和設置開機自啟

systemctl start httpd   

systemctl enable httpd

systemctl enable mariadb

systemctl start mariadb

mysql_secure_installation    #在Set root password? [Y/n]后面輸入 y,設置密碼123456,在Disallow root login remotely? [Y/n] 后面輸入n,允許root用戶遠程登錄,其他選項直接回車默認就可以了

寫一個頁面測試php和mariadb是否已經在Apache里正常運行,以下內容是用來檢測用php連接mariadb的,連接成功顯示success,失敗顯示fail(說明哪里沒配置正確,需要檢查)

直接復制一下內容到終端中執行就可以了(注意,$link之類的變量前面必須加個斜桿轉義,否則系統會把他當做一個變量,不能將這個變量名打印到文本中)

cat > /var/www/html/test.php <<EOF
<?php
\$link=mysql_connect('localhost','root','123456');    
if(!\$link) echo "fail";    
else echo "success";    
mysql_close();    
?>
EOF

訪問服務器ip/test.php,如果返回success則說明可以了

 

第三步

編譯安裝zabbix

3.1  下載源碼包就行,我下載的是4.0版本的

 

3.2  解壓

tar -zxvf zabbix-4.0.0.tar.gz

3.3  開始編譯,執行sql文本時注意導入順序

cd zabbix-4.0.0

groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

cd database/mysql/

mysql -uroot -p

create database zabbix character set utf8 collate utf8_bin;

grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

flush privileges;

quit

mysql -uzabbix -p

use zabbix

source schema.sql;     

source images.sql;

source data.sql;

quit

yum install net-snmp gcc  mysql-devel  libxml2-devel  net-snmp-devel  libevent-devel  curl-devel   -y

cd ../..

 ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

make install

接下來還需要修改zabbix的配置文件,我的默認是在/usr/local/etc/zabbix_server.conf。取消DBPassword的注釋並將其值改為zabbix。這個不修改回導致zabbix_server起不來

現在可以啟動zabbix_server了

zabbix_server

注意:zabbix_server默認日志文件位於/tmp/zabbix_server.log,有問題可以查看這個日志文件

[root@localhost zabbix-4.0.0]# cp -r  frontends/php/ /var/www/html/zabbix     #先返回到解壓后的目錄再執行這條命令,這個遷移的是zabbix前端文件

現在我們先來嘗試訪問zabbix ,訪問地址服務器ip/zabbix

 

點擊下一步

 

 這個需要修改php配置文件和添加php擴展就可以了

我們先修改/etc/php.ini文件,將對應參數做如下修改

max_execution_time = 300
max_input_time = 300
post_max_size = 16M
date.timezone =Asia/Shanghai

添加擴展

yum install php-gd -y

yum install php-xml  

php-bcmath  php-mbstring 

找到這兩個rpm包安裝,注意一下版本,剛開始,我使用的是php-bcmath-5.4.16-45.el7.x86_64.rpm這個版本的,后面發現會有依賴問題,所以后面下了另一個版本的php-bcmath-5.4.16-42.el7.x86_64.rpm,安裝方式rpm -ivh rpm包名

systemctl restart httpd   重啟一下httpd,刷新頁面就發現不會報錯了

那個警告可以忽略,點擊下一步。第二次安裝時我遇到了另一個問題,那就是提示The frontend does not match Zabbix database. Current database version (mandatory/optional): 3050047/3050047. Required mandatory version: 4000000. Contact your system administrator.之類的問題,具體解決方法是

mysql> use zabbix;

mysql> update dbversion set mandatory=4000000;  將后面的4000000根據情況改為對應的值

mysql> flush privileges;

 

隨便起個名

下一步

 

再下一步

 

 

 按操作提示,下載配置文件,放到指定位置就可以了

 

點擊下一步

點擊完成,默認賬號Admin密碼zabbix

 

登錄效果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM