30分鐘zabbix入門

在公司搭建系統(tǒng)級(jí)別的監(jiān)控劲蜻,由于ELK對(duì)流量監(jiān)控存在局限——現(xiàn)有的工具只記錄了累計(jì)的流量,而無(wú)法計(jì)算每時(shí)每刻的流量考余。所以決定最后用zabbix來(lái)對(duì)網(wǎng)絡(luò)做監(jiān)控和報(bào)警先嬉,下面會(huì)從零開始記錄zabbix搭建過(guò)程中的所有步驟,希望可以給你帶來(lái)幫助楚堤。

安裝前準(zhǔn)備工作

安裝必要的軟件疫蔓,禁用SELINUX,安裝必備軟件

$ sudo setenforce 0
$ sudo sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
$ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
$ sudo yum install epel-release.noarch wget vim gcc gcc-c++ lsof chrony tree nmap unzip rsync -y
$ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

LAMP環(huán)境搭建

安裝

$ sudo yum install -y httpd mariadb mariadb-server mariadb-client php php-mysql

啟動(dòng)mysql身冬,設(shè)置開機(jī)啟動(dòng)衅胀,修改mysql密碼,注意下面的yourpassword要替換為你自己的密碼

$ sudo systemctl start mariadb.service
$ sudo systemctl enable mariadb.service #設(shè)置開機(jī)啟動(dòng) 
$ sudo mysqladmin -u root -p password yourpassword

安裝zabbix服務(wù)

$ sudo rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
$ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
$ sudo yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-get zabbix-agent

創(chuàng)建zabbix數(shù)據(jù)庫(kù)

$ mysql -uroot -p
MariaDB [(none)]> CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
MariaDB [(none)]> quit

導(dǎo)入數(shù)據(jù)

$ cd /usr/share/doc/zabbix-server-mysql-3.0.11/
$ zcat create.sql.gz | mysql -uroot -p zabbix

修改zabbix配置

注意:下面的yourpasswd請(qǐng)?zhí)鎿Q為你自己的數(shù)據(jù)庫(kù)密碼

$ sudo vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=root
DBPassword=yourpasswd

修改時(shí)區(qū)

sudo vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Chongqing

修改zabbix登錄密碼(可選)

-bash-4.2$ mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 326
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use zabbix
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [zabbix]> select userid, alias, name, passwd from users;
+--------+-------+--------+----------------------------------+
| userid | alias | name   | passwd                           |
+--------+-------+--------+----------------------------------+
|      1 | Admin | Zabbix | 5fce1b3e34b520afeffb37ce08c7cd66 |
|      2 | guest |        | d41d8cd98f00b204e9800998ecf8427e |
+--------+-------+--------+----------------------------------+
2 rows in set (0.00 sec)

MariaDB [zabbix]> update users set passwd=md5('newpassword') where userid='1';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

啟動(dòng)

$ sudo systemctl start httpd
$ sudo systemctl start zabbix-server
$ sudo systemctl start zabbix-agent

設(shè)置開機(jī)啟動(dòng)

$ sudo systemctl enable httpd
$ sudo systemctl enable zabbix-server
$ sudo systemctl enable zabbix-agent

通過(guò)http://hostname/zabbix訪問(wèn)zabbix的安裝頁(yè)面酥筝,填寫安裝信息滚躯,完成安裝。完成安裝后嘿歌,初始登錄賬戶密碼為Admin/zabbix掸掏。

安裝zabbix-agent

zabbix-server安裝好了,下面需要“接入”其他機(jī)器搅幅,將它們納入到zabbix-server的管理阅束,下面是安裝步驟

$ sudo rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
$ sudo yum install -y zabbix-agent

配置zabbix-agent

$ grep -Ev "^$|#"  /etc/zabbix/zabbix_agentd.conf
# zabbix-server
Server=192.168.8.4
# 這里選擇主動(dòng)連接zabbix-server的方式
ServerActive=192.168.8.4
# 本機(jī)的hostname
Hostname=192.168.8.5

啟動(dòng)zabbix-agent

$ sudo systemctl start zabbix-agent.service
$ sudo systemctl enable zabbix-agent.service

下面在zabbix-server頁(yè)面上添加這個(gè)機(jī)器

按下圖填寫即可


注意:中間的Agent interfaces是提供給Zabbix Server調(diào)用的接口,需確保該ip和port可以訪問(wèn)

