; Aktivieren des Logs: (logging/init {:file "/var/log/riemann/riemann.log"}) ; Anbinden des Graphite-Servers: (def graph (graphite {:host "graphite-server"})) ; Aktivieren aller Interfaces für TCP, UDP und Websockets: (let [host "0.0.0.0"] (tcp-server {:host host}) (udp-server {:host host}) (ws-server {:host host})) ; Aufräumen von Events (alle 5 Sekunden): (periodically-expire 5) ; E-Mail-Adresse, von der aus Benachrichtigungen kommen: (def email (mailer {:from "riemann@example.com"})) ; Index: Definition (let [index (index)] (streams (default :ttl 60 ; umgehendes Indizieren aller ankommenden Events: index ; Weiterleiten von Fehlern, sortiert nach Tags: (where (state "error") (where (tagged "www") (email "webmaster@example.com")) (where (service = "postgres") (email "dba@example.com")) (where (not (or (tagged "www") (service = "postgres"))) (email "admin@example.com"))) ; Berechnen der vorhandenen Hosts: (let [hosts (atom #{})] (fn [event] (swap! hosts conj (:host event)) (prn :hosts @hosts) (index {:service "unique hosts" :time (unix-time) :metric (count @hosts)}))) ; Weiterleiten aller Events zum Graphite-Host: graph ; Loggen von inaktiven Events: (expired (fn [event] (info "expired" event))))) )