十五週五次課

19.7 zabbix的主動模式和被動模式

  • 主動或者被動是相對客戶端來講的

  • 被動模式,服務端會主動連接客戶端獲取監控項目數據,客戶端被動地接受連接,並把監控信息傳遞給服務端,服務端請求以後,客戶端接受到請求以後,才把相應的數據彙報給服務中心

  • 主動模式,客戶端會主動把監控數據彙報給服務端,服務端只負責接收即可。

    • 定義完策略之後,到達定義的時間以後,就會主動彙報數據給服務中心,比如系統的負載,網絡的網卡流量等
  • 當客戶端數量非常多時,建議使用主動模式,這樣可以降低服務端的壓力。

  • 服務端有公網ip,客戶端只有內網ip,但卻能連外網,這種場景適合主動模式

19.8 添加監控主機

  • 客戶端配置並啓動了zabbix-agent服務,
    • 操作環境
    • 下面就到監控中心(即web瀏覽器下去配置具體的機器和監控的項目)
  1. 在web頁面配置添加監控主機,選擇 配置 ,在選擇 主機羣組 ,去添加主機羣

十五週五次課

  1. 配置下的一些集合
  • 主機羣組,就是給機器建立一些組,然後在組裏面建立一些機器;
  • 模板,就是一些監控項目的集合,預設的
  • 主機,裏面現在有 zabbix server,也就是我們的監控中心,但監控中心沒有起zabbix agent,沒有啓動agent,就沒有辦法去採集數據的,所以是停用的狀態(若想啓動 ,就需要啓動 zabbix agent 服務)
  1. 添加一個主機(因爲在客戶端已經安裝啓動了zabbix agent)
  2. 再添加主機之前,首先 添加一個 主機羣組

十五週五次課

  • 寫上 組的名字 ——>點擊 添加即可;
    • 有其他需求的時候,可以增加父級羣組,從其他主機的羣組中選擇

十五週五次課

  1. 然後再點 主機 ——> 點擊 創建主機(主機名稱和可見名稱都寫hf-02)
  • 根據順序,填寫
      1. 主機名,在客戶機上zabbix配置文件裏面已經配置好的
      1. 可見名稱,重複寫上主機名,或者一個便於識別的名字
      1. 添加所屬羣組,選中羣組,點擊向左的箭頭添加,或者3.1手動寫一個新羣組名稱
      1. 添加客戶端IP地址,DNS是用來 解析IP地址使用的,因爲我們做的是實驗,所以就免去這一項,4.1連接方式,IP還是DNS,端口填寫對應的agent客戶端端口(端口默認是10050)
      1. 添加,完成監控主機添加

十五週五次課

  1. 定義主動和被動模式,在 監控項 裏定義
  2. 在定義完主機後看到 應用集、監控項、觸發器、自動發現規則、web場景
  • 應用集:應用集就是監控項的集合,應用集的目的是爲了更方便的去管理監控項
  • 監控項:監控的項目
  • 觸發器:就是針對某一個項目,設置的一個告警規則
  • 圖形:相關數據的圖表化
  • 自動發現規則:自動抓取機器的兩個信息,並生產圖片和觸發器一個是文件系統,另一個網卡
  • web場景:用於監控web站點

19.9添加自定義模板

  • 可以自定義一個常用模板,方便給新增主機添加監控項目
  • 自定義aming模板
  • 把其他自帶模板裏面的某些監控項目(比如cpu、內存等)複製到aming模板裏
  • 定義觸發器
  • 添加圖形
  • 自動發現,找到Template OS Linux,點擊右側的自動發現,參考Mounted filesystem discovery和Network interface discovery定義規則
  • 可以直接導出、導入模板,然後再刪除不需要的對象
  1. 在 配置 中的 模板,選擇創建模板

十五週五次課

  1. 模板的名字自定義,這裏叫做myserver,模板歸屬在模板的組裏,或者鏈接到其他的模板

十五週五次課

  1. 剛添加的myserver模板,它下面 沒有 應用集、監控項、觸發器、自動發現規則、web場景,所有都爲空的
  2. 現在給myserver增加一些監控項目,在自帶的模板裏面找一些,比如在Template OS Linux 模板裏面找一些監控項

  3. 在Template OS Linux的監控項裏選擇一些,然後選擇複製

十五週五次課

  1. 然後複製到到 myserver 模板裏面去

十五週五次課

  1. 這時再來查看 myserver模板裏面就有了剛複製的幾個監控項

十五週五次課

  1. 並且觸發器、圖形、聚合圖形、自動發現、web監測都可以使用同樣的方法拷貝到myserver模板下面去
  2. 但自動發現,在磁盤的使用率,網卡自動發現特別方便,想把這兩項拷貝到myserver模板裏面去,但是選中後,會看到並沒有複製的按鈕

  3. 這時若想搬 磁盤的使用率,網卡 這兩項,有兩種方法
  • 方法一:
    • 直接把這個模板導出,會生成一個 .xml 的文件,然後去編輯這個文件,編輯的時候需要仔細的去查看,刪除掉,最後只剩下自動發現這兩項,然後再把編輯後的 .xml文件在導入(在導入之前需要更改文件的名稱,否則會出錯)——>工作量比較大,比較麻煩,導入的時候還容易出錯
    • PS:不推薦使用
  • 方法二:
    • 先把myserver模板裏面的監控項刪除
    • 這時myserver模板是空的,選擇myserver模板點擊進去,然後選擇 鏈接的模板 ,點選擇

十五週五次課

  • 然後選擇拷貝的模板,這裏選擇的是 Template OS Linux

十五週五次課

  • 然後在選擇 添加,否則是無法保存的
  • 然後點擊 更新

十五週五次課

  • 在更新之後,會看到myserver模板裏面有了應用集、監控項、圖形、自動發現等

