2016-05-04 57 views
3

我正在處理一個需要配置和驗證prometheus alertmanager的任務。當mesos進程和HAProxy進程關閉時,用戶應該會收到警報,我試圖在Internet上查找這些警報規則,但沒有找到合適的。任何人都可以告訴我如何編寫這些警報規則。基本上需要條件條款。如何爲mesos和HAProxy進程編寫prometheus警報規則。

回答

4

這取決於你如何監測事物。以HAProxy爲例,假設您使用HAProxy Exporter(https://github.com/prometheus/haproxy_exporter)進行監控。 HAProxy Exporter包含一個名爲haproxy_up的指標,該指標表明它是否成功地刮掉了HAProxy(當Prometheus反過來刮掉了出口商)。如果HAProxy的不能刮,haproxy_up將有0一個值,你可以對提醒。假設您的HAProxy Exporter的Prometheus作業名稱爲haproxy-exporter。然後,你可以寫一個像這樣的提示規則:

ALERT HAProxyDown 
    IF haproxy_up{job="haproxy-exporter"} == 0 
    FOR 5m 
    LABELS { 
    severity = "page" 
    } 
    ANNOTATIONS { 
    summary = "HAProxy {{ $labels.instance }} down", 
    description = "HAProxy {{ $labels.instance }} could not be scraped." 
    } 

這將發出一個警告,如果任何HAProxy的實例無法刮掉超過5分鐘。

如果您想知道導出器(而不是HAProxy本身)是否關閉,您可以改用表達式up{job="haproxy-exporter"} == 0來查找任何向下的HAProxy導出器實例。可能你會想要檢查兩個實際。

我不能說Mesos及其出口商太多,因爲我沒有任何經驗,但我想它會是類似的東西。

0

此外,對於導出mesos指標,您應該使用mesos-exporter。 https://github.com/prometheus-junkyard/mesos_exporter https://hub.docker.com/r/prom/mesos-exporter/ 它也有mesos_up指標。您的警報應該與HaProxy警報相同:

ALERT MesosMasterDown 
    IF mesos_up{job="mesos-master-exporter"} == 0 
    FOR 5m 
    LABELS { 
    severity = "page" 
    } 
    ANNOTATIONS { 
    summary = "Mesos master {{ $labels.instance }} down", 
    description = "Mesos master {{ $labels.instance }} could not be scraped." 
    } 

ALERT MesosSlaveDown 
    IF mesos_up{job="mesos-slave-exporter"} == 0 
    FOR 5m 
    LABELS { 
    severity = "page" 
    } 
    ANNOTATIONS { 
    summary = "Mesos slave {{ $labels.instance }} down", 
    description = "Mesos slave {{ $labels.instance }} could not be scraped." 
    } 
+0

謝謝布萊恩... – milind