萬用模板
@if ($alert-> state == 0) ℹ️恢復ℹ️ @endif
@if ($alert-> state == 1) ⚠️告警⚠️ @endif
標題:{{ $alert->title }}
規則: {{ $alert->name }}
設備名稱: {{ $alert->sysName }}
IP: {{ $alert->hostname }}
OS: {{ $alert->os }}
嚴重性: {{ $alert->severity }}
警示時間: {{ $alert->timestamp }}
@if ($alert->state == 0)
經過時間: {{ $alert->elapsed }}
@endif
運行時間: {{ $alert->uptime_short }}
設備所在位置: {{ $alert->location }}
備註: {{ $alert->notes }}
@if ($alert->faults)
@foreach ($alert->faults as $key => $value)
服務: {{ $value['service_desc'] }}
類別: {{ $value['service_type'] }}
訊息: {{ $value['service_message'] }}
參數: {{ $value['service_param'] }}
@endforeach
@Endif
1. 離線超過五分鐘 (需搭萬用模板)
SELECT * FROM devices WHERE (devices.device_id = ?) AND (devices.status = 0 && (devices.disabled = 0 && devices.ignore = 0)) = 1 AND TIME_TO_SEC(timediff(now(), last_polled)) > 300;
2. 設備重新啟動 (需搭萬用模板)
SELECT * FROM devices WHERE (devices.device_id = ?) AND devices.uptime < 300 AND (devices.disabled = 0 && devices.ignore = 0) = 1
3. Windows 記憶體使用率過高
SELECT * FROM devices,mempools WHERE (devices.device_id = ? AND devices.device_id = mempools.device_id) AND mempools.mempool_perc > 90 AND devices.os LIKE '%Windows%' AND mempools.mempool_descr REGEXP "Physical.*"
@if ($alert-> state == 0) ℹ️恢復ℹ️ @endif
@if ($alert-> state == 1) ⚠️告警⚠️ @endif
標題:{{ $alert->title }}
設備名稱: {{ $alert->sysName }}
IP: {{ $alert->hostname }}
嚴重性: {{ $alert->severity }}
運行時間: {{ $alert->uptime_short }}
@if ($alert->state == 0)
經過時間: {{ $alert->elapsed }}
@endif
警示時間: {{ $alert->timestamp }}
設備所在位置: {{ $alert->location }}
備註: {{ $alert->notes }}
設備名稱: {{ $alert->sysName }}
@foreach ($alert->faults as $key => $value)
描述: {{ $value['mempool_descr'] }}
使用率: {{ $value['mempool_perc'] }}%
大小: {{ number_format(round(($value['mempool_total']/2**30),2,PHP_ROUND_HALF_DOWN),2) }} GB
已使用: {{ number_format(round(($value['mempool_used']/2**30),2,PHP_ROUND_HALF_DOWN),2) }} GB
未使用: {{ number_format(round(($value['mempool_free']/2**30),2,PHP_ROUND_HALF_DOWN),2) }} GB
@endforeach
4. Windows 磁碟空間不足
SELECT * FROM devices,storage WHERE (devices.device_id = ? AND devices.device_id = storage.device_id) AND storage.storage_perc > 90 AND devices.os LIKE '%Windows%'
@if ($alert-> state == 0) ℹ️恢復ℹ️ @endif
@if ($alert-> state == 1) ⚠️告警⚠️ @endif
標題:{{ $alert->title }}
設備名稱: {{ $alert->sysName }}
IP: {{ $alert->hostname }}
嚴重性: {{ $alert->severity }}
運行時間: {{ $alert->uptime_short }}
@if ($alert->state == 0)
經過時間: {{ $alert->elapsed }}
@endif
警示時間: {{ $alert->timestamp }}
設備所在位置: {{ $alert->location }}
備註: {{ $alert->notes }}
設備名稱: {{ $alert->sysName }}
@foreach ($alert->faults as $key => $value)
磁碟: {{ $value['storage_descr'] }}
容量: {{ number_format($value['storage_size']/1073741824,2) }} GB
使用率: {{ $value['storage_perc'] }}%
使用: {{ number_format($value['storage_used']/1073741824,2) }} GB
剩餘: {{ number_format($value['storage_free']/1073741824,2) }} GB
@endforeach
5. VMware ESXI 記憶體使用超過 85%
SELECT * FROM devices,mempools WHERE (devices.device_id = ? AND devices.device_id = mempools.device_id) AND mempools.mempool_perc > 85 AND devices.os LIKE '%VMware%' AND mempools.mempool_descr REGEXP "Real.*"
@if ($alert-> state == 0) ℹ️恢復ℹ️ @endif
@if ($alert-> state == 1) ⚠️告警⚠️ @endif
標題:{{ $alert->title }}
設備名稱: {{ $alert->sysName }}
IP: {{ $alert->hostname }}
嚴重性: {{ $alert->severity }}
運行時間: {{ $alert->uptime_short }}
@if ($alert->state == 0)
經過時間: {{ $alert->elapsed }}
@endif
警示時間: {{ $alert->timestamp }}
設備所在位置: {{ $alert->location }}
備註: {{ $alert->notes }}
設備名稱: {{ $alert->sysName }}
@foreach ($alert->faults as $key => $value)
描述: {{ $value['mempool_descr'] }}
使用率: {{ $value['mempool_perc'] }}%
大小: {{ number_format(round(($value['mempool_total']/2**30),2,PHP_ROUND_HALF_DOWN),2) }} GB
已使用: {{ number_format(round(($value['mempool_used']/2**30),2,PHP_ROUND_HALF_DOWN),2) }} GB
未使用: {{ number_format(round(($value['mempool_free']/2**30),2,PHP_ROUND_HALF_DOWN),2) }} GB
@endforeach
6. VMware ESXI 儲存空間不足
SELECT * FROM devices,storage WHERE (devices.device_id = ? AND devices.device_id = storage.device_id) AND storage.storage_perc > 90 AND devices.os LIKE '%VMware%'
@if ($alert-> state == 0) ℹ️恢復ℹ️ @endif
@if ($alert-> state == 1) ⚠️告警⚠️ @endif
標題:{{ $alert->title }}
設備名稱: {{ $alert->sysName }}
IP: {{ $alert->hostname }}
嚴重性: {{ $alert->severity }}
運行時間: {{ $alert->uptime_short }}
@if ($alert->state == 0)
經過時間: {{ $alert->elapsed }}
@endif
警示時間: {{ $alert->timestamp }}
設備所在位置: {{ $alert->location }}
備註: {{ $alert->notes }}
設備名稱: {{ $alert->sysName }}
@foreach ($alert->faults as $key => $value)
磁碟: {{ $value['storage_descr'] }}
容量: {{ number_format($value['storage_size']/1073741824,2) }} GB
使用率: {{ $value['storage_perc'] }}%
使用: {{ number_format($value['storage_used']/1073741824,2) }} GB
剩餘: {{ number_format($value['storage_free']/1073741824,2) }} GB
@endforeach
7. 網路流量異常告警
先找到想要監控的Port ID,可以去裝置→連接埠→點進去想要監控的埠→網址的位置就可以找到Port ID。
設定告警
ports.ifInOctets_rate 為流入的速率 (LibreNMS 已經先除以8了)
ports. ifOutOctets_rate 為流出速率 (LibreNMS 已經先除以8了)
速率計算方式 = X * 1024 * 1024 / 8
10M = 10 * 1024 * 1024 / 8 = 1310720
40M = 40 * 1024 * 1024 / 8 = 5242880
網路流量告警範本
設備名稱:{{ $alert->sysName }}
位置:{{ $alert->location }}
嚴重性:{{ $alert->severity }}
@if ($alert->state == 0) 已用時間:{{ $alert->elapsed }} @endif
時間戳:{{ $alert->timestamp }}
@foreach ($alert->faults as $key => $value)
端口:{{ $value['ifName'] }}
描述:{{ $value['ifDescr'] }}
In 速率:{{ $value['ifInOctets_rate']*8/1048576 }} Mbit/s
Out 速率:{{ $value['ifOutOctets_rate']*8/1048576 }} Mbit/s
In 速率:{{ round(($value['ifInOctets_rate']*8/1048576),2,PHP_ROUND_HALF_DOWN) }} Mbit/s
Out 速率:{{ round(($value['ifOutOctets_rate']*8/1048576),2,PHP_ROUND_HALF_DOWN) }} Mbit/s
In 原始數值:{{ $value['ifInOctets_rate'] }}
Out 原始數值:{{ $value['ifOutOctets_rate'] }}
@endforeach
告警效果
您好,我想咨询下关于交换路由设备端口带宽的报警规则,实在是搞不懂,能否指导!
请问是要针对物理接口的连接速率还是实际流量进行告警呢?
针对实际的流量,例如实际流量大于40Mbps的时候给我发送报警,显示设备信息带宽实际大小等信息!
没问题,设定方式整理好后在mail给您,留言区没办法放图片比较难说明。
好的,十分感谢您的无私支持呢!感谢感谢!
您好,设定方式已经mail给您,网站也有同步更新。
mail已收到,再次感谢!
您好,能有办法把速率显示缩短到小数点后2-3位吗?
對value進行四捨五入就可以了喔。
In 速率:{{ round(($value[‘ifInOctets_rate’]*8/1048576),2,PHP_ROUND_HALF_DOWN) }} Mbit/s
Out 速率:{{ round(($value[‘ifOutOctets_rate’]*8/1048576),2,PHP_ROUND_HALF_DOWN) }} Mbit/s
请问下面的万用规则是哪里出错了吗,添加进去报错
@if ($alert->state == 1) ❌ [警报] @endif
@if ($alert->state == 2) 🔎 [警报已查看] {{ $alert->alert_notes }} @endif
@if ($alert->state == 3) ♻️ [部分恢復] @endif
@if ($alert->state == 4) ❗ [恶化] @endif
@if ($alert->state == 0) ✅ [恢复] @endif
设 备: {{ $alert->sysName }}
IP 地址: {{ $alert->hostname }}
说 明: {{ $alert->description }}
系 统: {{ $alert->os }}
服 务: {{ $value[‘service_desc’] }}
类 别: {{ $value[‘service_type’] }}
讯 息: {{ $value[‘service_message’] }}
程 度: {{ $alert->severity }}
@if ($alert->state == 0)经 过: {{ $alert->elapsed }} @endif
警示时间: {{ $alert->timestamp }}
持续时间: {{ $alert->uptime_short }}
I D: {{ $alert->uid }}
规 则: @if ($alert->name){{ $alert->name }} @else {{ $alert->rule }} @endif
备 注: {{ $alert->notes }}
@endforeach
@Endif
能否帮忙更正,万分感谢!
报错内容
Template failed to be parsed, please check the syntax. syntax error, unexpected token “endforeach”, expecting end of file (View: /opt/librenms/storage/framework/v
多了”@endforeach”這行。
新的缩短小数点2为的添加后导致无法正常调用模板,直接用的系统默认的模板,大佬可以看下呢!
您好,想請教一下,
設定好之後,設備若發生異常,好像沒辦法即時通知,大概會慢個2-3分鐘才會發通知..
這部份能調整嗎~
再麻煩指點指點,謝謝
您好,以下設定供您參考,警報→警報規則→編輯規則→將”Main”裡面的”Delay”設定為”0″即可立即通知。
感謝大大回覆~
參照您的建議修改,一樣無法發生異常時即時發送警報..
參照大大設備斷線設定操作,將設備關機後,約3-5分鐘才會收到警報通知..
您好,那就要修改輪詢時間librenms預設是五分鐘輪詢一次。
這個修改要在哪裡調整呢?
再麻煩大大指點指點..
感激不盡
您好,需將以下幾個調整為您所需要的秒數(建議最少為一分鐘)。
1. 設定→輪詢器→分散式輪詢器→修改”Poller Frequency (Warning!) (Seconds)”為您要的秒數。
2. 設定→輪詢器→RRDTool 設定→變更 rrd 間距值 (預設 300)。
3. 修改”cron”排程裡面的”poller-wrapper.py”這個項目。
以下資料供您參考:
1 Minute Polling – LibreNMS Docs
感謝大大無私分享與解說!!!
參考大大提供資訊,已改為1分鐘偵測~
您好,將Main裡面的第二個選項選為”Import from”並在裡面隨便填入東西,是代表隨意調選項,最主要是由Advanced,自訂的SQL Query來判斷?
1.例如:使用「設備重新啟動」的”Import from”應該如何選擇才能搭配成功
以下是用內建範本參數
devices.uptime less 300
marcos.device equal yes
您好,Override SQL 開啟後,就會從自訂的 SQL Query 做判斷。
依照建議已完成 SQL Query的自訂設定,謝謝經驗分享。
在 libreNMS 網頁介面 Create new alert rule 點 Import from 下拉選單,點選 SQL query,在彈跳視窗中輸入您提供的 SQL 內容,按下送出後,都會出現「Your query could not be parsed」的提示訊息,請問該如何使用您的檢測條件呢?謝謝。
將Main裡面的第二個選項選為”Import from”並在裡面隨便填入東西,再到Advanced,把Override SQL選成On,然後Query填入自訂的SQL Query。