十五週五次課

  • 這時若是想刪除裏面的監控項等其他的,會發現無法刪除,是因爲監控項是在原來的模板裏,只能在原來的模板裏面刪除
  • 若就想刪除鏈接過來的監控項,方法打開myserver模板,點進去,選擇鏈接的模板,會看到取消鏈接和取消鏈接並管理

    • 取消鏈接,僅僅只會把鏈接取消,但並不會把應用集、監控項等給清空掉
    • 取消鏈接並管理,就會把裏面的所有給清空
  • 這時點取消鏈接,然後點更新,會看到lmyserver模板裏面依舊存在這些,不同的是監控項、應用集等裏面沒有鏈接模板的名字了

  • 這時再來刪除就沒有問題了,再刪除的時候 只能先刪除監控項,才能刪除應用集
    • 應用集包含了監控項
  • 刪除監控項,會看到 提示 監控項已刪除 ,很順利的就刪除掉了

  • 刪除應用集,只要 右側監控項 有數字的都得留着,沒有數字的監控項都可以刪除

  • 此時這個模板配置完成,而且沒有鏈接任何的模板

    19.10 處理圖形中的亂碼

設置爲中文後,zabbix圖形的中文文字會顯示小方框 這是因爲在zabbix的字體庫中沒有中文字體,需要從windows上拷貝一個過來
vim /usr/share/zabbix/include/defines.inc.php //搜索ZBX_FONTPATH, 它定義的路徑是“fonts”,它是一個相對路徑,絕對路徑/usr/share/zabbix/fonts,而字體文件爲“ZBX_GRAPH_FONT_NAME”所定義的“graphfont”,它是一個文件,絕對路徑爲/usr/share/zabbix/fonts/graphfont, windows字體路徑爲“C:\Windows\Fonts\”,找到“simfang.ttf”(其實就是那個仿宋簡體),先把它複製到桌面上,然後上傳到linux的/usr/share/zabbix/fonts/,並且改名爲graphfont.ttf

在服務端(即zabbix服務器)打開配置文件,/usr/share/zabbix/include/defines.inc.php

zabbix服務器
[root@zabbix ~]# vim /usr/share/zabbix/include/defines.inc.php
搜索 /ZBX_FONTPATH 會看到字體所在的相對路徑
define('ZBX_FONTPATH',                          realpath('fonts')); // where to search for font (GD > 2.0.18)
define('ZBX_GRAPH_FONT_NAME',           'graphfont'); // font file name  

裏面的
realpath('fonts'));   //這個爲zabbix字庫所在的路徑,使用的路勁是相對路徑,相對於/usr/share/zabbix/ 
'graphfont'); // font file name   // 這個爲字體的名字

-它定義的路徑是“fonts”,它是一個相對路徑,絕對路徑爲/usr/share/zabbix/fonts,而字體文件爲“ZBX_GRAPH_FONT_NAME”所定義的“graphfont”,它是一個文件,絕對路徑爲/usr/share/zabbix/fonts/graphfont 7. 這個目錄下的/usr/share/zabbix/fonts/graphfont.ttf文件軟鏈接到了/etc/alternatives/zabbix-web-font文件,而/etc/alternatives/zabbix-web-font文件又軟鏈接到了 /usr/share/fonts/dejavu/DejaVuSans.ttf

dejavu: dejavu爲字體的目錄
DejaVuSans.ttf:是一個字體 ,但不支持中文

[root@zabbix ~]# ls /usr/share/zabbix/fonts/
graphfont.ttf
[root@zabbix ~]# ls -l !$
ls -l /usr/share/zabbix/fonts/
總用量 0
lrwxrwxrwx 1 root root 33 2月   3 01:51 graphfont.ttf -> /etc/alternatives/zabbix-web-font
[root@zabbix ~]# ls -l /etc/alternatives/zabbix-web-font
lrwxrwxrwx 1 root root 38 2月   3 01:51 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf
[root@zabbix ~]# 

現在要做的就是將 graphfont 軟鏈接到一個支持中文帶中文的字體下面,即可
打開你windows物理機,找到C盤——>Windows——>Fonts下面找到simfang.ttf(其實就是那個仿宋簡體),先把它複製到桌面上,然後上傳到linux的/usr/share/zabbix/fonts/,並且改名爲graphfont.ttf

[root@zabbix ~]# cd /usr/share/zabbix/fonts/
[root@zabbix fonts]# ls
graphfont.ttf  SIMFANG.TTF
[root@zabbix fonts]# 

上傳到/usr/share/zabbix/fonts/目錄下後,更改原有graphfont.ttf爲.back,或者刪除掉這個文件

[root@zabbix fonts]# mv graphfont.ttf graphfont.ttf.back
[root@zabbix fonts]# 

然後把上傳的字體,做一個創建graphfont.ttf軟鏈接文件

ln -s SIMFANG.TTF graphfont.ttf

[root@zabbix fonts]# ln -s SIMFANG.TTF graphfont.ttf
[root@zabbix fonts]# ls -l
總用量 10332
lrwxrwxrwx 1 root root       11 2月   2 06:45 graphfont.ttf -> SIMFANG.TTF
lrwxrwxrwx 1 root root       33 2月   3 01:51 graphfont.ttf.back -> /etc/alternatives/zabbix-web-font
-rw-r--r-- 1 root root 10576012 6月  11 2009 SIMFANG.TTF
[root@zabbix fonts]# 

現在的zabbix調用的是graphfont.ttf,而graphfont.ttf它指向了SIMFANG.TTF
這時在瀏覽器上刷新下,會看到顯示正常,這樣就能解決圖形裏面的小方塊

還能看到CPU load一直爲0,因爲已經有數據產生了
在檢測中,有一個最新數據,在這裏主機可以選擇 主機hf-02 ,點擊應用

會看到監控的項目都有數據的,也可以選擇 右側的圖形查看

19.11 自動發現

十五週五次課
修改自動發現規則的相關數據獲取間隔
十五週五次課
然後修改數據更新間隔(秒),改成以秒計算1h
十五週五次課

配置好以後到監控中,查看自動發現

十五週五次課

在實際應用中時間間隔不要設置太短

擴展

zabbix監控交換機(思科)

要監控交換機的CPU、內存關鍵在於找到正確的OID,關於怎麼尋找OID請參考以下博文。

http://tryrus.blog.51cto.com/10914693/1788833

看這篇博文之前請確定已對zabbix的基本操作已有了解,有不明白的地方可以看我之前寫的博文。

http://tryrus.blog.51cto.com/10914693/1772271

http://tryrus.blog.51cto.com/10914693/1782062

一、配置環境

CentOS 7 Linux version 3.10.0-229.el7.x86_64

Zabbix-3.0.1

