Hello, I configured librenms some weeks ago. Now I realize that my email alerts don’t work. My transport works (I can send the test mail from the webui), my rules work (I do get the alerts on the webui), I can reach my smtp server with telnet,…
When I use the script ./scrips/test-alerting.php, I don’t get errors.
./scripts/test-alert.php -r 5 -h 14 -d
SQL[SELECT alerts.id, alerts.alerted, alerts.device_id, alerts.rule_id, alerts.state, alerts.note, alerts.info FROM alerts WHERE alerts.device_id = 14 && alerts.rule_id = 5 0.34ms]
SQL[SELECT alert_log.id,alert_log.rule_id,alert_log.device_id,alert_log.state,alert_log.details,alert_log.time_logged,alert_rules.rule,alert_rules.severity,alert_rules.extra,alert_rules.name,alert_rules.query,alert_rules.builder,alert_rules.proc FROM alert_log,alert_rules WHERE alert_log.rule_id = alert_rules.id && alert_log.device_id = ? && alert_log.rule_id = ? && alert_rules.disabled = 0 ORDER BY alert_log.id DESC LIMIT 1 [14,5] 2.11ms]
SQL[SELECT DISTINCT a.* FROM alert_rules a
LEFT JOIN alert_device_map d ON a.id=d.rule_id AND (a.invert_map = 0 OR a.invert_map = 1 AND d.device_id = ?)
LEFT JOIN alert_group_map g ON a.id=g.rule_id AND (a.invert_map = 0 OR a.invert_map = 1 AND g.group_id IN (SELECT DISTINCT device_group_id FROM device_group_device WHERE device_id = ?))
LEFT JOIN alert_location_map l ON a.id=l.rule_id AND (a.invert_map = 0 OR a.invert_map = 1 AND l.location_id IN (SELECT DISTINCT location_id FROM devices WHERE device_id = ?))
LEFT JOIN devices ld ON l.location_id=ld.location_id AND ld.device_id = ?
LEFT JOIN device_group_device dg ON g.group_id=dg.device_group_id AND dg.device_id = ?
WHERE a.disabled = 0 AND (
(d.device_id IS NULL AND g.group_id IS NULL AND l.location_id IS NULL)
OR (a.invert_map = 0 AND (d.device_id=? OR dg.device_id=? OR ld.device_id=?))
OR (a.invert_map = 1 AND (d.device_id != ? OR d.device_id IS NULL) AND (dg.device_id != ? OR dg.device_id IS NULL) AND (ld.device_id != ? OR ld.device_id IS NULL))
) [14,14,14,14,14,14,14,14,14,14,14] 1.02ms]
SQL[select * from devices
where device_id
= ? limit 1 [14] 0.29ms]
SQL[select * from locations
where locations
.id
= ? limit 1 [3] 0.19ms]
SQL[select * from devices_attribs
where devices_attribs
.device_id
= ? and devices_attribs
.device_id
is not null [14] 0.22ms]
RRD[lastupdate /opt/librenms/rrd/DEVICE/icmp-perf.rrd ]
SQL[select * from alert_templates
where exists (select * from alert_template_map
where alert_templates
.id
= alert_template_map
.alert_templates_id
and alert_rule_id
= ?) limit 1 [5] 0.47ms]
SQL[select * from alert_templates
where name
= ? limit 1 [“Default Alert Template”] 0.19ms]
SQL[SELECT alert_log.id,alert_log.time_logged,alert_log.details FROM alert_log WHERE alert_log.state != ? && alert_log.state != ? && alert_log.rule_id = ? && alert_log.device_id = ? && alert_log.id < ? ORDER BY id DESC LIMIT 1 [2,0,5,14,67536] 0.32ms]
SQL[UPDATE alert_log
set details
=? WHERE id = ? 0.19ms]
Reporting disabled by user setting
Issuing Alert-UID #67536/0:
SQL[SELECT rule_id
FROM alerts
WHERE id
=? [161] 0.17ms]
SQL[SELECT b.transport_id, b.transport_type, b.transport_name FROM alert_transport_map AS a LEFT JOIN alert_transports AS b ON b.transport_id=a.transport_or_group_id WHERE a.target_type=‘single’ AND a.rule_id=? UNION DISTINCT SELECT d.transport_id, d.transport_type, d.transport_name FROM alert_transport_map AS a LEFT JOIN alert_transport_groups AS b ON a.transport_or_group_id=b.transport_group_id LEFT JOIN transport_group_transport AS c ON b.transport_group_id=c.transport_group_id LEFT JOIN alert_transports AS d ON c.transport_id=d.transport_id WHERE a.target_type=‘group’ AND a.rule_id=? [5,5] 0.33ms]
:: Transport mail => SQL[select * from alert_transports
where alert_transports
.transport_id
= ? limit 1 [2] 0.18ms]
Attempting to email Device DEVICE recovered from Ping Latency to: [email protected]
OKSQL[insert into eventlog
(reference
, type
, datetime
, severity
, message
, username
, device_id
) values (?, ?, ?, ?, ?, ?, ?) [null,“alert”,“2024-08-26 14:39:38”,1,“Issued recovery for rule ‘Ping Latency’ to transport ‘mail’”,“”,14] 0.32ms]
:: Transport mail => SQL[select * from alert_transports
where alert_transports
.transport_id
= ? limit 1 [3] 0.24ms]
Attempting to email Device DEVICE recovered from Ping Latency to: [email protected]
OKSQL[insert into eventlog
(reference
, type
, datetime
, severity
, message
, username
, device_id
) values (?, ?, ?, ?, ?, ?, ?) [null,“alert”,“2024-08-26 14:39:38”,1,“Issued recovery for rule ‘Ping Latency’ to transport ‘mail’”,“”,14] 0.18ms]
:: Transport mail => SQL[select * from alert_transports
where alert_transports
.transport_id
= ? limit 1 [4] 0.18ms]
Attempting to email Device DEVICE recovered from Ping Latency to: [email protected]
OKSQL[insert into eventlog
(reference
, type
, datetime
, severity
, message
, username
, device_id
) values (?, ?, ?, ?, ?, ?, ?) [null,“alert”,“2024-08-26 14:39:38”,1,“Issued recovery for rule ‘Ping Latency’ to transport ‘mail’”,“”,14] 0.16ms]
When I use this test script, my tcpdump command (tcpdump -i any port 25 or port 465 or port 587 -vvv) finds nothing. The only special thing that I see myself is the following line: Reporting disabled by user setting. Could this be related to the problem?
Anyone an idea what the problem could be? I think it might be related to the rule triggering the transport, but in the test-alerting.php it seems like it does the trigger. Or does anyone have an idea where I can find the right logs?