Check_MK monitoren der haproxy Backends
Kleines lokales Plugin für check_mk um die HAProxy Backends zu monitoren.
das Skript muss unter /usr/lib/check_mk_agent/local angelegt werden.
Ergebnis sieht dann so aus

Natürlich muss auch der haproxy so konfiguriert sein das er die Statusseite ausliefert. Hier Auszug aus der haproxy.cfg
das Skript muss unter /usr/lib/check_mk_agent/local angelegt werden.
touch /usr/lib/check_mk_agent/local/haproxy-local.shDort dann den nachfolgenden Code reinkopieren und Konfiguration anpassen.
#!/bin/bash
#
# checks haproxy
#
_awk_bin=$(which awk)
_status_url="http://localhost:9090/haproxy/"
_server_name="ha-cap-"
a=0
# $(curl -s ${_status_url}\;csv | grep "^${_server_name}" | grep -vE "(FRONTEND|BACKEND)")
for line in $(curl -s ${_status_url}\;csv | grep "^${_server_name}" | grep -vE "(FRONTEND|BACKEND)"); do
_name=$(echo $line | ${_awk_bin} -F',' '{ print $1; }' )
_host=$(echo $line | ${_awk_bin} -F',' '{ print $2; }' )
_stat=$(echo $line | ${_awk_bin} -F',' '{ print $18; }')
STATUSTXT="${_name} ${_host} ${_stat}"
if [ ${_stat} == "UP" ]; then
_check_response="0"
else
_check_response="2"
fi
if [ ${a} -lt 10 ]; then
echo "${_check_response} BEHIND-HAPROXY-0${a} - ${STATUSTXT}"
else
echo "${_check_response} BEHIND-HAPROXY-${a} - ${STATUSTXT}"
fi
a=$((a+1))
doneErgebnis sieht dann so aus

check_mk + haproxy
Natürlich muss auch der haproxy so konfiguriert sein das er die Statusseite ausliefert. Hier Auszug aus der haproxy.cfg
listen status
bind *:9090
mode http
stats enable
stats uri /haproxy
acl localhost src 127.0.0.1
acl stats path_beg /haproxy
http-request allow if stats localhost
http-request deny if stats !localhost