c2960s-universalk9-mz.122-55.SE5.bin

c2960s-universalk9-mz.122-55.SE3.bin

c2960-lanbasek9-mz.122-50.SE5.bin

c3750e-universalk9-mz.122-55.SE5.bin

二、CPU監控及配置trigger

2.1 要用到的OID

1.3.6.1.4.1.9.2.1.57.0 CPU utilization for one minute

1.3.6.1.4.1.9.2.1.58.0 CPU utilization for five minutes

1.3.6.1.4.1.9.2.1.56.0 CPU utilization for five seconds

2.2 創建Item

由於cisco各版本的CPU OID是一致的,所以可以新建一個模板Cisco CPU Utilization,將要監控的項在這個模板裏面建立item,最後將模板Cisco CPU Utilization加入到各類型交換機的模板中即可,這樣所有的交換機都會自動監控CPU的使用率了。

在Cisco CPU Utilization模板下建立CPU相關的三個item,CPU utilization for one minute,CPU utilization for five minutes,CPU utilization for five seconds,如下圖所示。

Name,Key 這兩項的值可以隨便填寫,但最好是像我這樣,可以很直觀的知道這個item所監控的內容

Type:SNMP v2版本

SNMP OID:相對應的OID

SNMP community:相對應的SNMP讀團體字

Units:CPU使用率,填寫百分號%

其它選項默認即可,最後的item Description填寫在思科網站上查找OID時的Description。點擊Add,完成item的創建。

十五週五次課

十五週五次課

創建cpu使用率的三個監控項後如下圖所示

十五週五次課

2.3 創建Graph

在模板Cisco CPU Utilization中,創建Graph,如下圖所示。

填寫Graph的Name,在Items選項中將剛剛創建好的三個items添加進來,點擊最後的Add,完成Graph的創建。

十五週五次課

2.4 驗證Graph

將創建好的模板Cisco CPU Utilization加入到交換機的模板中,然後可以在Monitoring-->Graphs中選擇一臺交換機,查看CPU Utilization,如下圖所示。

十五週五次課

2.5 創建Trigger

還在是模板Cisco CPU Utilization中創建Trigger,因爲所有交換機都要用到。

創建Trigger,如下圖所示。

十五週五次課

這裏比較重要的是表達式,即zabbix應該在什麼情況下使用觸發器(Trigger)向用戶報警,讓用戶知道CPU使用率異常。點擊Expression後面的Add增加表達式,如下圖所示。

Item:這裏選CPU utilization for five seconds。 CPU的實時使用率超過報警的閥值,zabbix就通過郵件報警,所以要知道CPU實時的使用率,這個是最合適的。

Function:指的是函數,有下拉列表,從下拉列表中選擇平均值大於N。

Last of(T):#3,最近三次的值

N:20 這裏填寫20,表示20%,百分號可以不用寫。這裏爲方便測試才填寫的20.

最後的表達式爲{Cisco CPU Utilization:cpuUtilization5sec.avg(#3)}>20

十五週五次課

創建完成的trigger,如下圖所示

十五週五次課

關於表達式的詳細用法及函數功能,可以參考以下兩個文檔。

https://www.zabbix.com/documentation/3.0/manual/config/triggers/expression

https://www.zabbix.com/documentation/3.0/manual/appendix/triggers/functions

2.6 驗證trigger

因爲我上面設置交換機的CPU使用率只要超過20%就會觸發trigger報警,所以在創建trigger完成後,過一分鐘左右,我的郵件就收到了下圖所示的problem郵件,說明配置已經生效。

十五週五次課

然後將閥值20%調整爲80%,過一分鐘左右後,我的郵件就收到了下圖所示的OK郵件,說明配置已重新生效。

十五週五次課

三、內存監控及配置trigger

3.1要用到的OID

.1.3.6.1.4.1.9.9.48.1.1.1.6.1 ciscoMemoryPoolFree

.1.3.6.1.4.1.9.9.48.1.1.1.5.1 ciscoMemoryPoolUsed

3.2 創建Item

同CPU使用率一樣,創建模板Cisco Memory Statistics後,在模板中創建Item ciscoMemoryPoolFree與ciscoMemoryPoolUsed,創建方法是一樣,只是內存的item不需要填寫單位。其它選項默認即可,最後的item Description填寫在思科網站上查找OID時的Description。點擊Add,完成item的創建。

十五週五次課

創建內存的兩個監控項後如下圖所示

十五週五次課

3.3 創建Graph

在模板Cisco Memory Statistics中,創建Graph,如下圖所示。

填寫Graph的Name,在Items選項中將剛剛創建好的兩個items添加進來,點擊最後的Add,完成Graph的創建。

十五週五次課

3.4 驗證Graph

將創建好的模板Cisco Memory Statistics加入到交換機的模板中,然後可以在Monitoring-->Graphs中選擇一臺交換機,查看Memory Statistics,如下圖所示。由於memory很少發生變化,所以在graph中表現爲一條橫線。

十五週五次課

3.5創建Trigger

還在是模板Cisco Memory Statistics中創建Trigger,因爲所有交換機都要用到。

創建Trigger,點擊Expression後面的Add增加表達式,如下圖所示。

十五週五次課

這裏我設置閥值爲20%,首先按上圖所示的配置,添加兩個表達式。

{Cisco Memory Statistics:ciscoMemoryPoolFree.last()}=0

{Cisco Memory Statistics:ciscoMemoryPoolUsed.last()}=0

添加完成後如下圖所示。

十五週五次課

修改上述表達式爲

{Cisco Memory Statistics:ciscoMemoryPoolFree.last()}*0.8<{Cisco Memory Statistics:ciscoMemoryPoolUsed.last()}*0.2

如下圖所示,表示空閒使用量少於20%時將觸發報警。

即A<(A+B)0.2轉化爲A0.8<B*0.2

十五週五次課

點擊最底下的Add,完成trigger的創建,完成後如下圖所示。

十五週五次課

3.6驗證trigger

Trigger配置完成後,zabbix就會對運行配置。所以在創建trigger完成後,過一分鐘左右,我的郵件就收到了下圖所示的OK郵件,說明配置已經生效。

十五週五次課

至於配置閥值爲多大時會產生PROBLEM的郵件,就留給各位看觀去測試啦~~

http://tryrus.blog.51cto.com/10914693/1789847

zabbix遠程執行命令

概述

監控,有的人只把他當做報警使用,出現問題之後打開跑回家打開電腦處理掉,大多數時候都是一些已知問題,爲何不讓zabbix幫你把這些事情處理掉呢?

Zabbix遠程執行命令可以做些什麼:

1)重啓應用(apache/nginx/mysql)。

2)自定義執行腳本。

