Dokumentacja

Dodawanie PulseKeeper do listy dozwolonych

Jeśli Twoja strona stoi za zaporą (firewallem) lub ochroną przed botami, może ona blokować nasze sprawdzenia. Wtedy nie wiemy, czy strona działa: odwiedzający mogą ją widzieć bez problemu, a nasze sondy dostają stronę błędu.

Jak rozpoznajemy zaporę

Gdy sprawdzenie zwróci 401, 403, 406, 429 lub 503, a odpowiedź nosi ślady znanej zapory, zapisujemy je jako zablokowane przez zaporę, a nie jako awarię. Rozpoznajemy:

Zapora Po czym ją rozpoznajemy
Cloudflare nagłówek cf-ray lub cf-mitigated, server: cloudflare albo jej strona weryfikacji (challenge)
Sucuri nagłówek x-sucuri-id lub server: Sucuri
Imperva (Incapsula) nagłówek x-iinfo lub ciasteczko incap_ses
Akamai server: AkamaiGHost

Zablokowane sprawdzenie traktujemy inaczej niż awarię:

  • otwiera ostrzeżenie, a nie incydent krytyczny: bez SMS-a, a w godzinach ciszy czeka do rana;
  • nie obniża dostępności ani Twojego SLA;
  • strona monitora pokazuje, która zapora nas blokuje i jakie adresy trzeba dopuścić.

Nasze adresy IP

Sprawdzenia przychodzą z tych adresów, po jednym na lokalizację:

  • 164.90.187.198 (Frankfurt)
  • 137.184.30.6 (New York)
  • 138.197.198.212 (San Francisco)

Ta sama lista jest zawsze dostępna jako zwykły tekst pod https://pulsekeeper.io/ips i jako JSON pod https://pulsekeeper.io/ips.json, więc możesz to zautomatyzować. Adresy zmieniają się tylko wtedy, gdy dodajemy lokalizację; listy aktualizujemy w tym samym momencie.

IPv4 czy IPv6

Domyślnie każde sprawdzenie łączy się przez IPv4, więc wystarczy dopuścić nasze adresy IPv4. W planach, które to obejmują (zobacz cennik), możesz to zmienić dla całego zespołu w Ustawienia → Organizacja → Wersja IP, a dla pojedynczego monitora w jego zakładce Ustawienia: tylko IPv6 albo automatycznie (IPv6 zawsze, gdy cel ma adres IPv6). Jeśli wybierzesz IPv6 lub tryb automatyczny, dopuść także nasze adresy IPv6. Zakładka Dziennik pokazuje przy każdym sprawdzeniu, czy poszło przez IPv4, czy przez IPv6.

Aby sprawdzać stronę zarówno przez IPv4, jak i IPv6, otwórz zakładkę Ustawienia monitora i zaznacz Sprawdzaj też przez IPv6. Powstaje wtedy drugi monitor z tymi samymi ustawieniami. To osobne sprawdzenie w Twoim interwale, więc zajmuje jeszcze jeden slot monitora.

Dopuść adresy IP, a nie user agenta. Ochrona przed botami (np. Cloudflare Bot Fight Mode) blokuje również na podstawie zachowania, a user agenta łatwo podrobić, więc wiele zapór go ignoruje.

Rozpoznawanie naszych sprawdzeń po nagłówku

Z naszych adresów IP korzystają wszystkie konta PulseKeeper. Aby przepuszczać tylko swoje sprawdzenia, włącz token zespołu w Ustawienia → Organizacja → Rozpoznawanie naszych sprawdzeń. Każde sprawdzenie HTTP i API Twojego zespołu wysyła wtedy:

X-PulseKeeper-Token: pkt_…

Dopuść żądania, które niosą ten nagłówek z Twoim tokenem, zamiast dopuszczania naszych adresów (albo obok tego). Token jest tajny: jeśli wycieknie, wygeneruj nowy w tym samym miejscu i od razu zaktualizuj regułę zapory, bo stary token przestaje być wysyłany natychmiast.

Pojedynczy monitor może też wysyłać własne nagłówki: otwórz monitor, Ustawienia → Nagłówki żądania i dodaj po jednym w wierszu w postaci Name: value.

Cloudflare

Cloudflare przepuszcza ruch za pomocą reguł niestandardowych (custom rules) z akcją Skip.

Z tokenem zespołu (zalecane):

  1. W panelu Cloudflare otwórz swoją stronę i przejdź do Security rules.
  2. Wybierz Create rule → Custom rules i nadaj regule nazwę, np. PulseKeeper.
  3. Wybierz Edit expression i wpisz, ze swoim tokenem:
    any(http.request.headers["x-pulsekeeper-token"][*] eq "pkt_…")
    
  4. Jako akcję wybierz Skip i zaznacz, co pominąć: wszystkie pozostałe reguły niestandardowe, reguły rate limiting, reguły zarządzane (managed rules) i Super Bot Fight Mode.
  5. Wdróż regułę i przesuń ją na samą górę listy, aby działała przed regułami, które pomija.

Z naszymi adresami IP:

  1. Utwórz listę IP: konto Settings → Configurations → Lists → Create new list, typ zawartości IP address, nazwa np. pulsekeeper.
  2. Dodaj adresy z https://pulsekeeper.io/ips. Lista w formie tekstu ma jeden adres w wierszu, więc możesz ją zapisać i użyć Upload CSV.
  3. Utwórz regułę niestandardową jak wyżej, z wyrażeniem ip.src in $pulsekeeper i akcją Skip.

Cloudflare nie potrafi sam pobrać listy z adresu URL. Adresy zmieniają się tylko wtedy, gdy dodajemy lokalizację; aby lista była automatycznie aktualna, aktualizuj ją z https://pulsekeeper.io/ips.json przez Cloudflare Lists API.

Pierwsze sprawdzenie po wdrożeniu reguły powinno wrócić na zielono. Po naszej stronie nie trzeba niczego resetować.

Bot Fight Mode (w planie Free) nie da się pominąć żadną regułą. Jeśli jest włączony, nadal będzie blokował nasze sprawdzenia. Wyłącz go w Security → Settings albo użyj planu z Super Bot Fight Mode, który akcja Skip potrafi pominąć.

Sucuri, Imperva i Akamai

Wszystkie trzy pozwalają wyłączyć adresy IP spod ochrony. Poszukaj w ustawieniach zapory lub bezpieczeństwa swojej strony listy dozwolonych adresów IP (allowlist, czasem whitelist), dodaj każdy adres z powyższej listy i zapisz. W Akamai jest to zwykle lista sieci (network list), którą dopuszczasz w konfiguracji bezpieczeństwa.

Zapora na Twoim serwerze

Jeśli używasz ufw, iptables, zapory w chmurze lub listy dozwolonych adresów w nginx, dopuść te same adresy na porcie, który monitorujesz (443 dla HTTPS albo port monitora TCP). Monitor TCP tylko otwiera połączenie. Zobacz typy monitorów.