配置zabbix已使用內存更準確和可用內存使用率

說明:

[root@coolnull ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          995        785        209          0          6         92
-/+ buffers/cache:        686        308
Swap:          478        200        278

可用內存:Available memory=free+buffers+cached,即308=209+6+92
已使用內存:Used memory=used-buffers-cached,即686=785-6-92

而在用zabbix自身的Template OS Linux模版監控服務器時,發現Used memory都偏高。這是因爲zabbix通過vm.memory.size[used]這個key獲取服務器的已使用內存(Used memory)。但vm.memory.size[used]獲取的值(如下所示爲used 785)還包含buffers、cached這部份。

buffers、cached這部份對服務器來說也是可用的。只不過linux本身是儘可能多地使用內存,只有當內存不足時纔會釋放buffers、cached空間。
vm.memory.size[available]獲取的可用內存倒是挺準確的。因此我們這邊就會修改Used memory的key值,讓總內存減去可用內存即可獲取準確的已使用內存

具體:
1. Configure|Templates|Template OS Linux,選擇Items,點擊Used memory進入配置,修改前如下圖所示
z1

 
2. 修改Type和Formula
Type選擇Calculated  #計算類型

Formula輸入(last("vm.memory.size[total]")-last("vm.memory.size[available]")),用總內存減去可用內存獲得準確的已使用內存。

z4

Formula輸入(100*last("vm.memory.size[available]")/last("vm.memory.size[total]")),用可用內存除以總內存獲得內存使用率。

zb-1.png

ZB-3.png

查看:
z3

zb-4.png

觸發器:

1. Configuration-->Templates-->Template OS Linux-->Triggers-->create trigger
Name:    free mem less 10%
Expression:    {Template OS Linux:vm.memory.free[percent].last()}<10

zb-3.png

注意:

如果items或者trigger的Status是not suppoted說明表達式可能有問題,需要檢查測試

內存不足10% 這個時候服務器其實內存資源比較緊張,可以利用這個觸發器觸發一個腳本來重啓佔用內存比較多的服務,一般服務器裏面的服務都是比較固定的,吃內存比較多的就是那幾個,可以挑幾個重啓(單實例慎用),而且最好對該服務做好監控,避免自動重啓服務腳本沒有正常啓動服務

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