3)使用IPMI接口重啓服務器。

4)自動釋放磁盤空間(刪除老文件,清除/tmp目錄等等)。

5)CPU過載時將一個虛擬機遷移到另外一個物理服務器。

6)雲環境下,一臺服務器CPU\硬盤\內存\其他硬件資源不足的情況下,可以自動添加過去。

Zabbix遠程執行命令注意事項:

1)遠程執行命令是server端向agent端執行,不支持主動模式的agent;

2)不支持代理模式;

3)zabbix用戶必須對命令具有執行權限,可以使用sudo賦予root權限(配置sudo無密碼方式);

4)遠程命令只是執行,執行成功與否並不檢測並確認,可在” Monitoring–>Events”中查看action執行時,或在”Reports–>Action log”中查看遠程命令是否執行成功(成功爲” Executed”)。

配置zabbix遠程執行命令

創建一個報警,記得使用郵件報警嗎?實際上,我們把發送郵件的操作改成執行遠程命令就行了。

Zabbix agent不支持遠程命令,遠程命令最大長度爲255字符,同時支持多個遠程命令,如需要執行多條命令,只需要另起一行寫命令即可,但最好自定在agent端定義一個腳本,直接讓zabbix執行腳本即可。還有,遠程命令可以使用宏變量。

1)配置zabbix-agent端

首先我們需要在zabbix agent端開啓對遠程命令的支持,修改配置文件zabbix_agentd.conf中的參數,然後重啓客戶端:

EnableRemoteCommands = 1

另外,在執行命令時確保你的zabbix用戶有執行權限,如果某些命令需要root權限,那麼請使用sudo。編輯sudoer文件,zabbix用戶便可以執行nginx -s reload命令了。

zabbix ALL=NOPASSWD: ALL

zabbix ALL=NOPASSWD: /etc/init.d/nginx stop,/etc/init.d/nginx start

2)配置zabbix-server端

ConfigurationàActionsà Operation,其中operation type改成Remote Command,然後寫上要在zabbix-agent執行的命令即可。如下圖:

Zabbix遠程執行命令

Type:IPMI、custom script、ssh、telnet、global script。

如果你要執行自定義的腳本,如下操作:

Zabbix遠程執行命令

直接執行腳本即可。
http://www.ywnds.com/?p=6610

zabbix分佈式部署

最近在研究Zabbix監控,由於機房分佈在多個城市,因此採用zabbix proxy做爲監控方案,在每

個節點部署zabbix proxy,由zabbix proxy收集agentd數據,然後將採集到的數據主動推送給zabbix

server,zabbix server將數據存入數據庫,並在WEB前端顯示。

1. Zabbix 主要功能和優劣勢說明

1.1 Zabbix 主要功能:

1)Application monitoring應用監控

數據庫/SSH/Apache/Nginx等應用程序的監控。

2)Server monitoring 服務器監控

CPU,內存,SWAP,磁盤空間,網卡流量的監控等,可以通過瀏覽器實時查看Graphs。

3)Network monitoring 網絡設備監控

支持Cisco, Juniper, 3Com等網絡設備,網絡設備通過SNMP(SNMP (v1,v2,v3) devices)協議進行監控。

4)添加自定義監控,對於Zabbix無法滿足的監控,可以添加自定義監控。

1.2 Zabbix 主要優勢:

1)安裝配置簡單,支持多種語言,包括中文。

2)系統自帶多種監控模板,可以直接使用。

3)支持分佈式部署和WEB集中管理(通過WEB頁面設置或查看報警結果)。

4)自動發現主機和網絡設備(discovery of file systems,network interfaces,hosts and

netwrok devices)。

5)WEB監控:可以監控WEB下載速度,返回碼及響應時間。

6)提供實時和歷史的監控分析數據。

7)EMAIL報警,按照故障級別|服務器類型|業務類型發送EMAIL郵件到相關負責人。

1.3 Zabbix主要劣勢:

1)需要在被監控機器上面安裝agent。

2)All configuration information都存儲在數據庫裏面,數據庫是整個監控平臺的瓶頸。

2. Zabbix分佈式部署需求分析

2.1 軟件需求

官方推薦的軟件配置

1)MySQL5.0.3 or laterRequired if MySQLis used as Zabbix back end database,InnoDB

engine isrequired.

2)PHP 5.3.0 or later

3)Apache 1.3.12 or later

2.2 硬件需求

官方推薦的最小硬件配置

wKioL1MO3dPCC61QAAFTb7sgKEg606.jpg
3. Zabbix 分佈式部署實施

3.1 分佈式部署拓撲圖

wKioL1MO3mWTO2OBAAGBuFcZYVQ871.jpg

補充說明:

當proxy部署爲主動模式(Active)時,Zabbix Server的負載最小。

1)Server:負責把數據寫入到數據庫,然後通過Apache|Nginx +php在WEB前端顯示。

2)Proxy:幫助server採集被監控端的數據,並把採集到的數據主動傳送給Server,proxy只負責數據收集。

3)Database:所有的配置信息都存儲在數據庫裏面,Zabbix server數據庫和proxy數據庫必須獨立。

4)Agent:agent的作用就是獲取host數據,然後將收集到的數據發送給server(主動模式),或者是server主動來拿取數據(被動模式)。

5)Email:通過Qmail|postfix的SMTP負責報警郵件的發送(故障郵件和故障恢復郵件)。

3.2 Zabbix 分佈式安裝部署:

1)Mysql 數據庫安裝(參照:http://sfzhang88.blog.51cto.com/4995876/900846

2)LNMP + Zabbix server 安裝(參照:http://sfzhang88.blog.51cto.com/4995876/978686

3)Zabbix proxy 安裝(略)

4)Zabbix agent 安裝

