
本文同樣是一篇安裝文章,唯一區(qū)別就利用了國內(nèi)較知名的開源的系統(tǒng)嘗試安裝Zabbix 最新的6.2版本,看是否可行,篇幅較長,需要有相對的耐心。
正文
本文環(huán)境
- openEuler 22.03 LTS
- PHP 8.0
- Apache 2
- Mysql 8.0
安裝前建議
更新到最新系統(tǒng):
安裝所需軟件
dnf -y install vim wget tar
數(shù)據(jù)庫部分
6.0 以上版本需要安裝mysql8.0以上版本的數(shù)據(jù)庫(以mysql為例子)。

來自官網(wǎng)
歐拉系統(tǒng)自帶 mysql8.0 的源,無需要安裝額外的源。

安裝mysql
dnf -y install mysql-server
啟動數(shù)據(jù)庫
systemctl start mysqld && systemctl enable mysqld
初始化數(shù)據(jù)庫
mysql_secure_installation

一路回車即可
下載源碼包
cd /tmp
wget https://cdn.zabbix.com/zabbix/sources/stable/6.2/zabbix-6.2.4.tar.gz
解壓源碼包
tar -zxvf zabbix-6.2.4.tar.gz
Zabbix部分
創(chuàng)建zabbix用戶及用戶組
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
創(chuàng)建zabbix安裝目錄
開始編譯
- prefix 指定安裝目錄。
- enable-server 啟用 Zabbix Server。
- enable-agent 啟用 Zabbix agent。
- with-mysql 后端指定數(shù)據(jù)庫為mysql。
- net-snmp 支持 snmp 協(xié)議。
其實還有很多參數(shù),大家可以參考 ./configure --help 自行研究 ,官方文檔里也有案例

進入解壓資源目錄
ls /tmp
cd /tmp/zabbix-6.2.4
./configure --prefix=/app/zabbix --enable-server --enable-agent --with-mysql
執(zhí)行上面的命令就進入排錯環(huán)節(jié)了。
第一個報錯是mysql的開發(fā)庫沒有。

dnf -y install mysql-devel
安裝完成后繼續(xù)執(zhí)行編譯命令,出現(xiàn)了缺失libevent。

dnf -y install libevent-devel
出現(xiàn)了缺少libpcre庫。

dnf -y install pcre-devel
出現(xiàn)這個界面證明已經(jīng)編譯完成了。

安裝

完成安裝
整體目錄情況

PHP部分
openEuler 22.04 自帶8.0版本,所以符合6.0以上版本的需求。
dnf -y install php php-fpm
Apache操作部分
由于安裝PHP會自動安裝apache服務(wù),所以安裝過程并未提及apache的安裝過程,移動前端文件到apache服務(wù)的網(wǎng)頁目錄下。
mv /tmp/zabbix-6.2.4/ui/* /var/http/html
啟動apache并訪問。
systemctl start httpd && systemctl enable httpd
systemctl start php-fpm && systemctl enable php-fpm

點擊Next Step

此時會出現(xiàn) PHP 所需要一些依賴和參數(shù)的報錯,所以首先安裝一些PHP相關(guān)的依賴。
dnf -y install php-gd php-mysqlnd php-bcmath php-xml php-mbstring
安裝完依賴此時不需要重啟任何服務(wù),接下來調(diào)整PHP的配置文件。
根據(jù)報錯來調(diào)整三個值分別是 post_max_size,max_excution_time,max_input_time。


改完之后需要重啟php-fpm服務(wù)。
systemctl restart php-fpm
再進行刷新,就能夠成功了(需要注意的是,此時會有一個ldap的選項是warning,大家可以忽略,如果不涉及域賬號登錄,該功能無任何意義)。

數(shù)據(jù)庫配置部分
創(chuàng)建Zabbix所需要的數(shù)據(jù)庫和用戶
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'xiaoyu123';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;

導(dǎo)入Zbbix 的數(shù)據(jù)文件
cat /tmp/zabbix-6.2.4/database/mysql/schema.sql | mysql -uzabbix -p zabbix
cat /tmp/zabbix-6.2.4/database/mysql/images.sql | mysql -uzabbix -p zabbix
cat /tmp/zabbix-6.2.4/database/mysql/data.sql | mysql -uzabbix -pxiaoyu123 zabbix

相關(guān)數(shù)據(jù)導(dǎo)入完成后關(guān)掉。
log_bin_trust_function_creators功能。
set global log_bin_trust_function_creators = 0;
quit;

完成這部分,就可以在前端進入數(shù)據(jù)庫配配置界面。

填寫數(shù)據(jù)庫密碼,下一步

這一步就是設(shè)置主機的名稱和時區(qū)

安裝完成前預(yù)覽

此時會出現(xiàn)無法創(chuàng)建,這是由于目標目錄沒有權(quán)限導(dǎo)致的,可以點擊藍色字體將配置得好的文件下載下來,然后傳到前端提示的目錄里,該文這里路徑為:
放好后,刷新網(wǎng)頁。

完成安裝

用戶名密碼為Admin/zabbix

看到這里大家應(yīng)該會覺得奇怪,為什么一直沒有去配置zabbix server部分的東西,那么上面這張圖(zabbix server處于異常狀態(tài))就完美的解釋了,要對Server部分進行配置了。
Zabbix Server部分
首先來說說zabbix server 目錄的一些情況
- 程序文件路徑為/app/zabbix/sbin/
- 配置文件路徑為/app/zabbix/etc/
制作 Zabbix server 守護文件
vim /usr/lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
After=postgresql.service
After=pgbouncer.service
After=postgresql-13.service
[Service]
Environment="CONFFILE=/app/zabbix/etc/zabbix_server.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/app/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0
[Install]
WantedBy=multi-user.target
文中有一個地方需要注意,就是pid文件所在的位置,下面會再次提到。

編輯配置文件
vim /app/zabbix/etc/zabbix_server.conf
需要調(diào)整三個地方,第一個是log存放的位置,第二個是數(shù)據(jù)庫密碼,第三個是PID存放的位置。

調(diào)整日志存放位置

修改數(shù)據(jù)庫密碼

修改pid文件位置
由于是源碼安裝,所以存放日志文件的目錄不存在,所以需要自行創(chuàng)建,并授予對于的權(quán)限。
mkdir /var/log/zabbix
chown zabbix:zabbix /var/log/zabbix
此時調(diào)整完成后就啟動 Zabbix Server。
systemctl start zabbix-server && systemctl enable zabbix-server
查看服務(wù)的狀態(tài)。
systemctl status zabbix-server

Active 處是running即為正常,同時查看相關(guān)日志。
tail -f /var/log/zabbix_server.log

Zabbix-agent
與 Server一樣,先創(chuàng)建服務(wù)。
vim /usr/lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/app/zabbix/etc/zabbix_agent.conf"
Type=simple
Restart=on-failure
PIDFile=/app/zabbix/zabbix_agentd.pid
KillMode=control-group
ExecStart=/app/zabbix/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target

修改zabbix agent配置文件
同樣調(diào)整兩個地方,分別是pid文件的路徑和日志的路徑。
vim /app/zabbix/etc/zabbix_agentd.conf

啟動zabbix agent
systemctl start zabbix-agent && systemctl enable zabbix-agent

最終效果




寫在最后
其實整體配置下來,感覺難度沒有那么大,由于 openEuler并不是RHEL的下游版本,所以采用dnf方式不太行,會出現(xiàn)各種缺包,大家如果有興趣可以多研究研究。