Instalowanie Shinken 2.0 na Debian Wheezy
Do tej pory zawsze korzystałem z superwizji słynnej pary Nagios / Centreon. Tylko dzisiaj te dwa projekty nie dogadują się zbytnio. Twórcy Nagios nie zadają sobie już trudu, aby ich narzędzie było kompatybilne z historyczną nakładką Centreon od wersji 4. I odwrotnie, zespół Centreon nie stara się już dodawać tego do Nagios ze stabilnej wersji ich silnika o nazwie Centreon Engine. Próbowałem dać temu drugiemu szansę. Jednak po kilku godzinach spędzonych na forach tybetańskich w poszukiwaniu naprawy błędu SQL postanowiłem zacząć od zera i znaleźć sobie nowe narzędzie do monitorowania.
Instalacja Shinken
Shinken potrzebuje użytkownika do funkcjonowania.
1
|
useradd –m shinken
|
Przechodzimy do instalacji zależności Pythona niezbędnych do instalacji
1
|
apt–get install python–pycurl python–setuptools python–pip
|
Instalacja Shinken odbywa się za pomocą pip
1
|
pip install shinken
|
Ta instalacja daje nam następującą strukturę drzewa
- / etc / pomniejsz : cała konfiguracja programu
- / usr / bin / ubytek- * : skrypty uruchamiania demona
- / var / lib / shinken : shinken moduły i wtyczki monitorujące (do tego wrócimy)
- / var / log / pomniejsz : ściśle tajne
Uruchamiamy narzędzie z jego skryptem startowym
1
|
/etc/init.d/shinken start
|
Domyślnie Shinken nadzoruje tylko siebie. Co więcej, ten nadzór jest bardzo lekki. Jeśli spojrzysz na stronę konfiguracji hosta w /etc/shinken/hosts/localhost.cfg, zobaczysz, że ten ostatni używa „szablonu” o nazwie „generic-host”, który po prostu sprawdza, czy host jest włączony.
Zamierzamy dodać kilka podstawowych kontroli naszego hosta. Do tego użyjemy specjalistycznego pakietu. Pakiety to skrzynki skryptów do nadzorowania konkretnego urządzenia i są dostępne na tej stronie.
Idziemy pod użytkownika Shinken, aby zainstalować pakiet
1
|
su – shinken
|
Aby wygenerować plik ini zawierający ścieżki do różnych katalogów konfiguracji narzędzi, należy zainicjować Shinken CLI.
1
|
shinken —init
|
Teraz możemy poszukać naszego pakietu Linux
1
|
shinken search linux
|
Co daje następujący wynik
1
2
3
4
5
|
glances (david–guenault) [pack,system,linux,glances] : Standard check through checkglances.py and glances server
linux–snmp (naparuba) [pack,linux,snmp] : Linux checks based on SNMP
linux–ssh (naparuba) [pack,linux,ssh] : Linux checks based on SSH without any script on distant server
pack–glances (david–guenault) [pack,system,linux,glances] : Standard check through checkglances.py and glances server
raspberrypi (frescha) [pack,linux,raspberrypi,server,os] : Standard checks
|
Wybierzemy pakiet linux-ssh, który jest trybem agenta. Skrypt otwiera połączenie ssh w celu uruchomienia polecenia na zdalnym serwerze i pobrania informacji. Powinieneś wiedzieć, że ten tryb nie jest najbardziej zalecany, ponieważ zużywa więcej zasobów niż klasyczne żądanie SNMP.
1
|
shinken install linux–ssh
|
Pakiet jest instalowany wraz ze wszystkimi wtyczkami w folderze /var/lib/shinken/libexec/.
Te wtyczki wymagają biblioteki o nazwie python-paramiko. Wracamy do roota, aby wykonać tę instalację.
1
2
3
|
exit # pour repasser root
apt–get install python–paramiko
su – shinken # retour sur l’user shinken
|
Wtyczki te uruchamiają połączenie ssh na zdalnym serwerze, w tym przypadku na lokalnym serwerze. Dlatego wygenerujemy parę kluczy ssh i przekażemy klucz publiczny użytkownikowi shinken.
1
|
ssh–keygen
|
Nie wpisuj hasła, w przeciwnym razie skrypt czekałby na interwencję człowieka przy każdym wykonaniu.
Wdrożenie klucza publicznego
1
|
ssh–copy–id –i ~/.ssh/id_rsa shinken@localhost
|
Przetestujemy wtyczkę, aby przekonać się, że wszystko działa idealnie
1
|
/var/lib/shinken/libexec/check_load_average_by_ssh.py –H localhost
|
Co musi dać
1
|
Ok: load average is good 0.59,0.27,0.15 | load1=0.59;1.00;2.00;; load5=0.27;1.00;2.00;; load15=0.15;1.00;2.00;;
|
Dlatego dodamy tag linux-ssh do definicji naszego hosta. W tym celu edytujemy /etc/shinken/hosts/localhost.cfg
1
2
3
4
5
6
|
define host{
use linux–ssh,generic–host
contact_groups admins
host_name localhost
address localhost
}
|
Po więcej szczegółów na temat konfiguracji hosta odsyłam do oficjalnej dokumentacji.
Ponownie uruchamiamy shinken, aby wziąć pod uwagę
1
|
/etc/init.d/shinken restart
|
Alerty można przeglądać w pliku dziennika
1
|
tail –f /var/log/shinken/schedulerd.log
|
Cóż, konsola nie nadaje się do wyświetlania stanu naszych maszyn. Zamierzamy zainstalować interfejs sieciowy Shinkena, aby był przyjemniejszy.
Instalacja interfejsu internetowego
Interfejs sieciowy to moduł brokera demonów, który odczytuje, interpretuje i wyświetla wyniki uzyskane w plikach dziennika.
Instalacja odbywa się z monitu użytkownika shinken
1
|
shinken install webui
|
Konfiguracja znajduje się w pliku /etc/shinken/modules/webui.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
define module {
module_name webui
module_type webui
host 0.0.0.0
port 7767
auth_secret CHANGE_ME
allow_html_output 1
max_output_length 1024
manage_acl 1
play_sound 0
login_text Welcome on Shinken WebUI
modules
}
|
Ten moduł należy dodać do głównego brokera w pliku /etc/shinken/brokers/broker-master.cfg
1
|
modules webui
|
Wznawiamy shinken
1
|
/etc/init.d/shinken restart
|
I łączysz się ze stroną internetową przez przeglądarkę pod adresem maszyny na porcie zdefiniowanym w pliku konfiguracyjnym modułu webui.
Logujemy się przy użyciu identyfikatorów administratora znajdujących się w pliku konfiguracyjnym /etc/shinken/contacts/admin.cfg
1
2
3
4
5
6
7
8
|
define contact{
use generic–contact
contact_name admin
email shinken@localhost
pager 0600000000 ; contact phone number
password admin
is_admin 1
}
|
I… .. porażka!
To normalne, zapewniam cię. Uwierzytelnianiem zarządza moduł. Trzeba go dodać. Rzućmy okiem na dostępne moduły uwierzytelniania
1
|
shinken search webui auth
|
Kto daje:
1
2
3
|
auth–cfg–password (naparuba) [module,auth,authentification,mod–auth–cfg–password,auth–cfg–password,cfg–password,webui] : Shinken module for UI authentification from simple password for configuration file
auth–htpasswd (naparuba) [module,webui,auth,authentification] : Shinken module for UI authentification from Apache passwd files
auth–pam (mingbo_wan) [module,auth,authentification,auth–cfg–pam,cfg–pam,webui] : Shinken module for UI authentification via pam
|
- cfg-password: proste uwierzytelnianie na podstawie hasła zapisanego w konf. kontaktu.
- htpassword: na podstawie pliku htaccess apache
- active-directory: uwierzytelnianie w oparciu o AD lub LDAP
Instalujemy pierwszy
1
|
shinken install auth–cfg–password
|
Nie ma nic do zadeklarowania w pliku konfiguracyjnym modułu (/etc/shinken/modules/auth_cfg_password.cfg), ale nadal musisz zadeklarować to drugie, tak jak w przypadku innych w module webui w /etc/shinken/modules/webui.cfg
1
|
modules auth–cfg–password
|
I związany z tym restart
1
|
/etc/init.d/shinken restart
|
Tym razem logowanie mija. W widoku „wszystkie” powinieneś zobaczyć swój host, a także wszystkie usługi pakietu linux-ssh.
To normalne, że pojawia się błąd typu
1
|
Error : cannot fetch cpu stats values from host
|
Wtyczka odzyskiwania informacji o procesorze oparta jest na programie sysstat. Musi być zainstalowany w systemie.
1
|
apt–get install sysstat
|
Jeśli przejdziemy do widoku „/ dashboard”, otrzymamy ogromny komunikat o błędzie
To też jest normalne. Pulpit nawigacyjny jest specyficzny dla każdego użytkownika. Moduł WebUI musi zapisać preferencje każdego użytkownika w płaskim pliku lub w bazie danych. Tutaj użyjemy sqlite.
Instalacja przez użytkownika shinken
1
|
shinken install sqlitedb
|
I dodajemy moduł do modułu Webui w /etc/shinken/modules/webui.cfg
1
|
modules auth–cfg–password,sqlitedb
|
Słynny restart
1
|
/etc/init.d/shinken restart
|
Możesz teraz dodawać widżety na stronie / desce rozdzielczej
Tutaj kończy się instalacja. W następnym artykule omówię dodawanie hostów i usług. W międzyczasie istnieje jeszcze oficjalna dokumentacja.