[root@www20 shell]# cat zabbix_agentd_install.sh
#!/bin/sh
#Create by sfzhang 2014.02.27
yum -y install net-snmp
yum -y install net-snmp-devel
BASE_DIR="/data/software"
TAR="zabbix-2.2.1.tar.gz"
tar -zxvf $BASE_DIR/$TAR -C$BASE_DIR
cd $BASE_DIR/zabbix-2.2.1
./configure--prefix=/usr/local/zabbix --sysconfdir=/etc/zabbix --enable-agent
make && make install
groupadd zabbix
useradd zabbix -g zabbix
cpmisc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd
chmod 700/etc/init.d/zabbix_agentd
chown zabbix.zabbix/etc/init.d/zabbix_agentd
sed -i "/BASEDIR=/s#/.*#/usr/local/zabbix#" /etc/init.d/zabbix_agentd
sed -i"s#bin/zabbix_agentd#sbin/zabbix_agentd#" /etc/init.d/zabbix_agentd
sed -i"s#Server=127.0.0.1#Server=192.168.161.129#"/etc/zabbix/zabbix_agentd.conf
sed -i"s#ServerActive=127.0.0.1#\#ServerActive=127.0.0.1#"/etc/zabbix/zabbix_agentd.conf
sed -i "/Hostname=/s#=.*#"=$HOSTNAME#""/etc/zabbix/zabbix_agentd.conf
sed -i"s#\#/tmp/zabbix_agentd.pid#/data/logs/zabbix_agentd.pid#"/etc/zabbix/zabbix_agentd.conf
sed -i"s#/tmp/zabbix_agentd.log#/data/logs/zabbix_agentd.log#"/etc/zabbix/zabbix_agentd.conf
sed -i "s#\#Timeout=3#Timeout=30#" /etc/zabbix/zabbix_agentd.conf
cat>>/etc/services<<EOF
#Zabbix services
zabbix-agent 10050/tcp#Zabbix Agent
zabbix-agent 10050/udp#Zabbix Agent
zabbix-trapper 10051/tcp#Zabbix Trapper
zabbix-trapper 10051/udp#Zabbix Trapper
EOF
/etc/init.d/zabbix_agentdstart

4 Zabbix WEB**前端配置**

4.1**配置proxy代理**

wKiom1MO4ByzCAfDAAIn-y9XOAo584.jpg

4.2 添加Groups和hosts

通常Groups按照頻道或者是WEB,MYSQL,memcache等服務類型分組的,提供相同服務的服務器分爲一組,便於後期的維護和管理。

4.3 自定義監控模板,監控項和觸發器。

5 zabbix 主要功能展示。

5.1 服務器監控

1)CPU負載監控

wKiom1MO4QOA7w7ZAAOXQJ1tSQM794.jpg

2)內存空間的監控

wKioL1MO4UDiaibCAAN1UIxVtbQ695.jpg

3) 磁盤空間的監控

wKioL1MO4YPA-5rEAADjAq75jFo687.jpg

4)交換分區的監控

wKioL1MO4byhddWhAADLw1ANY60750.jpg

5) 網卡流量的監控

wKioL1MO4fWw4HKGAAP9zMiwES8263.jpg 除此之外,還有服務器重啓的監控,添加刪除用戶時的監控,主機存活狀態的監控(ICMP ping協議)等。

5.2 )應用程序的監控

Zabbix有很多系統自帶的模板,在添加主機的時候Link相關的模板即可。

wKioL1MO4jKCn-QgAAMfK1vGjlk799.jpg

當停止主機的上面的SSH服務或者Apache服務的時候會產生報警。

wKiom1MO4mOwN88BAAD4jVhNQJQ676.jpg

5.3 )WEB Monitoring

Web Monitoring是用來監控web程序的,可以監控到web程序的下載速度、返回碼及響應時間。當返回碼不爲200的時候也可以產生報警。

wKioL1MO4mrxNLAGAAQZ6RYbORU303.jpg

5.4 )Zabbix Screens

Screen將多種信息放在一起展示,便於集中展示某個主機的監控信息。

wKiom1MO4v-wUHrsAAXqOAYol0s286.jpg

5.5 )Zabbix maps

Zabbix的maps用來圖形化顯示監控設備的拓撲圖,並且以不同的標記顯示故障事件,通過該圖表很直觀的顯示設備的整體情況。

wKiom1MO426yLlkOAAChGOcZNU8116.jpg

5.6 )Zabbix自定義監控

在實際應用當中,好多監控系統都滿足不了實際的需求,需要根據實際的需求添加自定義監控。比如說:監控應用服務器tuxedo排隊,當隊列大於2000的時候報警。監控apache,mysql鏈接數,當大於2000的時候報警等等,此時Zabbix需要藉助scripts來完成。

實例:監控http和mysql ESTABLISHED和TIME_WAIT連接數,當大於100的時候報警,並在WEB頁面實時查看連接數。

1)在要監控的服務器上面編寫Shell/python腳本,取出ESTABLISHED和TIME_WAIT連接數。

[root@monitor scripts]# catcheckservices.sh
#!/bin/sh
#Create by sfzhang 2014.02.10
ARGS=1
if [ $# -ne "$ARGS"];then
echo "Please input one arguement";
fi
case $1 in
EST_80)
result=`netstat -anp | grep :80 | grep EST | wc -l`
echo$result
;;
TIME_OUT_80)
result=`netstat-anp | grep :80 | grep TIME_WAIT | wc -l`
echo$result
;;
EST_3306)
result=`netstat -anp | grep :3306 | grep EST | wc -l`
echo $result
;;
TIME_OUT_3306)
result=`netstat -anp | grep:3306 | grep TIME_WAIT | wc -l`
echo $result
;;
EST_11211)
result=`netstat -anp | grep :11211 | grep EST | wc -l`
echo $result
;;
TIME_OUT_11211)
result=`netstat -anp | grep:11211 | grep TIME_WAIT | wc -l`
echo $result
;;
*)
echo"Usage:$0(EST_80|TIME_OUT_80|EST_3306|TIME_OUT_3306|EST_11211|TIME_OUT_11211)"
;;
esac

3)在Zabbix_agentd.conf裏面添加UserParameter,格式如下,對於Zabbix來說,腳本其實就是一個插件。

UserParameter=checkservices.sh[*],/etc/zabbix/scripts/checkservices.sh $1

