萬用模板
@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。
![librenms-port_id](https://yushiryu.com/wp-content/uploads/2023/07/librenms-port_id.png)
設定告警
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
![librenms-ports_rate_alert](https://yushiryu.com/wp-content/uploads/2023/07/librenms-ports_rate_alert.png)
網路流量告警範本
設備名稱:{{ $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
告警效果
![librenms-ports_rate_alert_message](https://yushiryu.com/wp-content/uploads/2023/07/librenms-ports_rate_alert_message.png)
請教 你的 sample 如 離線超過五分鐘, 這個是設定在 Alert rule ,要用 Advanced ,Override SQL 嗎?
謝謝!
是的
想請Alert rule ,要使用 Advanced ,Override SQL如何啟用跟使用
您好,想请教一下
我这边想使用email发送告警,我看到默认的寄件人为librenms的邮箱,想问下,如果想通过email发送告警,有哪些是需要配置的?我在网络上并未搜索到相关的信息,官方文档关于这点也只是介绍禁用html界面
麻烦大佬指点下
在”报警”→”报警传送”→”Create alert transport”裡面可以新增。
抱歉,可能是我表述有问题,收件人邮件配置我是知道如何配置的,但是在设置→全局配置→警报中的电子邮件配置,这里的发件人使用的是librenms,我想知道关于收件人的配置方式,这里我没有找到关于这里的配置,我配置了新的邮箱,但是无法生效,这里是需要在底层配置吗,希望大佬指点下
在”设置→全局配置→警报中的电子邮件配置”,裡面的SMTP等資訊有設定對嗎?
“Use HTML emails” 可開可不開。
“How to deliver mail” 選 SMTP。
“From name”
“From email address”
“SMTP Server”
“SMTP port setting”
“SMTP timeout setting”
“Encryption”
“Auto TLS support”
“SMTP authentication”
“SMTP Auth username”
“SMTP Auth password”
以上幾項SMTP的設定請依照您的電子郵件服務供應商提供的資訊填入。
已经搞定,是我复制错了,流量提醒没问题,感谢大佬!