Skip to main content

LibreNMS CPU使用率監控警報

新增警報規則

Severity:警報等級

Max alert :最多通知幾次

Delay :延遲多久再來通知

Interval :通知間隔

Transports:選擇傳送類別

範例使用CPU>70%持續10分鐘發出警報

image.pngimage.png

由於多核心CPU預設一顆CPU觸發就會警報,故修改使用平均使用率計算

官方解決範本https://docs.librenms.org/Alerting/Rules/#advanced,不過有GROUP語法錯誤告警

以下為自訂修改版本搭配警報範本使用,Override SQL記得開啟

image.pngimage.png

SELECT 
    devices.device_id, 
    devices.hostname, 
    devices.status, 
    devices.disabled, 
    devices.ignore, 
    AVG(processors.processor_usage) AS cpu_avg, 
	   MIN(processor_descr) AS processor_descrcpu_avg
FROM devices 
INNER JOIN processors ON devices.device_id = processors.device_id 
WHERE devices.device_id = ? 
  AND devices.status = 1 
  AND devices.disabled = 0 
  AND devices.ignore = 0 
GROUP BY 
    devices.device_id, 
    devices.hostname, 
    devices.status, 
    devices.disabled, 
    devices.ignore,processor_descrignore 
HAVING AVG(processors.processor_usage) > 70;
新增警報範本

image.pngimage.png

{{ $alert->title }}
設備名稱: {{ $alert->sysNamedisplay }} 
等級:@if {{ (!empty($alert->severity }}uptime_short))
運行時間: {{ $alert->uptime_short }}
警示@endif
@if ($alert->state == 0)
持續時間: {{ $alert->elapsed }}
恢復時間: {{ $alert->timestamp }}
@else
告警時間: {{ $alert->timestamp }}
@if ($alert->faults)
@foreach ($alert->faults as $key => $value)
CPU名稱: {{ $value['processor_descr'] }}
目前超過10分鐘CPU使用率: {{ round((float)$value['cpu_avg']) }} %
@endforeach
@endif
@endif
測試

這裡先調成>1%做測試

image.pngimage.png

image.pngimage.png