重啓agentd服務器,然後在zabbix server用zabbix_get就可以取到值。

wKioL1MO5BHycEkgAAC6YaiQlQE551.jpg

4)要監控的服務器有多臺的時候,最簡單的方法是先編寫一個Templates(模板),在Link到要監控的服務器上面。

wKiom1MO5HrSortYAAK-SIUkoMk358.jpg

5)給新添加的模板Linux_service_templates添加Applications。

wKiom1MO5UDTVknFAACixKB1xCw455.jpg

6)給新添加的模板Linux_service_templates添加Items(監控項)。下面是添加http ESTABLISHED監控條目。

wKioL1MO5X6jZgirAALiMp_pLxM521.jpg

7)給新添加的模板Linux_service_templates添加Triggers(觸發器)。下面是添加 httpESTABLISHED觸發器,當連接數大於2000的時候報警,故障級別爲High。

wKiom1MO5XihYG-tAAF47LrhYNY051.jpg

8)要在WEB前端實時查看http的連接情況,必須配置Graph。在一個Graph裏面可以添加多個Item數據。

wKiom1MO5ceQypyHAAHaNTf6EOw995.jpg

9)要查看Graphs在要監控的主機上面Link剛纔的模板Linux_service_templates。

wKiom1MO5rHBxSBPAAMO2b16MXc555.jpg

10)在WEB前端查看實時連接情況。

Http連接情況:

wKioL1MO5xOwooGWAASCP7onyQw682.jpg

Mysql連接情況:

wKioL1MO54STU0yRAAQxxbAu4hc157.jpg

5.7 )Zabbix discovery

1.Network discovery

Zabbix network discovery能自動發現網絡中存活的主機,可用通過proxy代理或者Zabbix server 發現網絡中存活的主機,並按照Actions裏面定義的條件自動添加到Zabbix監控裏面。

1)首先:添加Discovery rule,可以通過proxy代理或者zabbix server添加rule。

wKioL1MO6ACgAo5XAAI5tB5e03w318.jpg

2)然後create Actions,指定Actions的Conditions,必須具備下列條件才能自動添加,Discover

rule :規則爲 Local network,system.uname的值中包含Linux,Zabbix agentd服務必須正常運行。

wKiom1MO6FPS-zRIAAI7B1ZwVyM207.jpg

3) 配置Actions的operations,將Actions裏面符合條件的主機添加到shwww組裏面並Link要監控的模板。

wKioL1MO6Fyh39XLAAI4PdtmSGs724.jpg

4)查看Discover自動發現的主機自動添加到Zabbix裏面。

wKioL1MO6N3wCpOzAAPLZ5Fp6a4621.jpg

2.Zabbix Low-level discovery

Zabbis Low-level discovery 可以自動創建監控項,觸發器和圖像的方法。Zabbix可以自動發現主機上面的文件系統或者網絡接口,不需要對每個文件系統和網絡接口手動創建監控項,觸發器和圖像。Zabbix 還可以自動刪除不需要的監控項,比如:上例當中的,當agentd宕機超過24小時的時候可以自動刪除監控,只需在action裏面配置即可。

實例:監控服務器上面所有TCP端口,就可以通過Low-level discovery輕鬆實現。

wKioL1MO6VXBLZTsAAHEV7UTXuQ153.jpg

5.8) Zabbix 報警郵件機制

1)基於業務類型發送報警郵件

當數據庫服務器出問題時發給DBA組,當系統出問題時發給System組。

wKioL1MO6ZOwR8i6AAJLQq_4Eog735.jpg

2)基於故障級別或者時間發送郵件

wKiom1MO6dHRg7m5AADG3UbBcq0057.jpg

5.9)Zabbix資產管理

Zabbix可以自動收集主機的hostname,OS,cpu信息,MAC等信息。需要在添加主機的時候開啓Host inventory Automatic功能,並按照官方手冊(https://www.zabbix.com/documentation/doku.php?id=2.0/manual/config/hosts/inventory)添加Item即可

wKiom1MO6znBW4bBAANeWU7ISK0083.jpg

5.10)Zabbix 報表功能

附錄:

1)官方在線文檔:

https://www.zabbix.com/documentation/2.2/manual/introduction

zabbix監控tomcat(包含jvm監控)

_1._前言:

我們的監控系統是zabbix,最近剛做完jvm還有tomcat的監控,需要吐槽以下內容:

  • zabbix官方提供的jvm和tomcat監控模版,存在item書寫格式的坑,導致很多內容無法獲取到監控。
  • 網友寫的zabbix監控java文章,99%就只有環境的搭建,沒有zabbix item鍵值,所以環境監控上了,item鍵值不知道怎麼寫。

本文監控jvm內容如下:

內存使用狀態: 堆內存(Heap memory)和非堆內存(No Heap memory),包括已用值、最大值、已提交;
堆內存內存池: 新生代(eden space),survivor space,老年代(old gen)的內存使用狀態;
非堆內存內存池: 代碼緩存(Code cache),元空間(meta space),壓縮類空間(compressed class space);
類加載: 加載總數,已加載,已卸載。
Java線程: 總開啓線程,活動線程,線程峯值。

本文監控tomcat內容如下:

Tomcat請求數:包括每秒請求數,每秒出錯數;
Tomcat網絡流量統計:包括進流量統計,出流量統計;
Tomcat線程: 包括最大線程數,當前線程數,當前繁忙線程數。

我沒有在zabbix中添加垃圾回收(gc)的監控,而是在catalina配置裏面添加gc日輸入來給開發進行分析,設置方式如下。

CATALINA_OPTS=”-XX:ParallelGCThreads=4 -XX:+PrintGCDetails -Xloggc:日誌存放路徑”

監控效果如下:

image001

image002

tomcat%e8%af%b7%e6%b1%82

_2._監控環境搭建

環境介紹:

[root@tomcat-01 ~]# /usr/local/tomcat/bin/version.sh

Server version: Apache Tomcat/8.0.23

Server built: May 19 2015 14:58:38 UTC

Server number: 8.0.23.0

OS Name: Linux

OS Version: 2.6.32-573.22.1.el6.x86_64

Architecture: amd64

JVM Version: 1.8.0_65-b17

JVM Vendor: Oracle Corporation

