mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2025-12-07 01:26:11 -08:00
work #504 - New Dev + Events filter setting⚙
This commit is contained in:
@@ -4,6 +4,9 @@ You need to specify the network interface and the network mask. You can also con
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> Please use the UI to configure settings as that ensures that the config file is in the correct format. Edit `pialert.conf` directly only when really necessary.
|
||||||
|
|
||||||
* Examples for one and two subnets (❗ Note the `['...', '...']` format):
|
* Examples for one and two subnets (❗ Note the `['...', '...']` format):
|
||||||
* One subnet: `SCAN_SUBNETS = ['192.168.1.0/24 --interface=eth0']`
|
* One subnet: `SCAN_SUBNETS = ['192.168.1.0/24 --interface=eth0']`
|
||||||
* Two subnets: `SCAN_SUBNETS = ['192.168.1.0/24 --interface=eth0', '192.168.1.0/24 --interface=eth1 -vlan=107']`
|
* Two subnets: `SCAN_SUBNETS = ['192.168.1.0/24 --interface=eth0', '192.168.1.0/24 --interface=eth1 -vlan=107']`
|
||||||
|
|||||||
@@ -27,101 +27,7 @@
|
|||||||
"params" : [
|
"params" : [
|
||||||
],
|
],
|
||||||
|
|
||||||
"settings": [
|
"settings": [
|
||||||
{
|
|
||||||
"function": "RUN",
|
|
||||||
"events": ["run"],
|
|
||||||
"type": "text.select",
|
|
||||||
"default_value":"schedule",
|
|
||||||
"options": ["disabled", "before_notification"],
|
|
||||||
"localized": ["name", "description"],
|
|
||||||
"name" :[{
|
|
||||||
"language_code":"en_us",
|
|
||||||
"string" : "When to run"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"language_code":"es_es",
|
|
||||||
"string" : "Cuándo ejecutar"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"language_code":"de_de",
|
|
||||||
"string" : "Wann laufen"
|
|
||||||
}],
|
|
||||||
"description": [{
|
|
||||||
"language_code":"en_us",
|
|
||||||
"string" : "When the Notification manipulation should happen. Usually set to <code>before_notification</code>."
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"function": "CMD",
|
|
||||||
"type": "readonly",
|
|
||||||
"default_value": "python3 /home/pi/pialert/front/plugins/notification_processing/script.py",
|
|
||||||
"options": [],
|
|
||||||
"localized": ["name", "description"],
|
|
||||||
"name": [
|
|
||||||
{
|
|
||||||
"language_code": "en_us",
|
|
||||||
"string": "Command"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"language_code": "es_es",
|
|
||||||
"string": "Comando"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"language_code": "de_de",
|
|
||||||
"string": "Befehl"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": [
|
|
||||||
{
|
|
||||||
"language_code": "en_us",
|
|
||||||
"string": "Command to run. This can not be changed"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"language_code": "es_es",
|
|
||||||
"string": "Comando a ejecutar. Esto no se puede cambiar"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"language_code": "de_de",
|
|
||||||
"string": "Befehl zum Ausführen. Dies kann nicht geändert werden"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"function": "RUN_TIMEOUT",
|
|
||||||
"type": "integer",
|
|
||||||
"default_value": 30,
|
|
||||||
"options": [],
|
|
||||||
"localized": ["name", "description"],
|
|
||||||
"name": [
|
|
||||||
{
|
|
||||||
"language_code": "en_us",
|
|
||||||
"string": "Run timeout"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"language_code": "es_es",
|
|
||||||
"string": "Tiempo límite de ejecución"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"language_code": "de_de",
|
|
||||||
"string": "Zeitüberschreitung"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": [
|
|
||||||
{
|
|
||||||
"language_code": "en_us",
|
|
||||||
"string": "Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted."
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"language_code": "es_es",
|
|
||||||
"string": "Tiempo máximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela."
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"language_code": "de_de",
|
|
||||||
"string": "Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei Überschreitung dieser Zeit wird das Skript abgebrochen."
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"function": "alert_down_time",
|
"function": "alert_down_time",
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
@@ -137,7 +43,45 @@
|
|||||||
"description": [
|
"description": [
|
||||||
{
|
{
|
||||||
"language_code": "en_us",
|
"language_code": "en_us",
|
||||||
"string": "After how many minutes a down device is reported."
|
"string": "After how many minutes a device is reported as down and a notification is sent."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"function": "new_dev_condition",
|
||||||
|
"type": "text",
|
||||||
|
"default_value": "",
|
||||||
|
"options": [],
|
||||||
|
"localized": ["name", "description"],
|
||||||
|
"name": [
|
||||||
|
{
|
||||||
|
"language_code": "en_us",
|
||||||
|
"string": "New Devices Filter"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": [
|
||||||
|
{
|
||||||
|
"language_code": "en_us",
|
||||||
|
"string": "You can specify a SQL where condition to filter out New Devices from notifications. For example <code>AND dev_LastIP NOT LIKE '192.168.3.%'</code> will always exlude New Device notifications for all devices with the IP starting with <code>192.168.3.%</code>."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"function": "event_condition",
|
||||||
|
"type": "text",
|
||||||
|
"default_value": "",
|
||||||
|
"options": [],
|
||||||
|
"localized": ["name", "description"],
|
||||||
|
"name": [
|
||||||
|
{
|
||||||
|
"language_code": "en_us",
|
||||||
|
"string": "Events Filter"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": [
|
||||||
|
{
|
||||||
|
"language_code": "en_us",
|
||||||
|
"string": "You can specify a SQL where condition to filter out Events from notifications. For example <code>AND dev_LastIP NOT LIKE '192.168.3.%'</code> will always exlude New Device notifications for all devices with the IP starting with <code>192.168.3.%</code>."
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ class Notification_obj:
|
|||||||
# Create a new DB entry if new notifications available, otherwise skip
|
# Create a new DB entry if new notifications available, otherwise skip
|
||||||
def create(self, JSON, Extra=""):
|
def create(self, JSON, Extra=""):
|
||||||
|
|
||||||
JSON, Extra = self.on_before_create(self, JSON, Extra)
|
JSON, Extra = self.on_before_create(JSON, Extra)
|
||||||
|
|
||||||
# Write output data for debug
|
# Write output data for debug
|
||||||
write_file (logPath + '/report_output.json', json.dumps(JSON))
|
write_file (logPath + '/report_output.json', json.dumps(JSON))
|
||||||
|
|||||||
@@ -61,9 +61,10 @@ def get_notifications (db):
|
|||||||
|
|
||||||
if 'new_devices' in conf.INCLUDED_SECTIONS:
|
if 'new_devices' in conf.INCLUDED_SECTIONS:
|
||||||
# Compose New Devices Section
|
# Compose New Devices Section
|
||||||
sqlQuery = """SELECT eve_MAC as MAC, eve_DateTime as Datetime, dev_LastIP as IP, eve_EventType as "Event Type", dev_Name as "Device name", dev_Comments as Comments FROM Events_Devices
|
sqlQuery = f"""SELECT eve_MAC as MAC, eve_DateTime as Datetime, dev_LastIP as IP, eve_EventType as "Event Type", dev_Name as "Device name", dev_Comments as Comments FROM Events_Devices
|
||||||
WHERE eve_PendingAlertEmail = 1
|
WHERE eve_PendingAlertEmail = 1
|
||||||
AND eve_EventType = 'New Device'
|
AND eve_EventType = 'New Device'
|
||||||
|
{get_setting_value('NTFPRCS_new_dev_condition')}
|
||||||
ORDER BY eve_DateTime"""
|
ORDER BY eve_DateTime"""
|
||||||
|
|
||||||
# Get the events as JSON
|
# Get the events as JSON
|
||||||
@@ -73,6 +74,7 @@ def get_notifications (db):
|
|||||||
"title": "New devices",
|
"title": "New devices",
|
||||||
"columnNames": json_obj.columnNames
|
"columnNames": json_obj.columnNames
|
||||||
}
|
}
|
||||||
|
|
||||||
json_new_devices = json_obj.json["data"]
|
json_new_devices = json_obj.json["data"]
|
||||||
|
|
||||||
if 'down_devices' in conf.INCLUDED_SECTIONS:
|
if 'down_devices' in conf.INCLUDED_SECTIONS:
|
||||||
@@ -105,10 +107,11 @@ def get_notifications (db):
|
|||||||
|
|
||||||
if 'events' in conf.INCLUDED_SECTIONS:
|
if 'events' in conf.INCLUDED_SECTIONS:
|
||||||
# Compose Events Section
|
# Compose Events Section
|
||||||
sqlQuery = """SELECT eve_MAC as MAC, eve_DateTime as Datetime, dev_LastIP as IP, eve_EventType as "Event Type", dev_Name as "Device name", dev_Comments as Comments FROM Events_Devices
|
sqlQuery = f"""SELECT eve_MAC as MAC, eve_DateTime as Datetime, dev_LastIP as IP, eve_EventType as "Event Type", dev_Name as "Device name", dev_Comments as Comments FROM Events_Devices
|
||||||
WHERE eve_PendingAlertEmail = 1
|
WHERE eve_PendingAlertEmail = 1
|
||||||
AND eve_EventType IN ('Connected','Disconnected',
|
AND eve_EventType IN ('Connected','Disconnected',
|
||||||
'IP Changed')
|
'IP Changed')
|
||||||
|
{get_setting_value('NTFPRCS_event_condition')}
|
||||||
ORDER BY eve_DateTime"""
|
ORDER BY eve_DateTime"""
|
||||||
|
|
||||||
# Get the events as JSON
|
# Get the events as JSON
|
||||||
|
|||||||
Reference in New Issue
Block a user