前言


zabbix是一個基於WEB介面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。
zabbix元件主要分兩個: zabbix-server和zabbix-agent。支援的監控協議有ICMP,IPMI,SNMP,HTTP以及zabbix協議(zabbix協議是最常使用的協議用來監控各被監控端)。
收集的資料存放在資料庫中,資料庫支援mysql,oracle等等。
第三個元件:zabbix web gui這個介面提供web頁面來監控和管理各被監控端。
第四個元件:zabbix proxy(實現分散式監控專用元件非必要元件,被監控伺服器超過一千以上可以使用此元件。)

本次實驗邏輯架構如下

 相關元件介紹

zabbix_get程序去客戶端收集資料,
zabbix_agentd程序通過監聽在一個套接字上接收
zabbix_get的請求,通過zabbix_sender將
資料收集傳送給伺服器端,資料儲存在zabbix資料庫中,
zabbix_get這種方法主要用於測試,通過寫指令碼或遠端執行命令的方式。
zabbix server自己自動會週期性的去被監控端收集資料,收集哪些資料在伺服器端事先定義。
zabbix server ,zabbix database,zabbix web gui 可以部署在一臺伺服器上,為了提升效能可以放在不同主機上。

zabbix一些常用術語

host(主機):要監控的網路裝置,可由IP或DNS名稱指定
host group(主機組):主機的邏輯容器,可以包含主機和模板,但同一個組內的主機和模板不能互相連結;主機組通常在給使用者或使用者組指派監控許可權時使用(大致瞭解下就可以了)。
item(監控項):這個從名字上可以理解,具體要監控哪些指標由它定義。
trigger(觸發器):就是超過了定義的合理範圍,這傢伙就會報警。
event(事件):這都是觸發器產生的。
action(動作):對事件如何應對,比如要執行哪些操作。
escalation(報警升級):如果在定義的5分鐘沒反應,從warning級別升到high級別,就是要提醒別人要儘快處理。
media(媒介):傳送報警的手段和通道,如Email。
remote command(遠端命令):預定義的命令,可在被監控主機處於某個特定條件下時自動執行。
template(模板):用於快速定義被監控主機的預設條目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可以直接連結至單個主機。(這個概念不理解不過沒關係的,只要具體會怎麼操作就可以了)
application(應用):一組item的集合。
以上術語的關係可以用下圖表示(大致明白就行):

上圖中的poller這個程序就是去各客戶端獲取資料的。
zabbix產生的資料主要由四部分組成:
配置資料(忽略)
歷史資料:50bytes
歷史趨勢資料: 128bytes
事件資料:130bytes
歷史資料:取樣生成的資料
歷史趨勢資料:每小時的最大值、最小值、平均值、統計
通過對以上資料的計算,可以得出我們需要一個多大的zabbix資料庫,來定製磁碟硬體。
具體演算法:
假設有60000個監控項,那每秒中處理的資料就有60000/60=1000條
歷史資料大小=天數X每秒鐘處理的資料量X24X3600X50Bytes
趨勢資料:
每一個趨勢128Bytes,
大小=天數X監控項X24X128Bytes
事件資料:
每個佔據130Bytes
大小:天數X86400X130(假設每秒中產生一個事件)

本次實驗的zabbix軟體版本 

裝下面這個版本,紅框內選中的

http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/

實驗所需機器3臺,系統環境如下

3臺機器,一臺做zabbix-server,一臺作為zabbix-agent,一臺作為zabbix-proxy

[root@linux-node1 ~]# uname -rm
2.6.32-504.el6.x86_64 x86_64
[root@linux-node1 ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)
[root@linux-node1 ~]#

  

安裝zabbix相關包


複製連結地址,下載wget
noarch表明與處理器無關,src是原始碼包需要編譯
執行如下命令,在Zabbix Server和Zabbix Agent上

mkdir /tools -p
cd /tools/
wget http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm

檢視這個包安裝了哪些

[root@linux-node1 tools]# rpm -ql zabbix-release
/etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
/etc/yum.repos.d/zabbix.repo
/usr/share/doc/zabbix-release-2.4
/usr/share/doc/zabbix-release-2.4/GPL
[root@linux-node1 tools]#

它建立了一個zabbix.repo檔案

[root@linux-node1 tools]# cat /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/2.4/rhel/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX [zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/6/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
[root@linux-node1 tools]#

  

