Ubuntu 14.04 LTS, apt-dater i restart usług

Jakiś czas temu zachwalałem apt-dater jako narzędzie do aktualizacji większej ilości systemów. Jak pisałem w późniejszych uwagach, apt-dater nieźle integruje się z programem needrestart. Tyle teorii…

Niestety, o ile na Debianie Jessie wyglądało to naprawdę dobrze i sprawdzenie przez checkrestart (inne polecenie realizujące podobne zadanie) dawało spójne wyniki z needrestart, o tyle na Ubuntu 14.04 LTS needrestart pokazywał często, że do restartu nic nie ma, o tyle checkrestart był zupełnie innego zdania... I – co gorsza – miał rację.

Przyczyną okazała się różnica w wersji needrestart. W Jessie jest to 1.2, w Ubuntu 14.04 LTS – 0.5. Ponieważ to skrypt perlowy, to dałem szansę i wrzuciłem wersję z Debiana (stable). Instaluje się czysto, działa bardzo dobrze – w połączeniu z apt-dater wykrywa więcej usług do restartu i także tu wyniki needrestart są teraz spójne z checkrestart.

Nawiasem, checkrestart w Jessie ma problem z mysql i zawsze pokazuje, że należy go zrestartować. Jest na to zgłoszony bug. Ale to tak nawiasem, kto korzysta, ten wie, zresztą można dopisać mysql do wyjątków w konfigu.

Docker.io Debian Jessie HOWTO

Parę dni temu pojawiła się nowa wersja Debiana o nazwie Jessie. O upgrade i drobnych i niedrobnych perypetiach napiszę innym razem, dziś krótkie rozwiązanie problemu, który pojawia się dość często na IRCu. Chodzi o to, że pakiet docker.io nie jest dostępny w Jessie. A ludzie chcą dockera używać. Widzę trzy rozwiązania:

1. Pobranie pakietu docker.io w wersji dla Debiana unstable.

Rozwiązanie najprostsze, ale potencjalnie najbardziej problematyczne. Wchodzimy na https://packages.debian.org/sid/docker.io wybieramy architekturę, następnie mirror, pobieramy paczkę deb (akualnie jest to docker.io_1.3.3~dfsg1-2_amd64.deb). Instalujemy ją w systemie, mniej lub bardziej ręcznie spełniając zależności.

2. Dodanie repozytoriów unstable w systemie oraz odpowiedni pinning pakietów.

Po pierwsze czytamy dokładnie i ze zrozumieniem jak działa pinning pakietów (man apt_preferences), żeby nagle nie zaktualizowało systemu do unstable, albo nie pomieszało pakietów ze stable i unstable przy spełnianiu zależności. Następnie dodajemy wpisy dla unstable w sources.list. Aktualizujemy listę pakietów i docker.io powinien być dostępny do instalacji.

3. Samodzielnie robimy backport pakietu docker.io dla Jessie.

Wersja najdoskonalsza, bo nie robi bałaganu związanego z mieszaniem wersji stable i unstable w systemie. Po pierwsze zaopatrujemy się w debianowe źródła pakietu. Można dodać wpisy deb-src dla unstable w sources.list, zaktualizować listę pakietów. Następnie:

cd /usr/srcwajig source docker.iocd docker.io-1.3.3~dfsg1/wajig builddepends docker.iodpkg-buildpackage
cd ..
wajig install docker.io_1.3.3~dfsg1-2_amd64.deb

W tym momencie powinniśmy mieć zainstalowanego dockera w systemie. Nie sprawdzałem, czy działa, ale zarówno metoda druga jak i trzecia powodują, że pakiet instaluje się czysto, więc raczej będzie działać. Przykłady dla wersji 1.3.3, być może z czasem może się coś zmienić.

Mój uptime

Już od jakiegoś czasu zastanawiałem się nad włączeniem monitoringu dla rosnącej liczby moich gratów w sieci. Do tej pory korzystałem z premedytacją głównie z gotowych serwisów typu Blox czy Jogger, ale ostatnio coraz więcej rzeczy jest zależnych tylko ode mnie. Niby niekrytyczne, ale… lubię, jak działa. A zdarzyło mi się, że po restarcie serwera nie wszystkie usługi działały – niby drobiazg, nie wstał varnish[1], ale efekty opłakane – statystyki nie działały.

Oczywiście mogłem podpiąć się pod monitoring w firmie (Zabbix), ale mało eleganckie, i ogólnie nie lubię mieszania gratów służbowych z prywatnymi. Mogłem też odpalić coś prostego swojego (nawet ze sprawdzaniem na krzyż, albo i w trójkącie), ale… trochę overkill, podobnie jak stawianie własnego Zabbiksa. Poza tym, na pewno nie miałoby to ładnego frontendu (chyba, że Zabbix). W ogóle pewnie nie miałoby frontendu. 😉

Stwierdziłem, że poszukam, bo na pewno są gotowe serwisy. Wymagania były proste:

  • darmowe
  • obsługa min. 5 hostów w darmowej wersji
  • prosta rejestracja i używanie
  • wsparcie dla IPv6
  • monitoring hostów (ping) oraz stron WWW

Owszem, są gotowe serwisy. Nawet sporo. Na tyle sporo, że miałem problem z decyzją. Prawie się zdecydowałem na monitor.us, ale zapytałem znajomych i… nikt nic nie umiał powiedzieć. Temat umarł śmiercią naturalną.

Przynajmniej na jakiś czas, bo niedawno zobaczyłem ten wpis i… dałem szansę serwisowi Uptime Robot. W sumie polecany na zestawieniu 10 darmowych serwisów do monitoringu stron WWW, więc pewnie go widziałem, ale jakoś nie zwróciłem uwagi. Ma wszystko co wyżej, na tle konkurencji wyróżnia się dużą liczbą sprawdzanych hostów/usług w wariancie darmowym (50) oraz stosunkowo wysoką częstotliwością sprawdzeń (co 5 minut), więc nada się nawet do więcej niż czysto amatorskich/prywatnych zastosowań.

Dashboard wygląda tak:

Uptime Robot dashboard

Kolejna wyróżniająca cecha to bycie darmowym jako podstawa, nie jako doklejka – serwis powstał jako darmowy z założenia, wersja płatna została dorobiona później, dla tych, którzy jednak potrzebują więcej. Wygląda więc, że nie zniknie nagle, nie zacznie proponować nachalnie płatnej wersji czy wymagać klikania linków co miesiąc…

A tak wygląda wykres dla pojedynczego hosta (ten z przerwą):

Uptime Robot wykres dla hosta

Uptime Robot umie powiadamiać o awarii mailem (tak właśnie korzystam, w końcu to prywatne graty) oraz dodatkowo przez IM (Twitter) oraz SMS (z tych metod nie korzystam). Metodę powiadomień ustawia się dla każdego hosta indywidualnie, więc można mieć ważne i ważniejsze, pilne i pilniejsze. Sprawdzać można działanie strony, obecność zadanej treści na stronie, odpowiedź hosta na ping oraz status otwarcia portu. Jak na serwis darmowy – więcej niż wystarczające. Do tego całość jest schludna i prosta. Polecam.

[1] Zachciało mi się usprawnień i optymalizacji… W top wyglądało OK – mysql był, lighttpd był…