summaryrefslogtreecommitdiff
path: root/docs/system/eventhandler.rst
diff options
context:
space:
mode:
authorrebortg <github@ghlr.de>2019-03-24 21:37:17 +0100
committerrebortg <github@ghlr.de>2019-03-24 21:37:17 +0100
commitbf751eb317f6f5b41c8a2bf775af085ca05f37d6 (patch)
tree8200f52ec2ec213145240732216e365356b9efeb /docs/system/eventhandler.rst
parent5d6ab100a482ae2b0efbc5cc544cc6c700f723f8 (diff)
downloadvyos-documentation-bf751eb317f6f5b41c8a2bf775af085ca05f37d6.tar.gz
vyos-documentation-bf751eb317f6f5b41c8a2bf775af085ca05f37d6.zip
add system event-handler
Diffstat (limited to 'docs/system/eventhandler.rst')
-rw-r--r--docs/system/eventhandler.rst48
1 files changed, 48 insertions, 0 deletions
diff --git a/docs/system/eventhandler.rst b/docs/system/eventhandler.rst
new file mode 100644
index 00000000..6204abcc
--- /dev/null
+++ b/docs/system/eventhandler.rst
@@ -0,0 +1,48 @@
+.. _event-handler:
+
+Event Handler
+-------------
+
+Event handler allows you to execute scripts when a string that matches a regex appears in a text stream (e.g. log file).
+
+It uses "feeds" (output of commands, or a named pipes) and "policies" that define what to execute if a regex is matched.
+
+.. code-block:: sh
+
+ system
+ event-handler
+ feed <name>
+ description <feed description>
+ policy <policy name>
+ source
+ preset
+ syslog # Use the syslog logs for feed
+ custom
+ command <command to execute> # E.g. "tail -f /var/log/somelogfile"
+ named-pipe <path to a names pipe>
+ policy <policy name>
+ description <policy description>
+ event <event name>
+ description <event description>
+ pattern <regex>
+ run <command to run>
+
+In this small example a script runs every time a login failed and an interface goes down
+
+.. code-block:: sh
+
+ vyos@vyos# show system event-handler
+ feed Syslog {
+ policy MyPolicy
+ source {
+ preset syslog
+ }
+ }
+ policy MyPolicy {
+ description "Test policy"
+ event BadThingsHappened {
+ pattern "authentication failure"
+ pattern "interface \.* index \d+ .* DOWN.*"
+ run /config/scripts/email-to-admin
+ }
+ } \ No newline at end of file