Munin v2

Pisałem już kiedyś jak zainstalować munina, teraz nieco bardziej rozbudowana wersja, z kilkoma hostami i nieco odświeżonym interfejsem graficznym.

Jeden z hostów będzie traktowany jako master (przypadek gdy hosty nie są w tej samej sieci), ten który wystawia statystyki webowo. Instalacja jak poprzednio:

apt install apache2 libcgi-fast-perl libapache2-mod-fcgid munin munin-node munin-plugins-extra 

a2enmod fcgid

W /etc/munin/munin.conf konfigurujemy co nam potrzeba, głównie:

htmldir /var/www/munin/ //w zależności jak mamy ustawione apache


[server1.example.com]
address 127.0.0.1
use_node_name yes

[server2.example.com]
address x.x.x.x //zewnętrzne ip drugiego hosta, można powtarzać z kolejnymi
use_node_name yes
cd /etc/apache2/conf-enabled/
ln -s /etc/munin/apache24.conf munin.conf
systemctl restart apache2

W /etc/munin/apache24.conf ustawiamy:

Alias /munin /var/www/munin
<Directory /var/www/munin>
 # Require local
 Require all granted
 Options FollowSymLinks SymLinksIfOwnerMatch
 Options None
</Directory>

ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
<Location /munin-cgi/munin-cgi-graph>
 # Require local
 Require all granted
 Options FollowSymLinks SymLinksIfOwnerMatch
 <IfModule mod_fcgid.c>
 SetHandler fcgid-script
 </IfModule>
 <IfModule !mod_fcgid.c>
 SetHandler cgi-script
 </IfModule>
</Location>

Webowy interfejs powienien już działać, wyświetlać statystyki z mastera.

Teraz na każdym kolejnym nodzie:

apt install munin-node

W etc/munin/munin-node.conf ustawiasz:

allow ^123\.456\.78\.100$ //ip mastera


systemctl restart munin-node

W firewallu otwieramy port 4949:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 4949 -j ACCEPT

(na masterze konfigurację ustawiliśmy wcześniej), po kilku minutach host powinien pojawić się w interfejsie webowym.

W przypadku gdy coś nie działa polecam popatrzeć w log:

tail -f /var/log/munin/*

Zazwyczaj nie może się połączyć z hostem, trzeba więc wtedy posprawdzać firewalle, telnet powinien was ładnie przywitać, z mastera:

telnet ipnoda 4949

Jeżeli mamy jakąś maszynkę bez stałego ip ale np router już go ma to spokojnie można po prostu przekierować port 4949 na routerze do hosta (np raspberry jak u mnie)

Webowy interfejs:
cd /tmp

git clone https://github.com/munin-monitoring/contrib.git

cd /etc/munin

cp -rb /opt/contrib/templates/munstrap/templates .

cp -rb /opt/contrib/templates/munstrap/static .

rm -rf /var/www/munin/*

Po 5 minutach powinno wyglądać mniej więcej tak:

BOINC

Większość z naszych maszyn podczas gdy na nich nie pracujemy marnuje się (o ile są włączone oczywiście ;)) dlaczego by też nie wykorzystać ich w imię nauki.

W BOINC możemy wybrać sobie dowolny projekt dla którego udostępnimy swoją moc obliczeniową, wystarczy zainstalować:

aptitude install boinc-client

Graficznie resztę można wyklikać poprzez:

aptitude install boinc-manager

Gdy jednak maszyna nie posiada serwera graficznego możemy się posiłkować konfiguracją manualną (boinc-manager posiada opcję połączenia remote aczkolwiek nie mogłem w ten sposób dodać żadnego projektu, świetnie się jednak sprawdza później do podglądu jak nam idzie).

Tak więc wybieramy jakiś projekt, rejestrujemy konto na stronie i konfiguruejmy klienta:

boinccmd --lookup_account projekt mail haslo

np:

boinccmd --lookup_account http://setiathome.berkeley.edumail@mail haslo

pojawi się nasz kod, dodajemy go:

boinccmd --project_attach projekt kod

np:

boinccmd --project_attach http://setiathome.berkeley.edu kod

Aby móc połączyć się zdalnie w pliku /var/lib/boinc-client/remote_hosts.cfg podajemy ip a w /var/lib/boinc-client//var/lib/boinc-client hasło.

Na koniec w iptables otwieramy port 31416 i łączymy się managerem.

BOINC
BOINC

nagios monitorowanie procesu

W /etc/nagios/nrpe_local.cfg dodajemy:

command[check_*]=/usr/lib/nagios/plugins/check_procs -w 1: -c 1: -C proces

argumenty (-w 1: -c 1: -C) dopasowywujemy wedle woli, w tym przypadku ma być przynajmniej jeden proces.

Gdyby komenda /usr/lib/nagios/plugins/check_procs -w 1: -c 1: -C proces zwracała nieprawidłowy wynik trzeba sprawdzić jak nazwa procesu jest wyświetlana przez:

/bin/ps axwwo 'stat uid pid ppid vsz rss pcpu etime comm args' | grep proces

i odpowiednio zmodyfikować. Następnie edytujemy /etc/nagios3/conf.d/*_nagios2.cfg

define service{
        use                             generic-service         ; Name of service template to use
        host_name                       localhost
        service_description             Check Transmission
                check_command                   check_nrpe_1arg!check_*
        }

i potem już tylko restart 😉

owncloud apache ssl

Ku pamięci.

aptitude install apache2 openssl
mkdir -p /etc/ssl/localcerts
openssl req -new -x509 -days 365 -nodes -out /etc/ssl/localcerts/apache.pem -keyout /etc/ssl/localcerts/apache.key
chmod 600 /etc/ssl/localcerts/apache*
a2enmod ssl

W /etc/apache2/sites-available/default-ssl dodajemy:

        <Directory /var/www/owncloud>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                Allow from all
                # add any possibly required additional directives here
                # e.g. the Satisfy directive (see below for details):
                Satisfy Any
        </Directory>

Na koniec:

 a2ensite default-ssl
 /etc/init.d/apache2 restart

I koniec 🙂