Zabbix Server伺服器安裝如下包

[root@linux-node1 tools]# yum install zabbix zabbix-server zabbix-web zabbix-server-mysql  zabbix-web-mysql  zabbix-agent -y
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
Package zabbix-2.4.8-1.el6.x86_64 already installed and latest version
Package zabbix-server-2.4.8-1.el6.x86_64 already installed and latest version
Package zabbix-web-2.4.8-1.el6.noarch already installed and latest version
Package zabbix-server-mysql-2.4.8-1.el6.x86_64 already installed and latest version
Package zabbix-web-mysql-2.4.8-1.el6.noarch already installed and latest version
Package zabbix-agent-2.4.8-1.el6.x86_64 already installed and latest version
Nothing to do
[root@linux-node1 tools]#

由於Zabbix Server把資料存到mysql裡,因此還需要安裝mysql相關包

[root@linux-node1 tools]# yum install  -y mysql-server mysql
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
Package mysql-server-5.1.73-8.el6_8.x86_64 already installed and latest version
Package mysql-5.1.73-8.el6_8.x86_64 already installed and latest version
Nothing to do
[root@linux-node1 tools]#

啟動mysqld

[root@linux-node1 tools]# /etc/init.d/mysqld start
Starting mysqld: [ OK ]
[root@linux-node1 tools]#

複製配置檔案替換預設的

