3. 快速搭建Zabbix
3.1. 官方文檔:點(diǎn)這里
image-20200817222548186.png
上面的是選擇安裝方式,但是并沒有proxy-server的安裝方式,我們后面會(huì)講一下
image-20200817222702312.png
下面是一個(gè)選擇界面,通過選擇不同的組合,下面會(huì)生成對(duì)應(yīng)的安裝方式。
3.2. 安裝數(shù)據(jù)庫
在新版中依然是MySQL或者PgSQL作為數(shù)據(jù)庫,但是文檔中沒有寫數(shù)據(jù)庫的安裝。
一般來說,這兩種數(shù)據(jù)庫的集群模式都是主備的模式,如果我們借助第三方工具可以實(shí)現(xiàn)主主模式,但是如果我們有大量的服務(wù)器的話(幾千臺(tái))還是建議選擇主備,主主模式如果同步不及時(shí),就會(huì)影響數(shù)據(jù)的一致性。
如果想要減輕服務(wù)器的負(fù)擔(dān),可以考慮讀寫分離的方式,寫請(qǐng)求全部去zabbix-server的主服務(wù)器去做,讀請(qǐng)求全部分配到zabbix-server的備份服務(wù)器去做。
這個(gè)說來簡單,實(shí)現(xiàn)的方式有兩種,一種是在負(fù)載均衡器,比如:nginx上做,但是nginx的負(fù)載均衡是沒有辦法區(qū)分GET,PUT和UPDATE請(qǐng)求的,我們需要借助LUA插件來實(shí)現(xiàn),或者干脆使用openresty。另外一種是讓zabbix-server在連接數(shù)據(jù)庫的時(shí)候,選擇不同的庫,zabbix-server的采集或者拉取功能全部去主庫,而zabbix-server和grafana集成做展示的時(shí)候,讓另外一臺(tái)zabbix-server去備庫拿信息。
image-20200817225122944.png
當(dāng)然,這個(gè)方式還有個(gè)要求,那就是高可用的要求,也就是說,我們還是需要借助nginx,只不過我們?cè)趗pstream的時(shí)候會(huì)選擇一個(gè)機(jī)器作為backup機(jī)器,只有當(dāng)主機(jī)器down了的時(shí)候,我們才會(huì)去backup機(jī)器。
我們這里選擇的是CentOS8作為操作系統(tǒng),默認(rèn)的CentOS8可以使用PgSQL10作為默認(rèn)的版本,但是他也支持9.6和12版本
$ dnf module list postgresql
上次元數(shù)據(jù)過期檢查:0:23:14 前,執(zhí)行于 2020年08月17日 星期一 10時(shí)35分00秒。
CentOS-8 - AppStream
Name Stream Profiles Summary
postgresql 9.6 client, server [d] PostgreSQL server and client module
postgresql 10 [d] client, server [d] PostgreSQL server and client module
postgresql 12 client, server [d] PostgreSQL server and client module
提示:[d]默認(rèn),[e]已啟用,[x]已禁用,[i]已安裝
【d】表示默認(rèn),也就是版本10,如果想要安裝版本12,需要執(zhí)行
$ dnf install @postgresql:12
我們把contrib包也裝上,這里面是一些工具
$ dnf install postgresql-contrib
然后初始化一下,主要是為了創(chuàng)建數(shù)據(jù)文件,如果我們做壞了,直接刪除數(shù)據(jù)文件,再初始化一下就好了
$ postgresql-setup initdb
啟動(dòng)PgSQL,并且配置開機(jī)啟動(dòng)
$ systemctl start postgresql
$ systemctl enable postgresql
3.3. 安裝zabbix
配置repo
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
安裝組件
$ dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-agent
這里要注意,zabbix網(wǎng)站在國內(nèi)訪問時(shí)非常不穩(wěn)定,有可能在選擇對(duì)應(yīng)的環(huán)境之后,下面的文檔沒有及時(shí)變化,一定要看好安裝的包,這里安裝的包如下:
- zabbix-server-pgsql:zabbix-server主程序,如果是mysql版本的話名字叫zabbix-server-mysql
- zabbix-web-pgsql:zabbix-server的web界面,如果是mysql版本的話叫zabbix-web-mysql
- zabbix-nginx-conf: zabbix的nginx配置,由于zabbix的界面是php的,且會(huì)使用fpm模式,所以nginx需要額外配置一下,如果是apache的叫zabbix-apache-cong
- zabbix-agent:這個(gè)就是agent了,在被監(jiān)控端只安裝這個(gè)就好了
3.4. 配置數(shù)據(jù)庫
官網(wǎng)上是用sudo的方式來做的
# sudo -u postgres createuser --pwprompt zabbix
# sudo -u postgres createdb -O zabbix zabbix
# zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix
我這里是用root直接登錄,所以命令變成了
[root@zabbix ~]# su - postgres -c "createuser --pwprompt zabbix"
Enter password for new role: # 這里輸入zabbix
Enter it again: # 重復(fù)輸入zabbix
[root@zabbix ~]# su - postgres -c "createdb -O zabbix zabbix"
導(dǎo)入表結(jié)構(gòu)
# su - zabbix -c "zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | psql"
連到數(shù)據(jù)庫看一下表是不是都導(dǎo)入成功了
# su - zabbix -c "psql"
zabbix=> \c zabbix;
zabbix=> \d
List of relations
Schema | Name | Type | Owner
--------+----------------------------+----------+--------
public | acknowledges | table | zabbix
public | actions | table | zabbix
public | alerts | table | zabbix
public | application_discovery | table | zabbix
public | application_prototype | table | zabbix
注意:這里的schema名字叫public,我們后面會(huì)用到
然后需要修改下pg_hba.conf文件,配置psql的訪問權(quán)限
# TYPE DATABASE USER ADDRESS METHOD
# zabbix
local zabbix zabbix md5 # <= 這行是新加的
host zabbix zabbix 127.0.0.1/32 md5 # <= 這行是新加的
# "local" is for Unix domain socket connections only
local all all peer
注意:一定要加在上面,因?yàn)檫@個(gè)文件是從上到下讀取的,如果加在下面,就會(huì)被前面的規(guī)則匹配到,我們新加的就不生效了,然后需要重啟數(shù)據(jù)庫systemctl restart postgresql
3.5. 配置zabbix
修改/etc/zabbix/zabbix_server.conf文件
DBPassword=zabbix #改成剛才配置數(shù)據(jù)庫的時(shí)候配置的密碼
配置/etc/nginx/conf.d/zabbix.conf, 把下面兩行的#取消注釋并且配置成我們需要的
listen 80;
server_name example.com;
配置/etc/php-fpm.d/zabbix.conf,改成我們的時(shí)區(qū)
php_value[date.timezone] = Asia/Shanghai
啟動(dòng)服務(wù)并且設(shè)置為開機(jī)啟動(dòng)
systemctl restart zabbix-server zabbix-agent nginx php-fpm
systemctl enable zabbix-server zabbix-agent nginx php-fpm
檢查一下端口,這個(gè)時(shí)候zabbix-server和fpm的端口沒有,我們需要在后面的圖形界面中配置
netstat -untlp
0.0.0.0:80 <= # nginx的監(jiān)聽
0.0.0.0:10050 <= # zabbix-agent的監(jiān)聽
127.0.0.1:5432 <= # 數(shù)據(jù)庫的監(jiān)聽
3.6. 圖形界面配置
輸入我們剛才在nginx中配置的server_name,http://zabbix.jormun.com,就可以看到歡迎界面了。

