iAdd new probe write-to-file - reed-alert - Lightweight agentless alerting system for server Err bitreich.org 70 hgit clone git://bitreich.org/reed-alert/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/reed-alert/ URL:git://bitreich.org/reed-alert/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/reed-alert/ bitreich.org 70 1Log /scm/reed-alert/log.gph bitreich.org 70 1Files /scm/reed-alert/files.gph bitreich.org 70 1Refs /scm/reed-alert/refs.gph bitreich.org 70 1Tags /scm/reed-alert/tag bitreich.org 70 1README /scm/reed-alert/file/README.gph bitreich.org 70 1LICENSE /scm/reed-alert/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 13cf2712556758a985dc315ae25eea2aa7b3b0dd /scm/reed-alert/commit/13cf2712556758a985dc315ae25eea2aa7b3b0dd.gph bitreich.org 70 1parent 98918e04dc8835f5dd3c4634cbc246dc89037fe9 /scm/reed-alert/commit/98918e04dc8835f5dd3c4634cbc246dc89037fe9.gph bitreich.org 70 hAuthor: Solene Rapenne URL:mailto:solene@perso.pw bitreich.org 70 iDate: Thu, 11 Jul 2019 10:06:26 +0200 Err bitreich.org 70 i Err bitreich.org 70 iAdd new probe write-to-file Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M README | 19 +++++++++++++++++++ Err bitreich.org 70 i M example-full.lisp | 4 ++++ Err bitreich.org 70 i M example-simple.lisp | 2 ++ Err bitreich.org 70 i M probes.lisp | 14 ++++++++++++++ Err bitreich.org 70 i M test/test.lisp | 3 +++ Err bitreich.org 70 i Err bitreich.org 70 i5 files changed, 42 insertions(+), 0 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/README b/README /scm/reed-alert/file/README.gph bitreich.org 70 i@@ -370,6 +370,25 @@ Example: `(=> alert ssl-expiration :host "domain.local" :seconds 86400 :port 669 Err bitreich.org 70 i Example: `(=> alert ssl-expiration :host "smtp.domain.local" :seconds 86400 :starttls "smtp" :port 25) Err bitreich.org 70 i Err bitreich.org 70 i Err bitreich.org 70 i+write-to-file Err bitreich.org 70 i+-------------------- Err bitreich.org 70 i+Write content to a file, create it if non existent. Err bitreich.org 70 i+ Err bitreich.org 70 i+The purpose of this probe is to be used at the end of a reed-alert Err bitreich.org 70 i+script to update the modification time of a file, and use file-updated Err bitreich.org 70 i+on this file at the beginning of a script to monitor if reed-alert did Err bitreich.org 70 i+finish correctly on last run. Err bitreich.org 70 i+ Err bitreich.org 70 i+> Set the path of the file. Err bitreich.org 70 i+ :path "STRING" Err bitreich.org 70 i+ Err bitreich.org 70 i+> Set the content of the file (OPTIONAL). Err bitreich.org 70 i+ :text "STRING" (default to current time in seconds) Err bitreich.org 70 i+ Err bitreich.org 70 i+Example: `(=> alert write-to-file :path "/tmp/reed-alert.txt")` Err bitreich.org 70 i+Example: `(=> alert write-to-file :path "/tmp/reed-alert.txt" :text "hello world")` Err bitreich.org 70 i+ Err bitreich.org 70 i+ Err bitreich.org 70 i The configuration file Err bitreich.org 70 i ====================== Err bitreich.org 70 i Err bitreich.org 70 1diff --git a/example-full.lisp b/example-full.lisp /scm/reed-alert/file/example-full.lisp.gph bitreich.org 70 i@@ -19,6 +19,7 @@ Err bitreich.org 70 i ;; check if :path file exists and has been updated since :limit minutes Err bitreich.org 70 i (=> empty file-updated :path "/var/log/messages" :limit 400) Err bitreich.org 70 i (=> mail file-updated :path "/bsd.rd" :limit 1 :desc "OpenBSD kernel") ;; failure Err bitreich.org 70 i+(=> mail file-updated :path "/tmp/reed-alert.txt" :limit 10) Err bitreich.org 70 i Err bitreich.org 70 i ;; check if :path pid file process is running Err bitreich.org 70 i (=> mail pid-running :path "/var/run/xdm.pid" :desc "XDM pid") Err bitreich.org 70 i@@ -58,6 +59,9 @@ Err bitreich.org 70 i (=> mail ssl-expiration :host "freenode.net" :seconds (* 7 24 60 60)) Err bitreich.org 70 i (=> mail ssl-expiration :host "freenode.net" :seconds 1296000 :port 6697) Err bitreich.org 70 i Err bitreich.org 70 i+;; update a file modification time Err bitreich.org 70 i+(=> mail write-to-file :path "/tmp/reed-alert.txt") Err bitreich.org 70 i+ Err bitreich.org 70 i ;; we declare a new probe here Err bitreich.org 70 i (create-probe Err bitreich.org 70 i check-http-pattern Err bitreich.org 70 1diff --git a/example-simple.lisp b/example-simple.lisp /scm/reed-alert/file/example-simple.lisp.gph bitreich.org 70 i@@ -6,6 +6,7 @@ Err bitreich.org 70 i Err bitreich.org 70 i ;; this is a comment Err bitreich.org 70 i ; this is also a comment Err bitreich.org 70 i+(=> mail file-updated :path "/tmp/reed-alert" :limit 100) Err bitreich.org 70 i (=> mail disk-usage :path "/" :limit 90) Err bitreich.org 70 i Err bitreich.org 70 i (=> mail service :name "dovecot") Err bitreich.org 70 i@@ -16,3 +17,4 @@ Err bitreich.org 70 i (=> mail ping :host "bitreich.org" :desc "Ping Bitreich") Err bitreich.org 70 i (=> mail ping :host "openbsd.org" :desc "Ping OpenBSD.org") Err bitreich.org 70 i (=> mail ssl-expiration :host "freenode.net" :seconds (* 7 24 60 60) :desc "SSL IRC Freenode") Err bitreich.org 70 i+(=> mail write-to-file :path "/tmp/reed-alert") Err bitreich.org 70 1diff --git a/probes.lisp b/probes.lisp /scm/reed-alert/file/probes.lisp.gph bitreich.org 70 i@@ -140,3 +140,17 @@ Err bitreich.org 70 i "openssl x509 -inform pem -noout " Err bitreich.org 70 i (when starttls (strcat " -starttls " starttls)) Err bitreich.org 70 i " -checkend " seconds)))) Err bitreich.org 70 i+ Err bitreich.org 70 i+(create-probe Err bitreich.org 70 i+ write-to-file Err bitreich.org 70 i+ (let ((filepath (getf params :path nil)) Err bitreich.org 70 i+ (text (getf params :text Err bitreich.org 70 i+ (princ-to-string Err bitreich.org 70 i+ (get-universal-time))))) Err bitreich.org 70 i+ (when filepath Err bitreich.org 70 i+ (with-open-file Err bitreich.org 70 i+ (stream-out filepath Err bitreich.org 70 i+ :direction :output Err bitreich.org 70 i+ :if-exists :supersede) Err bitreich.org 70 i+ (format stream-out "~a~%" text)) Err bitreich.org 70 i+ t))) Err bitreich.org 70 1diff --git a/test/test.lisp b/test/test.lisp /scm/reed-alert/file/test/test.lisp.gph bitreich.org 70 i@@ -22,3 +22,6 @@ Err bitreich.org 70 i (or Err bitreich.org 70 i (=> notification disk-usage :path "/" :limit 1 :reminder 2 :desc "always error, should be followed by always ok") Err bitreich.org 70 i (=> notification disk-usage :path "/" :limit 99 :reminder 2 :desc "always OK")) Err bitreich.org 70 i+ Err bitreich.org 70 i+(=> notification write-to-file :path "/tmp/hello.txt") Err bitreich.org 70 i+(=> notification write-to-file :path "/tmp/hello2.txt" :text "hi") Err bitreich.org 70 .