監(jiān)控系列講座(十五)Zabbix5.0快速安裝

3. 快速搭建Zabbix

3.1. 官方文檔:點(diǎn)這里

image-20200817222548186.png
file

上面的是選擇安裝方式,但是并沒有proxy-server的安裝方式,我們后面會(huì)講一下

image-20200817222702312.png
file

下面是一個(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
file

當(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,就可以看到歡迎界面了。

image-20200818071805355.png
file

如果是使用yum安裝的,基本不會(huì)有啥問題

image-20200818071855331.png
file

這邊只需要填寫密碼zabbix,然后會(huì)報(bào)錯(cuò),報(bào)錯(cuò)后會(huì)讓我們輸入schema的名字

image-20200818140016260.png
file

host這里改成機(jī)器的名字,防止后面日志報(bào)錯(cuò)

image-20200818140139023.png
file

確認(rèn)無誤

image-20200818140206637.png
file

配置成功

image-20200818140240830.png
file

使用默認(rèn)的用戶名和密碼登錄 Admin/zabbix

image-20200818140502450.png
file

新版的zabbix就長這個(gè)樣子了

image-20200818140607229.png
file

為了方便大家學(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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容