如果是使用yum安裝的,基本不會(huì)有啥問題
image-20200818071855331.png
這邊只需要填寫密碼zabbix,然后會(huì)報(bào)錯(cuò),報(bào)錯(cuò)后會(huì)讓我們輸入schema的名字
image-20200818140016260.png
host這里改成機(jī)器的名字,防止后面日志報(bào)錯(cuò)
image-20200818140139023.png
確認(rèn)無誤
image-20200818140206637.png
配置成功
image-20200818140240830.png
使用默認(rèn)的用戶名和密碼登錄 Admin/zabbix
image-20200818140502450.png
新版的zabbix就長這個(gè)樣子了
image-20200818140607229.png
為了方便大家學(xué)習(xí),請(qǐng)大家加我的微信,我會(huì)把大家加到微信群(微信群的二維碼會(huì)經(jīng)常變)和qq群821119334,問題答案云原生技術(shù)課堂,有問題可以一起討論
-
個(gè)人微信
640.jpeg -
騰訊課堂
640-20200506145837072.jpeg -
微信公眾號(hào)
640-20200506145842007.jpeg 專題講座
2020 CKA考試視頻 真題講解 https://www.bilibili.com/video/BV167411K7hp
2020 CKA考試指南 https://www.bilibili.com/video/BV1sa4y1479B/
2020年 5月CKA考試真題 https://mp.weixin.qq.com/s/W9V4cpYeBhodol6AYtbxIA