└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Icinga auf einem Uberspace betreiben 2 | 3 | Diese Anleitung beschreibt die Installation von Icinga innerhalb eines [Uberspaces](https://uberspace.de/). 4 | 5 | ## Installation 6 | 7 | Zuerst wird der Quelltext auf dem Uberspace herunterladen und anschließend entpackt: 8 | 9 | mkdir ~/src 10 | cd ~/src/ 11 | wget https://github.com/Icinga/icinga-core/releases/download/v1.11.7/icinga-1.11.7.tar.gz 12 | tar xzf icinga-1.11.7.tar.gz 13 | 14 | cd icinga-1.11.7/ 15 | ./configure --prefix=/home/$USER/opt/icinga \ 16 | --with-icinga-user=$USER \ 17 | --with-icinga-group=$USER \ 18 | --with-command-user=$USER \ 19 | --with-command-group=$USER \ 20 | --with-web-user=$USER \ 21 | --with-web-group=$USER \ 22 | --with-httpd-conf=/home/$USER/opt/icinga/etc/apache2 \ 23 | --with-init-dir=/home/$USER/opt/icinga/etc/init.d \ 24 | --with-cgiurl=/cgi-bin/icinga \ 25 | --disable-idoutils 26 | 27 | Trotz des angegebenen Benutzers/der angegebenen Gruppe müssen wir noch händisch die Datei `Makefile` anpassen. 28 | 29 | In Zeile 58, bei `INIT_OPTS` muss `root` gegen den eigenen Benutzer-/Gruppennamen ausgetauscht werden. 30 | 31 | sed -i "/^INIT_OPTS=/s/root/$USER/g" Makefile 32 | 33 | Jetzt müssen noch ein paar Verzeichnisse/Symlinks erstellt werden, damit die Dateien direkt in den vorgesehenen Verzeichnissen landen: 34 | 35 | mkdir -p ~/opt/icinga/var/{rw,lock} 36 | mkdir -p ~/opt/icinga/etc/{apache2,init.d} 37 | mkdir /var/www/virtual/$USER/html/icinga 38 | mkdir /var/www/virtual/$USER/cgi-bin/icinga 39 | ln -s /var/www/virtual/$USER/cgi-bin/icinga ~/opt/icinga/sbin 40 | ln -s /var/www/virtual/$USER/html/icinga ~/opt/icinga/share 41 | 42 | Jetzt können wir Icinga kompilieren: 43 | 44 | make all 45 | make fullinstall 46 | 47 | Im Falle einer Neuinstallation muss die Konfigration erzeugt werden: 48 | 49 | make install-config 50 | 51 | Damit suEXEC die Ausführung der .cgi-Dateien nicht verweigert, müssen deren Zugriffsrechte angepasst werden: 52 | 53 | chmod -R 755 /var/www/virtual/$USER/cgi-bin/icinga 54 | 55 | Nun muss die Datei `/home/$USER/opt/icinga/etc/icinga.cfg` angepasst werden: 56 | 57 | `use_syslog` ist dabei auf `0` zu setzen 58 | 59 | sed -i '/use_syslog=1/s/1/0/' /home/$USER/opt/icinga/etc/icinga.cfg 60 | 61 | `/home/$USER/opt/icinga/etc/init.d/icinga` benötigt ebenfalls eine Anpassung: 62 | 63 | `IcingaLockDir` ist dabei auf `${prefix}/var/lock/subsys` zu setzen. 64 | 65 | sed -i '/^IcingaLockDir=/s/=/=${prefix}/' /home/$USER/opt/icinga/etc/init.d/icinga 66 | 67 | Nun wird die Weboberfläche von Icinga noch gegen unbefugte Zugriffe abgesichert. Damit deine Zugangsdaten nicht unverschlüsselt übertragen werden, wird SSL forciert: 68 | 69 | ``` 70 | htpasswd -s -c /var/www/virtual/$USER/html/icinga/.htpasswd icingaadmin 71 | ``` 72 | ``` 73 | cat <<__EOF__ > /var/www/virtual/$USER/html/icinga/.htaccess 74 | RewriteEngine On 75 | RewriteCond %{HTTPS} !=on 76 | RewriteCond %{ENV:HTTPS} !=on 77 | RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] 78 | 79 | AuthName "Icinga Access" 80 | AuthType Basic 81 | AuthUserFile /var/www/virtual/$USER/html/icinga/.htpasswd 82 | Require valid-user 83 | __EOF__ 84 | ``` 85 | 86 | Die CGI-Skripte von Icinga sollten auch geschützt werden: 87 | 88 | cp /var/www/virtual/$USER/html/icinga/.htaccess /var/www/virtual/$USER/cgi-bin/icinga/ 89 | 90 | Jetzt noch Icinga ausführbar machen: 91 | 92 | chmod +x ~/opt/icinga/etc/init.d/icinga 93 | 94 | Icinga selber ist nun fertig installiert und kann auch schon gestartet werden: 95 | 96 | * Icinga-Konfiguration prüfen: `~/opt/icinga/etc/init.d/icinga checkconfig` 97 | * Icinga steuern: `~/opt/icinga/etc/init.d/icinga {start|stop|restart|reload|force-reload|status|checkconfig|show-errors}` 98 | 99 | Icinga ist nun unter der URL `https://USERNAME.HOSTNAME.uberspace.de/icinga/` erreichbar. 100 | 101 | Damit Icinga beim Neustart des Servers ebenfalls mitgestartet wird, muss ein [daemon 102 | eingerichtet werden](https://wiki.uberspace.de/system:daemontools#einen_daemon_einrichten). 103 | Das run-Skript kann dabei wie folgt aussehen: 104 | 105 | #!/bin/sh 106 | 107 | # These environment variables are sometimes needed by the running daemons 108 | export USER=DEIN_USERNAME 109 | export HOME=/home/DEIN_USERNAME 110 | 111 | # Include the user-specific profile 112 | . $HOME/.bash_profile 113 | 114 | # Now let's go! 115 | exec ~/opt/icinga/bin/icinga ~/opt/icinga/etc/icinga.cfg 2>&1 116 | 117 | ### Nagios Plugins 118 | 119 | Die ganzen Skripte mit den Prüfroutinen (`check_xyz`) müssen separat installiert werden: 120 | 121 | cd ~/src/ 122 | 123 | wget wget https://www.nagios-plugins.org/download/nagios-plugins-2.0.tar.gz 124 | tar xzf nagios-plugins-2.0.tar.gz 125 | 126 | cd nagios-plugins-2.0/ 127 | ./configure --prefix=/home/$USER/opt/icinga \ 128 | --with-nagios-user=$USER \ 129 | --with-nagios-group=$USER 130 | 131 | make 132 | make install 133 | 134 | ### NRPE 135 | 136 | Wer andere Server via NRPE überwachen möchte benötigt `check_nrpe`: 137 | 138 | cd ~/src/ 139 | wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz/download -O nrpe-2.15.tar.gz 140 | tar xzf nrpe-2.15.tar.gz 141 | 142 | cd nrpe-2.15/ 143 | ./configure --prefix=/home/$USER/opt/icinga \ 144 | --with-nagios-user=$USER \ 145 | --with-nagios-group=$USER \ 146 | --with-nrpe-user=$USER \ 147 | --with-nrpe-group=$USER 148 | 149 | make 150 | make install 151 | --------------------------------------------------------------------------------