Apache Access Liste für Pingdom Probes

Wir überwachen die Verfügbarkeit einiger Sites mit Hilfe von pingdom. Da wir nicht immer „der Welt“ Zugriff auf die betreffende Site geben wollen, beschränken wir den Zugriff zum Teil mit Apache Access Listen („Deny from All, Allow From …“). Bei diesem Ansatz ist’s notwendig, die jeweils aktuellen IPs in der Apache Konfiguration zu haben. Ab und an ändern sich die IPs allerdings – aber das Problem haben wir so gelöst.

Einerseits bietet Pingdom selber einen RSS Feed auf https://www.pingdom.com/rss/probe_servers.xml an. Aber das ist halt ein Feed und muss umgewandelt werden, und zwar so:

printf "# Pingdom servers at %s\nAllow from " "$(date +%Y-%m-%d' '%H.%M.%S)" ; \
 wget -qO- https://www.pingdom.com/rss/probe_servers.xml \
  | awk '/IP: / {print $2}' | awk -F';' '{print$1}' | sort -n \
  | while read ip; do \
    printf "%s " "$ip" ; 
  done | sed 's/ $//' ; echo

Hiermit wird dann EINE lange Zeile mit allen IPs erzeugt — Beispieloutput:

# Pingdom servers at 2012-05-08 09.37.43
Allow from 46.165.195.139 46.20.45.18 50.23.94.74 64.141.100.136 64.237.55.3 67.228.213.178 69.59.28.19 69.64.56.47 70.32.40.2 …

Ab und an benötigen wir das nicht in einer langen Zeile, sondern in VIELEN kurzen Zeilen. Dafür nehme man:

printf "# Pingdom servers at %s\n" "$(date +%Y-%m-%d' '%H.%M.%S)" ; \
wget -qO- https://www.pingdom.com/rss/probe_servers.xml \
 | grep 'IP: ' \
 | perl -p -e 's,.*IP: (.*); Host.*,Allow from $1,' \
 | sort -n

Als Beispieloutput erhält man dann sowas:

# Pingdom servers at 2012-03-15 09.56.19
Allow from 108.62.115.226
Allow from 173.204.85.217
Allow from 173.248.147.18
[…]

Viel Spass damit🙂

 

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s