接著綁定模板

最后點(diǎn)擊Update茄唐,你就可以在Host目錄中看到所有被監(jiān)控的機(jī)器列表

注意:如果zabbix-agent需要被其他機(jī)器調(diào)用息裸,例如通過(guò)zabbix_get獲得監(jiān)控信息,需要在防火墻設(shè)置“放開10050端口”

監(jiān)控網(wǎng)絡(luò)流量

假設(shè)我們要監(jiān)控機(jī)器192.168.8.5網(wǎng)卡em1上的出入口流量沪编,我們可以先在zabbix服務(wù)器上用zabbix_get命令來(lái)測(cè)試一下呼盆,下面代碼測(cè)試的是輸入流量,注意這里的輸出是一個(gè)累積的流量

$ zabbix_get -s  192.168.8.5  -k net.if.in[em1,bytes]
468127618

監(jiān)控網(wǎng)絡(luò)流量的流程為:

  1. 創(chuàng)建模板


  2. 創(chuàng)建監(jiān)控項(xiàng)
    創(chuàng)建應(yīng)用:Configuration->Templates->Create application



    創(chuàng)建監(jiān)控項(xiàng):Configuration->Templates->network traffic on em1->Items->Create Item

    上圖是入口流量的監(jiān)控項(xiàng)設(shè)置蚁廓,出口流量監(jiān)控項(xiàng)network traffic out em1可以一樣設(shè)置访圃,成功后你看到的是

  3. 創(chuàng)建Triggers
    Triggers是觸發(fā)報(bào)警的設(shè)置,同樣我們點(diǎn)擊Configuration->Templates->network traffic on em1->Triggers->Create trigger來(lái)創(chuàng)建Triggers


    注意在設(shè)置Expression時(shí)相嵌,我們可以利用zabbix提供給我們的模板



    于是腿时,入口流量的觸發(fā)值就設(shè)置好了况脆,每秒流量超過(guò)1048576時(shí)就會(huì)觸發(fā)報(bào)警,同理我們可以設(shè)置出口流量的觸發(fā)值批糟,成功后格了,我們看到的是

  4. 創(chuàng)建Graphs
    接著,我們?cè)賮?lái)創(chuàng)建Graphs徽鼎,Graphs可以以圖形化的方式展示流量信息盛末,點(diǎn)擊Configuration->Templates->network traffic on em1->Graphs->Create graph,創(chuàng)建Graphs的最大好處是我們可以把這些Graphs組合起來(lái)形成Screens監(jiān)控面板否淤,例如下面這樣


    下面是創(chuàng)建Graphs的表單

  5. 綁定Template
    至此悄但,我們模板就創(chuàng)建完畢了,最后一步需要把主機(jī)和模板關(guān)聯(lián)起來(lái)石抡,點(diǎn)擊Configuration->Hosts->Templates->Select創(chuàng)建關(guān)聯(lián)檐嚣,然后點(diǎn)擊Add


    此時(shí),通過(guò)Monitoring->Latest data可以看到網(wǎng)卡上的最新數(shù)據(jù)汁雷,同時(shí)可以通過(guò)Monitoring->Graphs來(lái)查看圖形化的數(shù)據(jù)

自定義script報(bào)警

當(dāng)系統(tǒng)出現(xiàn)異常時(shí)净嘀,我們需要立即發(fā)現(xiàn),并通過(guò)郵件或App的方式通知給維護(hù)的同學(xué)侠讯,這樣整個(gè)系統(tǒng)才會(huì)掌控在我們手中,Zabbix要做到這一點(diǎn)暑刃,需要配置以下3個(gè)選項(xiàng)(zabbix雖然很強(qiáng)大厢漩,但配置和UI有點(diǎn)繁瑣,這是我不喜歡它的地方):

  1. Media types
  2. Events
  3. User Media

Media types

Media types是當(dāng)產(chǎn)生事件時(shí)岩臣,以什么方式進(jìn)行通知溜嗜,這里采用的是Script方式,這種方式的靈活性最大架谎,通過(guò)這種方式炸宵,我們可以把報(bào)警發(fā)送到任何支持Webhook的App上,例如釘釘

Script這種方式的原理是:我們把可執(zhí)行的腳本放在zabbix的指定目錄下谷扣,當(dāng)事件發(fā)生時(shí)土全,zabbix會(huì)自動(dòng)調(diào)用該腳本,可以在/etc/zabbix/zabbix_server.conf中找到指定目錄的路徑