_2.1._Server端配置

1、 Zabbix server端安裝java jdk環境並開啓javaGateway支持java監控。

javaGateway 啓用方式如下:

Zabbix通過rpm包安裝:只需要安裝zabbix-java-gateway包即可。

Zabbix通過編譯安裝:在編譯時需要加上—enable-java以支持jmx監控,如果之前沒加需要重新編譯。

2、修改zabbix-java-gateway配置文件

[root@zabbix ~]# vim /etc/zabbix/zabbix_java_gateway.conf

LISTEN_IP="192.168.10.3"

LISTEN_PORT=10052

PID_FILE="/var/run/zabbix/zabbix_java.pid"

START_POLLERS=5

修改zabbix-server配置文件

[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf

JavaGateway=192.168.10.3

JavaGatewayPort=10052

StartJavaPollers=5

啓動zabbix-java-gateway服務

[root@zabbix ~]# /etc/init.d/zabbix-java-gateway start

_2.2._Tomcat服務器配置

1、下載catalina-jmx-remote.jar包,到tomcat安裝目錄下的lib目錄

wget -O /usr/local/tomcat/lib/catalina-jmx-remote.jar http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.23/bin/extras/catalina-jmx-remote.jar

2、修改catalina.sh添加如下內容

CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote

-Dcom.sun.management.jmxremote.port=8090

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false"

3、重啓tomcat

4、監控測試
(1)下載cmdline-jmxclient-0.10.3.jar文件,下載地址http://crawler.archive.org/cmdline-jmxclient/downloads.html
(2)本地執行如下命令查看tomcat的堆內存信息

[root@tomcat-01 ~]# java -jar /root/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:type=Memory HeapMemoryUsage

11/04/2016 15:23:16 +0800 org.archive.jmx.Client HeapMemoryUsage:

committed: 2146959360

init: 2147483648

max: 2146959360

used: 407611808

_3._監控數據採集

_3.1._堆內存

Tomcat本地查看堆內存信息:

[root@tomcat-01 ~]# java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=Memory HeapMemoryUsage

11/04/2016 15:36:58 +0800 org.archive.jmx.Client HeapMemoryUsage:

committed: 2145910784

init: 2147483648

max: 2145910784

used: 741540536

zabbix監控堆內存鍵值:

堆內存最大值:

 jmx["java.lang:type=Memory","HeapMemoryUsage.max"]

已用堆內存:

 jmx["java.lang:type=Memory","HeapMemoryUsage.used"]

已提交堆內存: jmx["java.lang:type=Memory","HeapMemoryUsage.committed"]

一個完整的zabbix item填寫方式如下,不同內容填寫不同的鍵值即可:

image004

_3.2._內存池eden space:

Tomcat本地查看eden space:

java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090
java.lang:type=MemoryPool,name=PS\ Eden\ Space Usage

zabbix監控eden區域鍵值:

最大空間: jmx["java.lang:type=MemoryPool,name=PS Eden Space",Usage.max]

已用空間: jmx["java.lang:type=MemoryPool,name=PS Eden Space",Usage.used]

提交空間: jmx["java.lang:type=MemoryPool,name=PS Eden Space",Usage.committed]

_3.3._內存池survivor space:

Tomcat本地查看Survivor space區域:

java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090
java.lang:type=MemoryPool,name=PS\ Survivor\ Space Usage

zabbix監控Survivor 鍵值:

jmx["java.lang:type=MemoryPool,name=PS Survivor Space",Usage.committed]

jmx["java.lang:type=MemoryPool,name=PS Survivor Space",Usage.max]

jmx["java.lang:type=MemoryPool,name=PS Survivor Space",Usage.used]

_3.4._內存池old gen:

Tomcat本地查看old gen區域使用:

java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 
java.lang:name=PS\ Old\ Gen,type=MemoryPool Usage

zabbix監控old gen鍵值:

jmx["java.lang:type=MemoryPool,name=PS Old Gen",Usage.committed]

jmx["java.lang:type=MemoryPool,name=PS Old Gen",Usage.max]

jmx["java.lang:type=MemoryPool,name=PS Old Gen",Usage.used]

_3.5._非堆內存:

Tomcat 本地查看非堆內存使用:

java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=Memory NonHeapMemoryUsag1

zabbix監控非堆內存使用

jmx["java.lang:type=Memory","NonHeapMemoryUsag.committed"]

jmx["java.lang:type=Memory","NonHeapMemoryUsag.used"]

_3.6._內存池meta space:

Tomcat 本地查看meta space區域使用:

java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:type=MemoryPool,name=Metaspace Usage

zabbix監控mete space區域鍵值

jmx["java.lang:type=MemoryPool,name=Metaspace",Usage.committed]

jmx["java.lang:type=MemoryPool,name=Metaspace",Usage.used]

_3.7._內存池code cache:

Tomcat 本地查看code cache區域使用:

java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:type=MemoryPool,name=Code\ Cache Usage

zabbix監控code cache區域使用:

jmx["java.lang:type=MemoryPool,name=Code Cache",Usage.committed]

jmx["java.lang:type=MemoryPool,name=Code Cache",Usage.max]

jmx["java.lang:type=MemoryPool,name=Code Cache",Usage.used]

_3.8._內存池compressed class space:

Tomcat 本地查看compressed class space區域使用:

java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:type=MemoryPool,name=Compressed\ Class\ Space Usage

zabbix監控 compressed class space區域使用鍵值:

jmx["java.lang:type=MemoryPool,name=Compressed Class Space",Usage.committed]

jmx["java.lang:type=MemoryPool,name=Compressed Class Space",Usage.max]

jmx["java.lang:type=MemoryPool,name=Compressed Class Space",Usage.used]

_3.9._類加載:

Tomcat本地查看類加載信息:

加載總數:java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=ClassLoading TotalLoadedClassCoun

已加載:java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=ClassLoading LoadedClassCount

已卸載:java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=ClassLoading UnloadedClassCount

Zabbix監控類加載鍵值:

加載總數: jmx["java.lang:type=ClassLoading","TotalLoadedClassCount"]

已加載:jmx["java.lang:type=ClassLoading","LoadedClassCount"]

已卸載:jmx["java.lang:type=ClassLoading","UnloadedClassCount"]

_3.10._java線程:

tomcat本地查看java線程:

總開啓線程:java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=Threading TotalStartedThreadCount

活動線程:java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=Threading PeakThreadCount

線程峯值:java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=Threading PeakThreadCount

Zabbix監控java線程鍵值:

總開啓線程:jmx["java.lang:type=Threading","TotalStartedThreadCount"]

活動線程:jmx["java.lang:type=Threading","ThreadCount"]

線程峯值:jmx["java.lang:type=Threading","PeakThreadCount"]

_3.11._tomcat線程:

本地查看tomcat線程信息:

最大線程:java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 Catalina:name=\"http-nio-8080\",type=ThreadPool maxThreads

當前線程:java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 Catalina:name=\"http-nio-8080\",type=ThreadPool currentThreadCount

繁忙線程:java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 Catalina:name=\"http-nio-8080\",type=ThreadPool currentThreadsBusy

Zabbix監控tomcat線程鍵值:

最大線程:jmx["Catalina:type=ThreadPool,name=\"http-nio-8080\"",maxThreads]

當前線程:jmx["Catalina:type=ThreadPool,name=\"http-nio-8080\"",currentThreadCount]

繁忙線程jmx["Catalina:type=ThreadPool,name=\"http-nio-8080\"",currentThreadsBusy]

_3.12._網絡流量:

Tomcat本地查看接收的字節:

接收的字節:java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 Catalina:name=\"http-nio-8080\",type=GlobalRequestProcessor bytesReceived

發送的字節:java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 Catalina:name=\"http-nio-8080\",type=GlobalRequestProcessor bytesSent

Zabbix監控tomcat接受字節鍵值:

接收的字節:jmx["Catalina:type=GlobalRequestProcessor,name=\"http-nio-8080\"",bytesReceived]

發送的字節:jmx["Catalina:type=GlobalRequestProcessor,name=\"http-nio-8080\"",bytesSent]

_3.13._tomcat請求,出錯請求:

tomcat本地查看tomcat請求數:

tomcat請求數:java -jar cmdline-jmxclient-0.10.3.jar - 192.168.10.46:8090 Catalina:name=\"http-nio-8080\",type=GlobalRequestProcessor requestCount

tomcat出錯請求: java -jar cmdline-jmxclient-0.10.3.jar - 192.168.10.46:8090 Catalina:name=\"http-nio-8080\",type=GlobalRequestProcessor errorCount

zabbix監控tomcat請求數:

tomcat請求數: jmx["Catalina:type=GlobalRequestProcessor,name=\"http-nio-8080\"",requestCount]

tomcat出錯請求:jmx["Catalina:type=GlobalRequestProcessor,name=\"http-nio-8080\"",errorCount]

_4._關於網友問題的解答

最近有網友聯繫我說,看着我的博文搭建完了環境,獲取不到數據,我幫助排查了一下,找到了問題所在,特此記錄。

網友的報錯如下:

# java -jar /root/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:9080 java.lang:type=MemoryPool,name=PS\ Eden\ Space Usag

11/11/2016 10:03:37 +0800

org.archive.jmx.Client java.lang:name=PS Eden Space,type=MemoryPool is not a registered bean

_4.1._解決思路

  • 如果你使用命令行監控獲取不到數據,那麼就先使用jconsole看看有沒有數據,如果jconsole有數據,那麼就往下看,反之檢查你的環境。

  • 如果jconsole有數據,但是命令行沒有數據,那麼就是Mbean的Object Name或者屬性有問題,網友都是複製我的,但是自己本地環境和我的環境不一樣所以導致獲取不到數據,查詢自己的本地Mbean方法有兩種,分別是圖形和命令行,網友的報錯說事自己的Eden Space空間有問題,那麼我就貼出來查看本地內存池的Object Name和屬性的方法。

(1)通過jconsole查看:

jconsole

(2)通過命令行查看:直接使用java -jar cmdline-jmxclient-0.10.3.jar – 127.0.0.1:8090命令可以獲取所有的Mbean信息,輸出太多這裏就不貼輸出結果了。我通過grep命令獲取所有內存池的監控信息方式如下。

[root@tomcat-01 ~]# java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 | grep MemoryPool

java.lang:name=Compressed Class Space,type=MemoryPool

java.lang:name=Metaspace,type=MemoryPool

java.lang:name=PS Old Gen,type=MemoryPool

java.lang:name=PS Eden Space,type=MemoryPool

java.lang:name=PS Survivor Space,type=MemoryPool

java.lang:name=Code Cache,type=MemoryPool

然後我要獲取Eden Space的所有屬性信息方式如下:(一些特殊字符需要轉義)

[root@tomcat-01 ~]# java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:name=PS\ Eden\ Space,type=MemoryPool

Attributes:

Usage: Usage (type=javax.management.openmbean.CompositeData)

PeakUsage: PeakUsage (type=javax.management.openmbean.CompositeData)

MemoryManagerNames: MemoryManagerNames (type=[Ljava.lang.String;)

UsageThreshold: UsageThreshold (type=long)

UsageThresholdExceeded: UsageThresholdExceeded (type=boolean)

UsageThresholdCount: UsageThresholdCount (type=long)

UsageThresholdSupported: UsageThresholdSupported (type=boolean)

CollectionUsageThreshold: CollectionUsageThreshold (type=long)

CollectionUsageThresholdExceeded: CollectionUsageThresholdExceeded (type=boolean)

CollectionUsageThresholdCount: CollectionUsageThresholdCount (type=long)

CollectionUsage: CollectionUsage (type=javax.management.openmbean.CompositeData)

CollectionUsageThresholdSupported: CollectionUsageThresholdSupported (type=boolean)

Valid: Valid (type=boolean)

Name: Name (type=java.lang.String)

Type: Type (type=java.lang.String)

ObjectName: ObjectName (type=javax.management.ObjectName)

Operations:

resetPeakUsage: resetPeakUsage

Parameters 0, return type=void

那麼我們在查看Eden Space空間的使用信息。就看到已經出來數據了

[root@tomcat-01 ~]# java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:name=PS\ Eden\ Space,type=MemoryPool Usage

12/03/2016 08:33:58 +0800 org.archive.jmx.Client Usage:

committed: 712507392

init: 537395200

max: 712507392

used: 396006304
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章