[root@linux-node1 tools]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
cp: overwrite `/etc/my.cnf'? y
[root@linux-node1 tools]#

在[mysqld]模組最後加入字符集的相關引數

character-set-server = utf8
init-connect = 'SET NAMES utf8'
collation-server = utf8_general_ci

加入之後如下

[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
character-set-server = utf8
init-connect = 'SET NAMES utf8'
collation-server = utf8_general_ci

重啟mysql

[root@linux-node1 tools]# /etc/init.d/mysqld restart
Stopping mysqld: [ OK ]
Starting mysqld: [ OK ]
[root@linux-node1 tools]#

登入mysql檢視

[root@linux-node1 tools]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.73-log Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.00 sec) mysql>

官網有關於Zabbix建庫相關指令碼

MySQL
shell> mysql -uroot -p<password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>';
mysql> quit;
shell> mysql -uzabbix -p<password> zabbix < database/mysql/schema.sql
# stop here if you are creating database for Zabbix proxy
shell> mysql -uzabbix -p<password> zabbix < database/mysql/images.sql
shell> mysql -uzabbix -p<password> zabbix < database/mysql/data.sql

建庫和授權使用者操作如下

mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec) mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec) mysql> exit
Bye
[root@linux-node1 tools]#

匯入指令碼操作如下

[root@linux-node1 tools]# cd /usr/share/doc/zabbix-server-mysql-2.4.8/create/
data.sql images.sql schema.sql
[root@linux-node1 tools]# cd /usr/share/doc/zabbix-server-mysql-2.4.8/create/
[root@linux-node1 create]# ls
data.sql images.sql schema.sql
[root@linux-node1 create]# mysql -uzabbix -pzabbix zabbix <schema.sql
[root@linux-node1 create]# mysql -uzabbix -pzabbix zabbix <images.sql
[root@linux-node1 create]# mysql -uzabbix -pzabbix zabbix <data.sql
[root@linux-node1 create]#

檢查

[root@linux-node1 create]# mysql -uzabbix -pzabbix -e 'use zabbix;show tables;'
+-----------------------+
| Tables_in_zabbix |
+-----------------------+
| acknowledges |
| actions |
| alerts |
| application_template |
| applications |
| auditlog |
| auditlog_details |
| autoreg_host |
| conditions |
| config |
| dbversion |
| dchecks |
| dhosts |
| drules |
| dservices |
| escalations |
| events |
| expressions |
| functions |
| globalmacro |
| globalvars |
| graph_discovery |
| graph_theme |
| graphs |
| graphs_items |
| group_discovery |
| group_prototype |
| groups |
| history |
| history_log |
| history_str |
| history_text |
| history_uint |
| host_discovery |
| host_inventory |
| hostmacro |
| hosts |
| hosts_groups |
| hosts_templates |
| housekeeper |
| httpstep |
| httpstepitem |
| httptest |
| httptestitem |
| icon_map |
| icon_mapping |
| ids |
| images |
| interface |
| interface_discovery |
| item_condition |
| item_discovery |
| items |
| items_applications |
| maintenances |
| maintenances_groups |
| maintenances_hosts |
| maintenances_windows |
| mappings |
| media |
| media_type |
| opcommand |
| opcommand_grp |
| opcommand_hst |
| opconditions |
| operations |
| opgroup |
| opmessage |
| opmessage_grp |
| opmessage_usr |
| optemplate |
| profiles |
| proxy_autoreg_host |
| proxy_dhistory |
| proxy_history |
| regexps |
| rights |
| screens |
| screens_items |
| scripts |
| service_alarms |
| services |
| services_links |
| services_times |
| sessions |
| slides |
| slideshows |
| sysmap_element_url |
| sysmap_url |
| sysmaps |
| sysmaps_elements |
| sysmaps_link_triggers |
| sysmaps_links |
| timeperiods |
| trends |
| trends_uint |
| trigger_depends |
| trigger_discovery |
| triggers |
| user_history |
| users |
| users_groups |
| usrgrp |
| valuemaps |
+-----------------------+
[root@linux-node1 create]#

  

  

配置檔案修改


修改apache相關配置

zabbix Server預設用的apache,安裝Zabbix Server時,它自動幫我們裝好了apache
修改apache配置檔案裡zabbix.conf檔案的時區,並取消註釋。這裡可以vim修改,也可以採用sed替換

[root@linux-node1 conf.d]# cd /etc/httpd/conf.d/
[root@linux-node1 conf.d]# ls
mod_dnssd.conf php.conf README welcome.conf zabbix.conf
[root@linux-node1 conf.d]# grep -n timezone zabbix.conf
19: # php_value date.timezone Europe/Riga
[root@linux-node1 conf.d]# vim zabbix.conf
[root@linux-node1 conf.d]# grep -n timezone zabbix.conf
19: php_value date.timezone Asia/Shanghai
[root@linux-node1 conf.d]#

檢視下相關配置

這裡配置檔案裡帶的預設的跳轉,Alias這一行,也就是zabbix預設程式碼的目錄
[root@linux-node1 conf.d]# head -10 zabbix.conf
#
# Zabbix monitoring system php web frontend
# Alias /zabbix /usr/share/zabbix <Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Order allow,deny

看看都有哪些東西

到這個目錄下ls一下,看到都是php程式碼。zabbix前端都是php寫的
它的server端是c和c++寫的

[root@linux-node1 conf.d]# cd /usr/share/zabbix/
[root@linux-node1 zabbix]# ls
acknow.php chart.php index.php report5.php
actionconf.php charts.php items.php report6.php
adm.gui.php conf js robots.txt
adm.housekeeper.php conf.import.php jsLoader.php screenconf.php
adm.iconmapping.php dashboard.php jsrpc.php screenedit.php
adm.images.php dashconf.php latest.php screens.php
adm.macros.php discoveryconf.php locale scripts_exec.php
adm.other.php discovery.php maintenance.php scripts.php
adm.regexps.php disc_prototypes.php map.php search.php
adm.triggerdisplayoptions.php events.php maps.php services.php
adm.triggerseverities.php fonts media_types.php setup.php
adm.valuemapping.php graphs.php overview.php slideconf.php
adm.workingtime.php history.php popup_bitem.php slides.php
api_jsonrpc.php host_discovery.php popup_httpstep.php srv_status.php
applications.php hostgroups.php popup_media.php styles
audio hostinventoriesoverview.php popup_period.php sysmap.php
auditacts.php hostinventories.php popup.php sysmaps.php
auditlogs.php host_prototypes.php popup_right.php templates.php
authentication.php host_screen.php popup_trexpr.php tr_comments.php
browserwarning.php hosts.php popup_usrgrp.php tr_events.php
chart2.php httpconf.php profile.php trigger_prototypes.php
chart3.php httpdetails.php proxies.php triggers.php
chart4.php httpmon.php queue.php tr_logform.php
chart5.php image.php report1.php tr_status.php
chart6.php images report2.php tr_testexpr.php
chart7.php imgstore.php report3.php usergrps.php
chart_bar.php include report4.php users.php
[root@linux-node1 zabbix]#

 

現在的版本挺智慧的,下面14到19行引數都自動加上了,以前沒有的

啟動apache
[root@linux-node1 conf.d]# /etc/init.d/httpd start
Starting httpd: [ OK ]
[root@linux-node1 conf.d]#

 

修改Zabbix Server預設配置檔案

因為zabbix存mysql資料,所以要改下server端的配置檔案,server端和mysql打交道 

[root@linux-node1 conf.d]# cd /etc/zabbix/
[root@linux-node1 zabbix]# ls
web zabbix_agentd.conf zabbix_agentd.d zabbix_server.conf
[root@linux-node1 zabbix]# vim zabbix_server.conf

  

修改DBHost 和DBName

使用者名稱和密碼

通過瀏覽器安裝配置zabbix-server


瀏覽器裡輸入如下連結

http://10.0.1.161/zabbix

看到如下介面進行安裝

點選下一步,所有條件都滿足
它在檢測一些依賴,注意當前的數值必須是mysql才行,時間時區也要對

埠是0,0就是預設的3306

test Ok next

給它起個名字zabbix,這是是可選的。預設埠就是10051

summary

上面所有的操作都是建立了下面配置檔案,並寫進去

點選Finish自動跳轉到了登入介面

預設的使用者名稱是Admin,密碼是zabbix

登入成功,第一件事就是改密碼

zabbix  server 還沒執行,上面提示說明這個前端頁面不僅僅訪問資料庫,還訪問zabbix  server

[root@linux-node1 zabbix]# /etc/init.d/zabbix-server start
Starting Zabbix server: [ OK ]
[root@linux-node1 zabbix]#

  

Zabbix Server本身也要監控自己

接下來執行一個agent端,先修改agent配置檔案

vim /etc/zabbix/zabbix_agentd.conf

啟動agent

[root@linux-node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
[root@linux-node1 ~]# /etc/init.d/zabbix-agent start
Starting Zabbix agent: [ OK ]
[root@linux-node1 ~]#

  

zabbix的web介面介紹


一些儀表盤解釋

目前有0個主機啟動,1個主機關閉,有38個模板(zabbix自帶的監控模板)
items 是監控項的意思,(比如cpu,記憶體 都是監控項)
triggers是觸發器,啟用的,關閉的,有故障的,ok的
Required server performance,new value 參照指標

看configuration的子項
Maintenance 是維護的意思,比如停機維護。這期間不讓它報警這臺機器

Actions 是故障了要通知,怎麼通知呢,在這裡配置
比如配置發簡訊,發郵件,還能配置讓它執行命令,比如reboot

screens是一些圖片效果
slide shows是幻燈片,比如你有3個大屏,但是隻有一個螢幕,你可以讓它來回切換
Maps 你可以做一個架構圖
Discovery 和自動化部署有關,
IT services :sla(SLA:Service-Level Agreement的縮寫,意思是服務等級協議),比如我保證網站可用率 99%。(管理體系相關)你今年的sla達標了麼等

主機組,特別簡單
下面Zabbix server顯示紅色表示這臺機器沒有監控

來到主機這裡
後面幾列是觸發器,圖形。發現的規則。做web監控的(如果返回200表示ok,不是200讓它報警)
Interface是介面
zabbix agent監聽的埠是10050埠
zabbix server監聽的是10051埠

[root@linux-node1 ~]# netstat -lntp |grep 100
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 5846/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 5692/zabbix_server
tcp 0 0 :::10050 :::* LISTEN 5846/zabbix_agentd
tcp 0 0 :::10051 :::* LISTEN 5692/zabbix_server
[root@linux-node1 ~]#

也可以使用lsof命令檢視

[root@linux-node1 ~]# lsof -i:10050
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
zabbix_ag 5846 zabbix 4u IPv4 24785 0t0 TCP *:zabbix-agent (LISTEN)
zabbix_ag 5846 zabbix 5u IPv6 24786 0t0 TCP *:zabbix-agent (LISTEN)
zabbix_ag 5848 zabbix 4u IPv4 24785 0t0 TCP *:zabbix-agent (LISTEN)
zabbix_ag 5848 zabbix 5u IPv6 24786 0t0 TCP *:zabbix-agent (LISTEN)
zabbix_ag 5849 zabbix 4u IPv4 24785 0t0 TCP *:zabbix-agent (LISTEN)
zabbix_ag 5849 zabbix 5u IPv6 24786 0t0 TCP *:zabbix-agent (LISTEN)
zabbix_ag 5850 zabbix 4u IPv4 24785 0t0 TCP *:zabbix-agent (LISTEN)
zabbix_ag 5850 zabbix 5u IPv6 24786 0t0 TCP *:zabbix-agent (LISTEN)
zabbix_ag 5851 zabbix 4u IPv4 24785 0t0 TCP *:zabbix-agent (LISTEN)
zabbix_ag 5851 zabbix 5u IPv6 24786 0t0 TCP *:zabbix-agent (LISTEN)
zabbix_ag 5852 zabbix 4u IPv4 24785 0t0 TCP *:zabbix-agent (LISTEN)
zabbix_ag 5852 zabbix 5u IPv6 24786 0t0 TCP *:zabbix-agent (LISTEN)
[root@linux-node1 ~]# lsof -i:10051

  

 
新增對zabbix server的監控

把127.0.0.1改下。點選這裡就可以編輯它

JMX 監控jvm的
IPMI監控硬體的。監控IPMI效能比較差,經常獲取不到資料
監控項多了可能會慢,比如監控一項。溫度,就不用監控風扇了。風扇不轉了溫度肯定上來了
Proxy:表示zabbix支援分散式的。
enabled勾選的話,表示開啟監控。監控Zabbix Server,也可以不勾選,返回介面之後點選Enable

模板

填上IPMI的使用者名稱密碼就可以連線了,虛擬機器不支援IPMI,這裡就不講了

巨集
它在做snmp監控的時候用,簡單來說,就是給一個變數設定一個值

主機資產,zabbix提供了一個資產管理的功能,預設是關閉狀態,可以選manual手動填,也可以選
Automatic自動,在建立items的時候,可以把得到的值對映到資產裡面,這個功能比較雞肋,比如下面網絡卡只有兩個,我伺服器要是4個網絡卡呢

點選就啟用了

最後一欄,它現在是灰色的表示它還和agent沒通訊,它如果正常通訊了。會變綠色的
變綠的說明監控上了。變紅表示沒監控上

變綠了

application和item以及graph介紹


application類似items監控項的監控組,就是組的概念

點選右邊的items,看到如下顯示

監控間隔。60秒
歷史保留的天數7天
趨勢圖保留的天數,365天
點一下enabled就把這一項關閉了,關閉後就不監控這一項了
如果有個東西老報警。你就可以把它關閉了

滑鼠放觸發器上,看到條件表示式,每五分鐘,超過300 什麼值就報警

graphs 圖形,點進去,看到預設生成了一些

可以看到每項預設的顏色,還支援函式,avg平均啊,最小啊。等

新增node2到監控裡


在linux-node2上裝zabbix客戶端

mkdir /tools -p
cd /tools/
wget http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm
yum install zabbix-agent -y

自定義監控和圖表

zabbix服務端是不支援windows的,只有客戶端支援windows
下面地址可以下載windows客戶端監控。
它是個exe檔案,配置個zabbix.conf檔案

它有2個引數需要注意下

-c  指定配置檔案
-x  把它加入系統服務

http://www.zabbix.com/download2  

修改linux-node2的Zabbix agent配置檔案

vim /etc/zabbix/zabbix_agentd.conf

啟動agent

[root@linux-node2 tools]# /etc/init.d/zabbix-agent start
Starting Zabbix agent: [ OK ]
[root@linux-node2 tools]#

另外讓它開機啟動,可以選擇加入rc.local

[root@linux-node2 ~]# echo "/etc/init.d/zabbix-agent start" >>/etc/rc.local
[root@linux-node2 ~]#

  

  

建立一個新的主機組

如下

接著建立一個主機

host-name這裡必須寫正確的,顯示的名稱可以隨便寫,但是建議規範點

選擇模板
模板裡帶有好多監控項,觸發器,圖形。因為模板太多了。上百個,就搞成搜尋的了

搜尋linux
上面的是基於agent監控的,下面是基於snmp監控的,就不用裝agent了

模板配置完畢

 
過一會右邊會變綠的

等一會變綠色了

如果你公司伺服器都確定使用zabbix
那麼zabbix應該在裝機的時候裝上,儘量不要後期裝上(可以提前配置好dns,域名,當模板)

在監控裡檢視主機是否有資料了

選擇主機

通過拖動這裡也可以改變時間範圍,檢視歷史資料

點選這裡可以隱藏下面的Zoom時間欄

這個agent  ping  不是icmp的ping,而是通過agent ping的。agent發個請求看它返回不返回

活動記憶體,小於20M告警,觸發了

passwd檔案校驗,它檢驗檔案的md5值

每秒的上下文切換

自定義監控項並加入到監控頁面上


以上都是模板帶的監控項,如何自定義一個監控項呢
自定義監控項有2個步驟
1、改配置檔案,在裡面寫上自定義的監控項
2、web頁面加上

假設想獲取node2上當前登入的使用者數
其實這個預設模板已經有了,不管,我們通過自己方式獲取

獲取命令如下

[root@linux-node2 ~]# uptime
06:29:23 up 22 min, 1 user, load average: 0.00, 0.00, 0.00
[root@linux-node2 ~]# uptime | awk -F ' ' '{print $5}'
1
[root@linux-node2 ~]#

修改linux-node2的配置檔案

vim /etc/zabbix/zabbix_agentd.conf

修改下面地方

這個東西的寫法是這樣格式的
UserParameter=key,command

逗號隔開
保證這個key在整個系統是唯一的,command可以換成指令碼
另外這個使用者自定義的引數返回值最大是512KB,不能超過這個
UserParameter=login-user,uptime |awk -F ' ' '{print $4}'

這裡注意下,下面截圖是錯的,應該是$4

儲存,重啟

[root@linux-node2 ~]# vim /etc/zabbix/zabbix_agentd.conf
[root@linux-node2 ~]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent: [ OK ]
Starting Zabbix agent: [ OK ]
[root@linux-node2 ~]#

  

服務端測試下能否獲取這個客戶端自定義的值
zabbix-get命令。之前沒裝,補上

[root@linux-node1 ~]# zabbix_get
-bash: zabbix-get: command not found
[root@linux-node1 ~]# yum install zabbix-get -y

檢視幫助用法

[root@linux-node1 ~]# zabbix_get
usage: zabbix_get [-hV] -s <host name or IP> [-p <port>] [-I <IP address>] -k <key>
[root@linux-node1 ~]# zabbix_get --help
Zabbix get v2.4.8 (revision 59539) (20 April 2016) usage: zabbix_get [-hV] -s <host name or IP> [-p <port>] [-I <IP address>] -k <key> Options:
-s --host <host name or IP> Specify host name or IP address of a host
-p --port <port number> Specify port number of agent running on the host. Default is 10050
-I --source-address <IP address> Specify source IP address -k --key <key of metric> Specify key of item to retrieve value for -h --help Display help information
-V --version Display version number Example: zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg1]"
[root@linux-node1 ~]#

獲取方式如下

[root@linux-node1 ~]# zabbix_get -s 10.0.1.162 -k login-user
1
[root@linux-node1 ~]#

客戶端克隆一個會話,服務端繼續取值,這就是一個自定義的key,當然你裡面寫什麼都可以

[root@linux-node1 ~]# zabbix_get -s 10.0.1.162 -k login-user
2
[root@linux-node1 ~]#

get命令獲取成功,才能加。準備加到web上  

點選進去

點選Items,顯示如下

點選右上角的Create item

name可以和key不一樣,但是key必須是之前設定的,右邊select是選擇系統自帶的key

選擇獲取的資料型別

Data type 中decimal是10進位制的意思
units 是單位的意思。zabbix預設會把1000換算成1k的

如果勾選這裡,上面的數會乘以文字框裡的東西

不太重要的key建議設定5分鐘,太頻繁沒什麼用,反而引起zabbix效能下降

設定額外的時間間隔,比如白天每5分鐘獲取一次,晚上3分鐘獲取一次

下面設定了就以下面為準

把它加到一個應用裡,要麼自己寫一個,要麼選一個,這裡新建一個demo的應用

這一項和資產管理相關,它會把你獲取的某一項自動加到你選擇的資產管理裡面
隨便選一個,比如Tag

描述的東西能寫最好寫

學習建立圖形把自定義的key資料以圖形方式顯示

 

點選Add

 

 勾選

有資料了

 

點選+ 可以加入到收藏裡,然後在儀表盤檢視