AlertScriptsPath=/usr/lib/zabbix/alertscripts

Media types設(shè)置如下会涎,意思是在/usr/lib/zabbix/alertscripts下存在一個(gè)腳本dingding.py裹匙,當(dāng)事件發(fā)生時(shí),zabbix會(huì)調(diào)用該腳本末秃,同時(shí)會(huì)傳入該腳本3個(gè)參數(shù)概页,這3個(gè)參數(shù)分別是事件的接收人、事件的主題练慕、事件的內(nèi)容

dingding.py這個(gè)腳本如下惰匙,我們先實(shí)現(xiàn)一個(gè)簡(jiǎn)單的版本技掏,也就是把這3個(gè)參數(shù)輸出到日志中

#!/usr/bin/python

import logging, sys

if __name__ == "__main__":
    logger = logging.getLogger()
    handler = logging.FileHandler("/var/log/zabbix/dingding_alert.log")
    formatter = logging.Formatter('%(asctime)s %(name)-s %(levelname)-s %(message)s')
    handler.setFormatter(formatter)
    logger.addHandler(handler)
    logger.setLevel(logging.DEBUG)

    if len(sys.argv) == 4:
        send_to = sys.argv[1]
        subject = sys.argv[2]
        content = sys.argv[3]
        logger.debug("send_to: %s" % send_to)
        logger.debug("subject: %s" % subject)
        logger.debug("content: %s" % content)
    else:
        logger.error("usage: ./dingding.py $send_to $subject $content")

設(shè)置腳本的權(quán)限

$ sudo chown zabbix.zabbix dingding.py
$ sudo chmod +x dingding.py

Events

事件是當(dāng)某個(gè)條件發(fā)生時(shí),zabbix所創(chuàng)建的報(bào)警對(duì)象项鬼。在zabbix中哑梳,事件發(fā)生時(shí)和事件恢復(fù)時(shí)都可以觸發(fā)事件,下面我們來(lái)創(chuàng)建一個(gè)事件秃臣,


可以看到涧衙,這里的事件主題和事件消息都是系統(tǒng)默認(rèn)生成的,其中包括時(shí)間產(chǎn)生時(shí)的必要信息奥此,同時(shí)我把允許事件恢復(fù)時(shí)通知(Recovery message)打了勾弧哎,Conditions標(biāo)簽頁(yè)的內(nèi)容保持不變,然后我們?cè)賮?lái)修改Operations標(biāo)簽里的內(nèi)容

這里的意思是:事件的持續(xù)時(shí)間是1個(gè)小時(shí)(3600s)稚虎,每隔2分鐘(120s)產(chǎn)生一個(gè)事件撤嫩,一共產(chǎn)生10個(gè)事件,產(chǎn)生事件時(shí)蠢终,發(fā)送給Zabbix administrators用戶組中的Admin用戶序攘,最后事件會(huì)使用我們剛剛創(chuàng)建的dingding這種Media type

User Media

事件和Media type創(chuàng)建好后,下面還需要把它們和指定用戶關(guān)聯(lián)起來(lái)寻拂,點(diǎn)擊Administration->Users->Media->Add程奠,修改后,點(diǎn)擊Update


