iAdd ssl-expiration probe to check if a ssl certificate is about to expire under a specified time. - 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 c1bb305f9dd246538db890519a70394b4b7c6d1b /scm/reed-alert/commit/c1bb305f9dd246538db890519a70394b4b7c6d1b.gph bitreich.org 70 1parent 72d28cf74b8fd6ff4c21e0f609ab87bd54ec3f14 /scm/reed-alert/commit/72d28cf74b8fd6ff4c21e0f609ab87bd54ec3f14.gph bitreich.org 70 hAuthor: Solene Rapenne URL:mailto:solene@perso.pw bitreich.org 70 iDate: Sat, 20 Oct 2018 20:28:20 +0200 Err bitreich.org 70 i Err bitreich.org 70 iAdd ssl-expiration probe to check if a ssl certificate is about to Err bitreich.org 70 iexpire under a specified time. Err bitreich.org 70 i Err bitreich.org 70 iContribution from Denis Fondras Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M README | 25 ++++++++++++++++++++++++- Err bitreich.org 70 i M example-full.lisp | 5 +++++ Err bitreich.org 70 i M probes.lisp | 12 ++++++++++++ Err bitreich.org 70 i Err bitreich.org 70 i3 files changed, 41 insertions(+), 1 deletion(-) 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@@ -294,6 +294,7 @@ This may be the most useful probe because it let the user do any check needed. Err bitreich.org 70 i Err bitreich.org 70 i Example : `(=> alert command :command "tail -n 10 /var/log/messages | grep -v CRITICAL")` Err bitreich.org 70 i Err bitreich.org 70 i+ Err bitreich.org 70 i service Err bitreich.org 70 i ------- Err bitreich.org 70 i Check if a service is started on the system. Err bitreich.org 70 i@@ -303,6 +304,7 @@ Check if a service is started on the system. Err bitreich.org 70 i Err bitreich.org 70 i Example : `(=> alert service :name "mysql-server")` Err bitreich.org 70 i Err bitreich.org 70 i+ Err bitreich.org 70 i file-less-than Err bitreich.org 70 i -------------- Err bitreich.org 70 i Check if a file has a size less than a specified limit. Err bitreich.org 70 i@@ -315,9 +317,11 @@ Check if a file has a size less than a specified limit. Err bitreich.org 70 i Err bitreich.org 70 i Example : `(=> alert file-less-than :path "/var/log/nginx.log" :limit 60)` Err bitreich.org 70 i Err bitreich.org 70 i+ Err bitreich.org 70 i curl-http-status Err bitreich.org 70 i ---------------- Err bitreich.org 70 i-Do a HTTP request and return an error if the return code isn't 200. Requires curl. Err bitreich.org 70 i+Do a HTTP request and return an error if the return code isn't Err bitreich.org 70 i+200. Requires curl. Err bitreich.org 70 i Err bitreich.org 70 i > Set the url to request. Err bitreich.org 70 i :url "STRING" Err bitreich.org 70 i@@ -325,6 +329,25 @@ Do a HTTP request and return an error if the return code isn't 200. Requires cur Err bitreich.org 70 i > Set the time to wait before aborting. Err bitreich.org 70 i :timeout INTEGER Err bitreich.org 70 i Err bitreich.org 70 i+ Err bitreich.org 70 i+ssl-expiration Err bitreich.org 70 i+-------------------- Err bitreich.org 70 i+Check if a remote SSL certificate expires in less than a specified Err bitreich.org 70 i+time. Requires openssl. Err bitreich.org 70 i+ Err bitreich.org 70 i+> Set the hostname for the request. Err bitreich.org 70 i+ :host "STRING" Err bitreich.org 70 i+ Err bitreich.org 70 i+> Set the expiration time limit in seconds. Err bitreich.org 70 i+ :seconds INTEGER Err bitreich.org 70 i+ Err bitreich.org 70 i+> Set the port for the request (OPTIONAL). Err bitreich.org 70 i+ :port INTEGER (default to 443) Err bitreich.org 70 i+ Err bitreich.org 70 i+Example : `(=> alert ssl-expiration :host "domain.local" :seconds (* 7 24 60 60)) Err bitreich.org 70 i+Example : `(=> alert ssl-expiration :host "domain.local" :seconds 86400 :port 6697) 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@@ -55,6 +55,11 @@ Err bitreich.org 70 i ;; check if web page :url answer under :limit Err bitreich.org 70 i (=> empty command :command "curl -m 10 http://google.fr/") Err bitreich.org 70 i Err bitreich.org 70 i+;; check if a certificate is still valid within a time range Err bitreich.org 70 i+(=> mail ssl-expiration :host "google.fr" :seconds 1296000) 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 ;; 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/probes.lisp b/probes.lisp /scm/reed-alert/file/probes.lisp.gph bitreich.org 70 i@@ -120,3 +120,15 @@ Err bitreich.org 70 i (list "curl" "-f" Err bitreich.org 70 i (format nil "-m~a" (getf params :timeout 5)) Err bitreich.org 70 i (getf params :url)))) Err bitreich.org 70 i+ Err bitreich.org 70 i+(create-probe Err bitreich.org 70 i+ ssl-expiration Err bitreich.org 70 i+ (command-return-code Err bitreich.org 70 i+ (concatenate 'string Err bitreich.org 70 i+ "echo | openssl s_client -showcerts -servername " Err bitreich.org 70 i+ (getf params :host) " -connect " Err bitreich.org 70 i+ (getf params :host) ":" (princ-to-string Err bitreich.org 70 i+ (getf params :port 443)) Err bitreich.org 70 i+ " 2>/dev/null | openssl x509 -inform pem -noout -checkend " Err bitreich.org 70 i+ (princ-to-string Err bitreich.org 70 i+ (getf params :seconds))))) Err bitreich.org 70 .