Appuntivari » Cronologia » Versione 4
Versione 3 (japoco romagnoli, 23-07-2013 13:02) → Versione 4/5 (japoco romagnoli, 23-07-2013 17:05)
h1. Breve descrizione report icinga con jasper
https://www.icinga.org/about/icinga-reporting/get-started/
https://wiki.icinga.org/display/howtos/Icinga+Web+Reporting+Integration
h2. Installo _php-soap_:
<pre>
apt-get install php-soap
</pre>
h2. Abilitazione reporting:
Si abilita il reporting da parte di icinga andando ad aprire il file @/etc/icinga-web/conf.d/module_reporting.xml@ in particolare si cambia a _true_ il valore di _module enabled_ :
<pre>
nano /etc/icinga-web/conf.d/module_reporting.xml
</pre>
<pre>
<module enabled="true">
</pre>
Dopo di che si deve effettuare la pulitura della cache, che deve essere fatta ogni volta che si cambia il file di configurazione di icinga-web:
<pre>
/usr/lib/icinga-web/bin/clearcache.sh
</pre>
Nel file @/etc/icinga-web/conf.d/module_reporting.xml@ si cambiano anche i valori relativi ai parametri di collegamento a _jasperserver_
cambiando le righe:
<pre>
...
<ae:parameter name="jasper_url">http://127.0.0.1:8080/jasperserver</ae:parameter>
...
...
<ae:parameter name="tree_root">/icinga</ae:parameter>
...
</pre>
in:
<pre>
...
<ae:parameter name="jasper_url">http://192.168.1.126:8080/jasperserver</ae:paramete>
...
...
<ae:parameter name="tree_root">/icinga/reports</ae:parameter>
...
</pre>
Si effettua una nuova pulizia della cache:
<pre>
/usr/lib/icinga-web/bin/clearcache.sh
</pre>
h2. Cronks:
Si procede con le modifiche al file @/etc/icinga-web/conf.d/cronks.xml@ cambiando la riga:
<pre>
...
<ae:parameter name="hide">true</ae:parameter>
...
</pre>
nella riga:
<pre>
...
<ae:parameter name="hide">false</ae:parameter>
...
</pre>
Per le distribuzione Debian si deve creare una giusta cartella per i report con:
<pre>
install --directory --mode=0770 --owner=www-data --group=www-data /var/cache/icinga-web/reports
</pre>
Tornando al file @/etc/icinga-web/conf.d/module_reporting.xml@ si deve aggiungere una riga per ridefinire cartella dei report:
<pre>
nano /etc/icinga-web/conf.d/module_reporting.xml
</pre>
aggiungendo una linea:
<pre>
<setting name="dir.download">/var/cache/icinga-web/reports</setting>
</pre>
ottenendo qualcosa del tipo:
<pre>
<module enabled="true">
<settings>
<setting name="jasperconfig.default">
<ae:parameter name="jasper_url">http://192.168.1.126:8080/jasperserver</ae:parameter>
<ae:parameter name="jasper_user">jasperadmin</ae:parameter>
<ae:parameter name="jasper_pass">jasperadmin</ae:parameter>
<ae:parameter name="tree_root">/icinga/reports</ae:parameter>
</setting>
<setting name="dir.download">/var/cache/icinga-web/reports</setting>
</settings>
</module>
</pre>
h2. MySQL
si fornisce a MySQL le funzioni su cui si basano i servizi importando il file _availability.sql_ sulla macchina su cui è installato icinga con:
<pre>
mysql icinga < icinga-reports-1.9.0/db/icinga/mysql/availability.sql
</pre>
oppure copiandolo dalla macchina su cui si trova icinga-reports:
<pre>
scp db/icinga/mysql/availability.sql mysqlmast:
</pre>
per controllare che tutto sia effettivamente andato a buon fine si può fare:
<pre>
mysql -u icinga-idoutils -p
Enter password:
</pre>
<pre>
mysql> SELECT * FROM INFORMATION_SCHEMA.ROUTINES;
</pre>
ottenendo qualcosa del tipo:
<pre>
+---------------------+-----------------+----------------+---------------------+--------------+----------------+--------------+--------------------+---------------+-------------------+-----------------+------------------+-----------------+----------+---------------+---------------------+---------------------+----------+-----------------+----------------+----------------------+----------------------+--------------------+
| SPECIFIC_NAME | ROUTINE_CATALOG | ROUTINE_SCHEMA | ROUTINE_NAME | ROUTINE_TYPE | DTD_IDENTIFIER | ROUTINE_BODY | ROUTINE_DEFINITION | EXTERNAL_NAME | EXTERNAL_LANGUAGE | PARAMETER_STYLE | IS_DETERMINISTIC | SQL_DATA_ACCESS | SQL_PATH | SECURITY_TYPE | CREATED | LAST_ALTERED | SQL_MODE | ROUTINE_COMMENT | DEFINER | CHARACTER_SET_CLIENT | COLLATION_CONNECTION | DATABASE_COLLATION |
+---------------------+-----------------+----------------+---------------------+--------------+----------------+--------------+--------------------+---------------+-------------------+-----------------+------------------+-----------------+----------+---------------+---------------------+---------------------+----------+-----------------+----------------+----------------------+----------------------+--------------------+
| icinga_availability | NULL | icinga | icinga_availability | FUNCTION | decimal(7,4) | SQL | NULL | NULL | NULL | SQL | NO | READS SQL DATA | NULL | DEFINER | 2013-07-22 13:57:32 | 2013-07-22 13:57:32 | | | root@localhost | latin1 | latin1_swedish_ci | latin1_swedish_ci |
+---------------------+-----------------+----------------+---------------------+--------------+----------------+--------------+--------------------+---------------+-------------------+-----------------+------------------+-----------------+----------+---------------+---------------------+---------------------+----------+-----------------+----------------+----------------------+----------------------+--------------------+
1 row in set (0.00 sec)
</pre>
si danno i permessi necessari all'utente che si collegherà ad icinga col client:
<pre>
GRANT ALL ON icinga.* To 'icinga-idoutils'@'macchina_jasper' IDENTIFIED BY PASSWORD 'xxxxxxxxxxxxxxxxx';
</pre>
anche se da documentazione basterebbe un:
<pre>
GRANT EXECUTE ON icinga.* To <username>@<host>;
</pre>
infine ottenendo qualcosa del tipo:
<pre>
mysql> show grants for 'icinga-idoutils'@'macchina_jasper';
+----------------------------------------------------------------------------------------------------------------------------+
| Grants for icinga-idoutils@miller.fi.trl |
+----------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'icinga-idoutils'@'macchina_jasper' IDENTIFIED BY PASSWORD 'xxxxxxxxxxxxxxxxx' |
| GRANT EXECUTE ON `icinga`.* TO 'icinga-idoutils'@'macchina_jasper' |
+----------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
</pre>
h3. Accorgimenti su macchina Icinga:
a installazione avvenuta c'erano alcuni problemi riguardo i valori attribuiti di default ad alcune variabili del file _/etc/php5/conf.d/suhosin.ini_
per cui è risultato necessario cambiare alcuni valori da 64 a 128, seguendo le indicazioni ricavate consultando i log nel syslog:
<pre>
less /var/log/syslog
</pre>
h2. Macchina Jasper:
Bisogna installare _icinga-reports_ per cui:
<pre>
git clone git://git.icinga.org/icinga-reports.git ; cd icinga-reports
</pre>
dopo di che:
<pre>
./configure --with-icinga-user=root --with-icinga-group=root --with-jasper-server=/opt/jasperreports-server-cp-5.1.0/
</pre>
anche se da letteratura sarebbe stato:
<pre>
./configure --with-jasper-server=/opt/jasperreports-server-cp-5.1.0/
</pre>
ma vengono fuori problemi con l'username.
A questo punto poi si fa:
<pre>
make install-mysql-connect
o
make install
</pre>
ed infine si riavvia jasper:
<pre>
cd /opt/jasperreports-server-cp-5.1.0/
./ctlscript.sh stop
./ctlscript.sh start
</pre>
h3. Accorgimento su macchina jasper:
si è dovuto creare un utente Icinga sulla macchina per generare dei file che nel processo di installazione vengono controllati e nel caso non vengano trovati l'installazione non riesce ad andare a buon fine.