本博客已整理更新至第三版。更新於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

登錄效果

