環(huán)境介紹:
操作系統(tǒng):CentOS Linux release 7.6(最小化安裝,關(guān)閉selinux和firewalld)
zabbix4.0源下載地址:https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.15/zabbix-4.0.15.tar.gz/download
注:源碼安裝的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):源碼包中包含了程序的源代碼盹牧,可以根據(jù)需求修改乳蓄;并且編譯安裝時(shí)可以自定義功能和參數(shù)
缺點(diǎn):需要自行編譯安裝僚匆,安裝耗時(shí)較長(zhǎng)且容易出錯(cuò),對(duì)于環(huán)境的依賴都需要手動(dòng)解決
1、首先要安裝zabbix源碼的依賴以及一些常用工具包
yum -y install wget telnet net-tools python-paramiko gcc gcc-c++ dejavu-sans-fonts python-setuptools python-devel sendmail mailx net-snmp net-snmp-devel net-snmp-utils freetype-devel libpng-devel perl unbound libtasn1-devel p11-kit-devel OpenIPMI unixODBC libevent-devel mysql-devel libxml2-devel libssh2-devel OpenIPMI-devel java-1.8.0-openjdk-devel openldap-devel curl-devel unixODBC-devel
2河爹、然后下載并解壓zabbix的源碼包
wget?https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.15/zabbix-4.0.15.tar.gz/download
tar -xf zabbix-4.0.15.tar.gz
3璃谨、接下來(lái)要先自定義zabbix的安裝目錄沙庐,這里選擇把zabbix安裝到/usr/local目錄下
mkdir /var/local/zabbix
4、進(jìn)入到解壓后的zabbix源碼目錄里佳吞,準(zhǔn)備開始編譯安裝
cd?zabbix-4.0.15
./configure --help? ? #如果想在開始之前了解一下zabbix配置的相關(guān)參數(shù)拱雏,可以使用這個(gè)命令,下面會(huì)對(duì)此命令輸出的參數(shù)進(jìn)行補(bǔ)充說明
這里簡(jiǎn)單說一下編譯安裝的三步:
1底扳、./configure? ? #是用來(lái)檢測(cè)你的安裝平臺(tái)的目標(biāo)特征的铸抑。比如它會(huì)檢測(cè)你是不是有CC或GCC等源碼包需要的工具,這一步一般用來(lái)? ? 生成 Makefile編譯文件衷模,為下一步的編譯做準(zhǔn)備鹊汛,你可以通過在 configure 后加上參數(shù)來(lái)對(duì)安裝進(jìn)行控制
2、make? ? ? ? ? ? #是用來(lái)編譯的阱冶,它從Makefile中讀取指令刁憋,?這一步就是編譯,大多數(shù)的源代碼包都經(jīng)過這一步進(jìn)行編譯(當(dāng)然有些perl或Python編寫的軟件需要調(diào)用perl或Python來(lái)進(jìn)行編譯)熙揍。
3职祷、make install? #是用來(lái)安裝的,它也從Makefile中讀取指令,安裝到指定的位置有梆。(當(dāng)然有些軟件需要先運(yùn)行 make check 或 make test來(lái)進(jìn)行一些測(cè)試)是尖,這一步一般需要你有 root 權(quán)限(因?yàn)橐蛳到y(tǒng)寫入文件)
補(bǔ)充:configure的參數(shù)的簡(jiǎn)單說明
./configure -V? ? #查看此源碼包的版本
? ? ? ? ? ? ? ? ? -q? ? #不打印"檢查中..."的信息
? ? ? ? ? ? ? ? ? -n? ? #不創(chuàng)建輸出文件
? ? ? ? ? ? ? ? ??--prefix=PREFIX? ? #指定安裝的目錄,配置時(shí)不使用此參數(shù)的話默認(rèn)會(huì)安裝到/usr/local目錄下
注:參數(shù)中還有很多信息泥耀,比如zabbix的功能如何啟用/禁用等饺汹,太多了說不完,請(qǐng)另行查閱相關(guān)文檔
5痰催、開始configure配置相關(guān)參數(shù)
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql?--with-libxml2?--with-unixodbc?--with-net-snmp?--with-ssh2?--with-openipmi?--with-ldap?--with-libcurl --with-iconv
上述參數(shù)的解釋:
--prefix=/usr/local? ? ?# 指定zabbix的安裝目錄為/usr/local/zabbix兜辞,其實(shí)默認(rèn)的安裝目錄也是/usr/local/zabbix,這里可以省略夸溶,寫出來(lái)是方便理解逸吵,如果要把zabbix安裝到其他目錄,則必須用這個(gè)參數(shù) 注:系統(tǒng)會(huì)直接把zabbix的文件安裝到路徑最后的目錄下缝裁,不會(huì)自行創(chuàng)建zabbix目錄扫皱,所以如果路徑寫成了/usr/local,那么zabbix的文件就會(huì)在local目錄下捷绑,而不是/usr/local/zabbix目錄下
--enable-server? ? ? ? # 打開Zabbix服務(wù)器的構(gòu)建韩脑,因?yàn)槲覀円惭bzabbix的server端,所以必須打開
--enable-agent? ? ? ? ?#?打開Zabbix客戶端實(shí)用程序的構(gòu)建粹污,本機(jī)也要被監(jiān)控段多,所以也要打開客戶端的構(gòu)建
--enable-java? ? ? ? ? ?#?打開Zabbix Java網(wǎng)關(guān)的構(gòu)建,啟用java監(jiān)控
--with-mysql? ? ? ? ? ? ?# 申明后端數(shù)據(jù)庫(kù)為mysql?
--with-libxml2? ? ? ? ? ?# 使用XML庫(kù)
--with-unixodbc? ? ? ? # 數(shù)據(jù)庫(kù)鏈接采用unixodbc
--with-net-snmp? ? ? ?# 網(wǎng)絡(luò)相關(guān)監(jiān)控采用net-snmp
--with-ssh2? ? ? ? ? ? ? # 啟用ssh壮吩,執(zhí)行遠(yuǎn)程命令時(shí)會(huì)用到
--with-openipmi? ? ? ?# 硬件監(jiān)控使用openipmi
--with-ldap? ? ? ? ? ? ? ?# 啟用ldap进苍,用于ldap認(rèn)證
--with-libcurl? ? ? ? ? ? # web相關(guān)的監(jiān)控curl
--with-iconv????????????# Linux 系統(tǒng)自帶的用于轉(zhuǎn)換文件編碼的命令行工具 ,編譯源碼需要使用
6鸭叙、當(dāng)看到下面的內(nèi)容時(shí)說明沒有出錯(cuò)琅捏,成功!確認(rèn)沒有問題的話繼續(xù)下一步安裝
***********************************************************
* Now run 'make install' *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
注:此頁(yè)面往上還會(huì)有很多信息递雀,可以復(fù)查配置了哪些參數(shù),以及參數(shù)的默認(rèn)路徑(因?yàn)楸敬闻渲弥袥]有指定任何參數(shù)的路徑蚀浆,都是默認(rèn)路徑)
5缀程、configure配置成功的話,就可以開始編譯和安裝了
make? ? #這一步是編譯市俊,從configure生成的Makefile中讀取指令杨凑,全程沒有報(bào)錯(cuò)那么就代表編譯成功
make install? ? #這一步是安裝,同樣從configure生成的Makefile中讀取指令摆昧,如果上一步編譯成功的話撩满,就可以直接執(zhí)行此命令,同樣全程沒有報(bào)錯(cuò)那么就代表安裝成功
6、上述的步驟都成功的話伺帘,那么zabbix就已經(jīng)成功的安裝好了昭躺,現(xiàn)在進(jìn)入之前定義的安裝目錄就能看到zabbix軟件的相關(guān)文件了
cd /usr/local/zabbix
ls?
bin etc lib sbin share? ? #看到以下幾個(gè)目錄,則zabbix已經(jīng)成功安裝
sbin/zabbix_server -v? ? #可以看到安裝的zabbix的版本信息
zabbix_server (Zabbix) 4.0.15
Revision 992445e02c 25 November 2019, compilation time: Dec 19 2019 15:11:16?
Copyright (C) 2019 Zabbix SIA
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it according to
the license. There is NO WARRANTY, to the extent permitted by law.
7伪嫁、接下來(lái)需要安裝zabbix的后端數(shù)據(jù)庫(kù)mysql领炫,因?yàn)椴皇侵攸c(diǎn),所以這里采用yum安裝方式
wget?https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
vim /etc/yum.repos.d/mysql-community.repo? ? #將MySQL8.0的enabled=1改為0张咳;將MySQL5.7的enabled=0改為1
yum repolist
yum -y install?mysql-community-server
8帝洪、安裝完成后先直接啟動(dòng)MySQL,然后設(shè)定配置文件中控制密碼復(fù)雜度參數(shù)脚猾,然后重啟MySQL葱峡,再進(jìn)數(shù)據(jù)庫(kù)修改密碼,然后開始MySQL初始化設(shè)定
systemctl start mysqld
vim /etc/my.cnf
在[myqld]下面寫入以下兩行參數(shù)
validate_password_policy=0?
validate_password_length=6
保存退出重啟MySQL
systemctl restart mysqld
grep password /var/log/mysqld.log? ? #查詢數(shù)據(jù)庫(kù)初始隨機(jī)密碼
mysql -uroot -p'初始密碼'
alter user 'root'@'localhost' identified by '自定義新登錄密碼';
flush privileges;
9龙助、上述修改密碼操作完成后砰奕,回到linux命令行,開始初始化MySQL設(shè)置
mysql_secure_installation
Change the password for root ? ((Press y|Y for Yes, any other key for No) :? ? #是否修改root登陸密碼泌参,前面已經(jīng)修改了脆淹,所以現(xiàn)在不用
Remove anonymous users? (Press y|Y for Yes, any other key for No) :? ? #是否刪除匿名用戶
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :? ? #是否禁止root遠(yuǎn)程登錄
Remove test database and access to it? (Press y|Y for Yes, any other key for No) :? ? #是否刪除測(cè)試數(shù)據(jù)庫(kù),一般選擇是
Reload privilege tables now? (Press y|Y for Yes, any other key for No) :? ? #是否刷新權(quán)限表沽一,一般選擇是
10盖溺、初始化數(shù)據(jù)庫(kù)設(shè)置完成后,進(jìn)入數(shù)據(jù)庫(kù)铣缠,開始創(chuàng)建zabbix需要的庫(kù)烘嘱,并導(dǎo)入表結(jié)構(gòu)
mysql -uroot -p'新登錄密碼'
create database zabbix character set utf8 collate utf8_bin;? ? #創(chuàng)建zabbix庫(kù),字符集設(shè)定為utf8
grant all privileges on zabbix.* to zabbix@localhost identified by '123456';? ? #授權(quán)zabbix用戶擁有zabbix庫(kù)的所有權(quán)限蝗蛙,訪問密碼為123456
flush privileges;? ? #刷新權(quán)限表
注:源碼安裝zabbix蝇庭,zabbix自帶的表結(jié)構(gòu)在解壓的源碼包里,而不在zabbix的安裝目錄下捡硅,這一點(diǎn)要注意哮内。一共要導(dǎo)入三個(gè)文件:schema.sql、images.sql壮韭、data.sql
mysql -uzabbix -p'123456' zabbix < /root/zabbix-4.0.15/database/mysql/schema.sql
mysql -uzabbix -p'123456' zabbix < /root/zabbix-4.0.15/database/mysql/images.sql
mysql -uzabbix -p'123456' zabbix < /root/zabbix-4.0.15/database/mysql/data.sql
進(jìn)入數(shù)據(jù)庫(kù)看一下
mysql -uroot -p'密碼'
use zabbix;
show tables;
```
144 rows in set (0.00 sec)? ? #一共導(dǎo)入了144張表
11北发、表結(jié)構(gòu)導(dǎo)入好了以后,開始修改zabbix的配置文件zabbix_server.conf
vim?/usr/local/zabbix/etc/zabbix_server.conf
確保以下參數(shù)設(shè)置無(wú)誤:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
12喷屋、接下來(lái)需要自行創(chuàng)建zabbix用戶
groupadd --system zabbix? ? #創(chuàng)建zabbix用戶組琳拨,--system表示創(chuàng)建的是系統(tǒng)用戶組,權(quán)限比一般用戶大一些? ? 也可以用-r選項(xiàng)屯曹,效果相同
useradd -r -g zabbix -c zabbix zabbix? ? #創(chuàng)建zabbix用戶狱庇,-r同--system惊畏,表示創(chuàng)建的是系統(tǒng)用戶,權(quán)限比一般用戶大一些? ? -c表示定義用戶的 GECOS 字段密任,不是必須
注:賬戶的 GECOS 字段:這字段是可選的颜启,通常為了存放信息目的而設(shè)的. 通常,它包含了用戶的全名.
13批什、接下來(lái)就可以啟動(dòng)zabbix_server了
/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf? ? # -c表示指定zabbix配置文件
netstat -tunlp
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 49149/zabbix_server? ? #zabbix_server已經(jīng)啟動(dòng)并占用端口10051
vim /tmp/zabbix_server.log
Zabbix agent item "system.users.num" on host "Zabbix server" failed: first network error, wait for 15 seconds? ? #這個(gè)報(bào)錯(cuò)是因?yàn)閦abbix-agent沒有啟動(dòng)农曲,并且這里還提示了zabbix-server的主機(jī)名叫"Zabbix server"
14、接下來(lái)開始修改zabbix-agent的配置文件并啟動(dòng)zabbix-agent服務(wù)
vim /usr/local/zabbix/etc/zabbix_agentd.conf
確保以下參數(shù)無(wú)誤:
Server=127.0.0.1? ? #server端就在本機(jī)驻债,所以這里是回環(huán)地址
ServerActive=127.0.0.1? ? #server端就在本機(jī)乳规,所以這里是回環(huán)地址
Hostname=Zabbix server? ? #這里的主機(jī)名必須和上面server端的日志里zabbix-server的主機(jī)名保持一致
/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf? ? #同樣用-c指定配置文件啟動(dòng)
netstat -tunlp
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 49962/zabbix_agentd? ? #zabbix_agent已經(jīng)啟動(dòng)并占用端口10050
vim /tmp/zabbix_server.log? ? #再看一下zabbix-server的日志,會(huì)多出下面一條
enabling Zabbix agent checks on host "Zabbix server": host became available? ? #表示已經(jīng)檢測(cè)到zabbix-agent啟動(dòng)了
15合呐、接下來(lái)開始配置zabbix前端暮的,因?yàn)樯婕暗絟ttpd和php的配置,這里不是重點(diǎn)淌实,所以這里依然采用二進(jìn)制安裝
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum repolist
yum -y install zabbix-web-mysql
接下來(lái)的操作就和zabbix的二進(jìn)制安裝一模一樣了冻辩,請(qǐng)參考