Jak spokojnie pojechać na urlop i zaufać systemom monitoringu serwerów

dodał 1 sierpnia 2017 o 07:04 w kategorii HowTo  z tagami:
Jak spokojnie pojechać na urlop i zaufać systemom monitoringu serwerów

Często możecie w naszym serwisie poczytać o konfigurowaniu bezpieczeństwa różnych usług i produktów. Bezpieczeństwo to jednak nie tylko prawidłowa konfiguracja – to także, a może przede wszystkim, odpowiedni monitoring.

Sezon urlopowy jest w pełni, a nic nie psuje urlopu administratora bardziej niż konieczność jego przerwania z powodu awarii i spędzenie doby przed ekranem, by wszystko zaczęło znowu działać. W szybkiej diagnostyce problemu (a często i jego rozwiązaniu) może Wam pomoc dobrze skonfigurowana usługa monitoringu. To naprawdę proste – poczytajcie i pooglądajcie poniżej.

Administratorzy przed urlopem

Artykuł pod patronatem Aruba Cloud

We współpracy z firmą ArubaCloud pokazaliśmy Wam, jak postawić swój serwer backupów, jak skonfigurować własny serwer VPN i podłączyć do niego komputer, telefony komórkowe oraz domowy ruter a także jak schować się przed cenzurą sieci i jak zacząć serwer zabezpieczać, jak postawić swój własny zdalny pulpitswój serwer WWWjak monitorować zmiany w plikachjak zablokować reklamy na komórce, jak skonfigurować bezpieczną kopię zapasową a także jak zabezpieczyć logowanie do serwera za pomocą jednorazowych tokenów  lub za pomocą klucza Yubikey.

Jeśli nie macie jeszcze swojego własnego serwera, to jest to dobra okazja by się w taki wyposażyć. Aruba oferuje dwa miesiące korzystania ze swojego podstawowego serwera gratis – a po zakończeniu promocji będzie on Was kosztował zaledwie 4 złote miesięcznie. Instrukcję jak krok po kroku skorzystać z promocji i uruchomić swój serwer znajdziecie w tym artykule. Jeśli macie już swój serwer – to zapraszamy do lektury kolejnych akapitów.

Monitorowanie proste i wygodne

Na poniższym filmie zobaczycie cały proces konfiguracji krok po kroku. Jeśli zaś wolicie opis tekstowy – znajdziecie go tuż poniżej.

W systemie Linux dostępnych jest kilka narzędzi ułatwiających monitorowanie zasobów serwera. Jednym z nich jest Munin. W krytycznych sytuacjach, w których wydajność naszego serwera spadnie do zera, korzystając z oprogramowania Munin możemy w łatwy i prosty sposób zdiagnozować problem.

Munin składa się z dwóch komponentów:

  • pierwszym komponentem jest munin-master, który łączy się do agentów i zbiera dane, a następnie generuje wykresy,
  • drugim komponentem jest munin-node, agent, który instalowany jest na serwerach, które chcemy monitorować.

W niniejszym artykule pokażemy jak skonfigurować główny serwer (pierwszy komponent) wraz z usługą Apache, a następnie zainstalujemy agenta (drugi komponent) na drugim serwerze. Wynikiem końcowym będzie panel w którym będziemy mieli wykresy podobne do poniższego:

Konfiguracja serwera munin-master

Jeśli posiadacie już usługę www, możecie przejść do kolejnego akapitu. Na początku zainstalujemy i skonfigurujemy usługę Apache. Usługa ta przyda nam się do przeglądania wygenerowanych wykresów. Instalujemy Apache2:

# apt install apache2 libcgi-fast-perl libapache2-mod-fcgid

Instalujemy pakiet munin który będzie odpowiedzialny za odpytywanie serwerów agentów co 5 minut:

# apt install munin

Edytujemy plik /etc/munin/munin.conf

# nano /etc/munin/munin.conf

W liniach 8-11 wskazujemy gdzie będą zapisywane dane:

dbdir /var/lib/munin
htmldir /var/www/munin
logdir /var/log/munin
rundir /var/run/munin