通過(guò)以上步驟祭钉,我們已經(jīng)把zabbix的監(jiān)控和報(bào)警建立起來(lái)了瞄沙,并實(shí)操創(chuàng)建了網(wǎng)卡的流量監(jiān)控,現(xiàn)在我們把網(wǎng)絡(luò)流量的閾值調(diào)到小慌核,故意制造一個(gè)超出流量的事故距境,看一下報(bào)警是否生效,我們預(yù)期是發(fā)送10個(gè)報(bào)警垮卓,發(fā)送完畢后垫桂,我們?cè)侔验撝嫡{(diào)到正常,看下是否會(huì)收到恢復(fù)消息粟按。還記得之前寫的那個(gè)腳本嗎诬滩,它會(huì)把報(bào)警內(nèi)容輸出到日志文件中,現(xiàn)在我們檢查下日志文件

$ grep subject /var/log/zabbix/dingding_alert.log
2017-10-12 19:01:09,262 root DEBUG subject: PROBLEM: network traffic incoming on em1 > 1M on 192.168.8.5
2017-10-12 19:03:09,373 root DEBUG subject: PROBLEM: network traffic incoming on em1 > 1M on 192.168.8.5
2017-10-12 19:05:09,484 root DEBUG subject: PROBLEM: network traffic incoming on em1 > 1M on 192.168.8.5
2017-10-12 19:07:09,583 root DEBUG subject: PROBLEM: network traffic incoming on em1 > 1M on 192.168.8.5
2017-10-12 19:09:09,696 root DEBUG subject: PROBLEM: network traffic incoming on em1 > 1M on 192.168.8.5
2017-10-12 19:11:09,814 root DEBUG subject: PROBLEM: network traffic incoming on em1 > 1M on 192.168.8.5
2017-10-12 19:13:09,929 root DEBUG subject: PROBLEM: network traffic incoming on em1 > 1M on 192.168.8.5
2017-10-12 19:15:10,040 root DEBUG subject: PROBLEM: network traffic incoming on em1 > 1M on 192.168.8.5
2017-10-12 19:17:10,164 root DEBUG subject: PROBLEM: network traffic incoming on em1 > 1M on 192.168.8.5
2017-10-12 19:19:10,263 root DEBUG subject: PROBLEM: network traffic incoming on em1 > 1M on 192.168.8.5
2017-10-12 19:30:10,477 root DEBUG subject: OK: network traffic incoming on em1 > 1M on 192.168.8.5

很顯然钾怔,結(jié)果符合我們的預(yù)期碱呼。

以上便是入門zabbix的全部?jī)?nèi)容,后面的文章我們會(huì)具體實(shí)現(xiàn)dingding.py報(bào)警腳本宗侦,讓你真正的可以在手機(jī)上收到報(bào)警信息愚臀。

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市矾利,隨后出現(xiàn)的幾起案子姑裂,更是在濱河造成了極大的恐慌馋袜,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舶斧,死亡現(xiàn)場(chǎng)離奇詭異欣鳖,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)茴厉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門泽台,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人矾缓,你說(shuō)我怎么就攤上這事怀酷。” “怎么了嗜闻?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵蜕依,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我琉雳,道長(zhǎng)样眠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任翠肘,我火速辦了婚禮檐束,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘束倍。我一直安慰自己厢塘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布肌幽。 她就那樣靜靜地躺著,像睡著了一般抓半。 火紅的嫁衣襯著肌膚如雪喂急。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天笛求,我揣著相機(jī)與錄音廊移,去河邊找鬼。 笑死探入,一個(gè)胖子當(dāng)著我的面吹牛狡孔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蜂嗽,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼苗膝,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了植旧?” 一聲冷哼從身側(cè)響起辱揭,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤离唐,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后问窃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亥鬓,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年域庇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嵌戈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡听皿,死狀恐怖熟呛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情写穴,我是刑警寧澤惰拱,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站啊送,受9級(jí)特大地震影響偿短,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜馋没,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一昔逗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧篷朵,春花似錦勾怒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至腮猖,卻和暖如春鉴扫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背澈缺。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工坪创, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人姐赡。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓莱预,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親项滑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子依沮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Zabbix簡(jiǎn)介 Zabbix官方網(wǎng)站Zabbix中文文檔 本文系統(tǒng)環(huán)境是CentOS7x86_64, Zabbi...
    Zhang21閱讀 7,998評(píng)論 0 37
  • 1.寫在前面 本文主要介紹的是zabbix的編譯安裝過(guò)程,包含它的基礎(chǔ)環(huán)境LNMP,雖然zabbix官方一般推薦的...
    天之藍(lán)色閱讀 2,533評(píng)論 0 16
  • 1. 安裝epel擴(kuò)展包悉抵,并升級(jí)ca證書ssl yum install -y epel-releaseyum --...
    石樂(lè)志的LK閱讀 884評(píng)論 0 0
  • Zabbix簡(jiǎn)要介紹Zabbix的監(jiān)控配置Zabbix的展示接口templates肩狂,模板macros,宏 一姥饰、Za...
    哈嘍別樣閱讀 605評(píng)論 0 3
  • 一.zabbix介紹 (1)zabbix:zabbix是一款基于web開發(fā)的分布式監(jiān)控系統(tǒng)以及企業(yè)級(jí)的網(wǎng)絡(luò)監(jiān)控的開...
    楠人幫閱讀 555評(píng)論 0 1