Następnie w linii 98 wskazujemy serwer na którym zainstalowany jest agent:

[aruba-node]
    address 89.40.113.12
    use_node_name yes

Tworzymy katalog zdefiniowany w zmiennej htmldir w pliku munin.conf:

# mkdir /var/www/munin
# chown munin:munin /var/www/munin

Zabezpieczamy dostęp do strony

Nie zostawiajmy publicznego dostępu do strony /munin (chyba, że chcecie by został kolejnym znienacka odnalezionym wynikiem wyszukiwania w Google) . Utworzymy podstawowe uwierzytelnianie za pomocą loginu i hasła. Tworzymy plik /etc/apache2/.htpasswd_munin w którym będziemy składować hasła:

# htpasswd -c "/etc/apache2/.htpasswd_munin" krystian

Edytujemy plik /etc/apache2/conf-available/munin.conf:

# nano /etc/apache2/conf-available/munin.conf
Alias /munin /var/www/munin
<Directory /var/www/munin>
    Options FollowSymLinks SymLinksIfOwnerMatch
    AllowOverride AuthConfig
    AuthType Basic
    AuthName "Restricted Files"
    AuthUserFile "/etc/apache2/.htpasswd_munin"
    Require valid-user
</Directory>

ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
<Location /munin-cgi/munin-cgi-graph>
    Options FollowSymLinks SymLinksIfOwnerMatch
    AllowOverride AuthConfig
    AuthType Basic
    AuthName "Restricted Files"
    AuthUserFile "/etc/apache2/.htpasswd_munin"
    Require valid-user
    <IfModule mod_fcgid.c>
        SetHandler fcgid-script
    </IfModule>
    <IfModule !mod_fcgid.c>
        SetHandler cgi-script
    </IfModule>
</Location>

Ostatnim etapem na serwerze munin-master jest uruchomienie usługi www:

# systemctl restart apache2

Nie zapomnijcie uruchomić usługi Apache z obsługą certyfikatów SSL – dane przesyłacie otwartym tekstem! Z tego artykułu dowiecie się jak wdrożyć bezpłatne certyfikaty od Let’s encrypt.

Serwer munin-node

Instalujemy agenta munin’a na serwerze munin-node:

# apt install munin-node munin-plugins-extra

Edytujemy plik konfiguracyjny:

# nano /etc/munin/munin-node.conf

Ustawiamy adres IP serwera munin-master – zezwalamy mu na dostęp do usługi:

# allow ^217\.61\.5\.61$

Konfigurujemy usługi które będą monitorowane przez usługę munin (korzystamy z sugestii skryptu):

# munin-node-configure --suggest --shell | bash

W celu wprowadzenia zmian restartujemy usługę munin-node:

# service munin-node restart

Nie chcemy oczywiście aby wszyscy mieli dostęp do naszego agenta munin’a. Jeśli nie posiadacie żadnych reguł firewall’a, to poniżej znajdziecie przykładową konfigurację:

iptables -A INPUT -i lo -j ACCEPT # loopback
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT #zezwalamy na dostęp do SSH
iptables -A INPUT -s 217.61.5.61 -p tcp --dport 4949 -j ACCEPT # zezwalamy na dostęp munin-master do portu 4949 (port agenta munin)
iptables -A INPUT -j DROP # blokujemy pozostałe

Instalujemy pakiet iptables-persistent by uruchamiać reguły firewall’a podczas startu systemu:

# apt install iptables-persistent

Zapisujemy obecną konfigurację firewall’a do pliku:

# iptables-save > /etc/iptables/rules.v4

Nasz prosty monitoring jest gotowy i relatywnie bezpieczny. Administratorzy, którzy chcą urlop spędzić spokojnie mając pod ręką nieco więcej niż tylko standardowe wykresy, powinni zainteresować się pakietem Zabbix, Nagios lub Cacti. Jeśli interesuje Was ten temat – dajcie znać, a dzięki Aruba Cloud rozwiniemy go w którymś z kolejnych odcinków.

Dla zachowania pełnej przejrzystości – artykuł ten to tekst sponsorowany, za który otrzymujemy wynagrodzenie.