Pandora

De Wikillano

Instalación de Dependencias:

apt-get install gcc make

Pandora Data server

apt-get install libxml-perl
apt-get install libdigest-hmac-perl
apt-get install libdate-manip-perl
apt-get install libdbd-mysql-perl
apt-get install libtimedate-perl
apt-get install libxml-simple-perl

Pandora network server


root@sol:~# apt-get install libio-socket-ssl-perl
root@sol:~# apt-get install libsnmp-perl
root@sol:~# apt-get install snmpd snmp

también necesitamos el paquete Net-Ping-External-0.12.tar.gz ya que sino al ejecutar el servidor network server nos dará el siguiente error

root@sol:/opt/pandora_server# ./pandora_network start 
Can't locate Net/Ping/External.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8
/usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at ./pandora_network.pl line 27. 
BEGIN failed--compilation aborted at ./pandora_network.pl line 27. 
Cannot start Pandora Network Server. Aborted


Una vez lo bajemos de internet http://search.cpan.org/CPAN/authors/id/C/CH/CHORNY/Net-Ping-External-0.12.tar.gz

los descomprimimos y ejecutamos lo siguiente:

perl Makefile.PL 
make 
make test 
make install

Instalando Pandora Server

root@sol:~# mkdir -p /opt/pandora
root@sol:~# cd /opt/pandora/

bajarse el software pandora de la web y desempaquetarlo en el directorio.

root@sol:/opt/pandora# tar -zxvf PandoraFMS_Server-1.2.0.tar.gz

al final debemos dejar el directorio de esta manera:

root@sol:/opt/pandora_server#

y dentro de pandora-server el contenido del mismo:

root@sol:/opt/pandora_server# ls -lrt
total 88
-rw-r--r-- 1 david david  2789 2006-11-30 18:03 README
-rwxr-xr-x 1 david david  2862 2006-11-30 18:03 pandora_snmpconsole
-rwxr-xr-x 1 david david  1511 2006-11-30 18:03 pandora_server
-rwxr-xr-x 1 david david  1547 2006-11-30 18:03 pandora_network
-rw-r--r-- 1 david david 13960 2006-11-30 18:03 INSTALL
-rw-r--r-- 1 david david 14875 2006-11-30 18:03 COPYING
-rw-r--r-- 1 david david  1654 2006-11-30 18:03 ChangeLog
-rw-r--r-- 1 david david    33 2006-11-30 18:03 AUTHORS
drwxr-xr-x 2 david david  4096 2006-11-30 18:04 var
drwxr-xr-x 4 david david  4096 2006-11-30 18:04 specs
drwxr-xr-x 2 david david  4096 2006-11-30 18:04 data_in
drwxr-xr-x 2 david david  4096 2006-11-30 18:14 util
drwxr-xr-x 2 david david  4096 2006-12-04 00:25 conf
drwxr-xr-x 2 david david  4096 2006-12-04 00:26 doc
drwxr-xr-x 2 david david  4096 2006-12-04 00:26 bin
drwxr-xr-x 2 david david  4096 2007-03-19 17:12 log

Crear usuario pandora en el sistema:

root@sol:/opt/pandora# useradd pandora -d /home/pandora

Creamos el directorio:

root@sol:/opt/pandora# mkdir /home/pandora

cambiamos el propietario:

root@sol:/opt/pandora# chown pandora /home/pandora

También deberemos crear un link desde /opt/pandora_server/util/snmptrapd a /usr/sbin/snmptrapd

root@pandora:/opt/pandora_server/util# ln -s  /usr/sbin/snmptrapd  snmptrapd

debemos asignarle un password al usuario que acabamos de crear.

Prueba del network server:

root@sol:/opt/pandora_server# ./pandora_network start

Pandora Network Server 1.2 Build PS061123 Copyright (c) 2004-2006 ArticaST
This program is Free Software, licensed under the terms of GPL License v2 or later.
You can download latest versions and documentation at http://pandora.sourceforge.net. 

[W] It is not a good idea running Pandora Server as root user, please DON'T DO IT!
[*] Server basepath is /opt/pandora_server
[*] Server logfile at /opt/pandora_server/log/pandora_server.log
[*] Server errorlogfile at /opt/pandora_server/log/pandora_server.error
[*] Server incoming directory at /opt/pandora_server/data_in
[*] Server keepalive 60
[*] Server threshold 5
[*] You are running Pandora Network Server. 
[*] This server is running in MASTER mode.
[E] Error connecting database in init Phase. Aborting startup. 

Cannot start Pandora Network Server. Aborted

-Nos falta la bbdd.

Instalación de MYSQL y PHP para la web de Pandora

apt-get install mysql-server-5
apt-get install php5 (Al instalar php5 se me instaló apache2)
apt-get install php5-gd php5-mysql php5-snmp

Cambiamos la password de root en mysql:

root@sol:/opt/jpgraph-2.1.4# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8 to server version: 5.0.24a-Debian_9-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> UPDATE user SET Password=PASSWORD('password') WHERE User='root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

Cambiamos el path del documentRoot a /data/www (esto varia dependiendo la estructura de dirs) en /etc/apache2/sites-enabled el site default y cambiarle el documentRoot.

Reiniciamos apache

root@sol:/etc/apache2# /etc/init.d/apache2 force-reload

Nos descargamos pandora-console y lo descomprimimos:

root@sol:/opt# tar -zxvf PandoraFMS_Console-1.2.0.tar.gz

Creamos el directorio

mkdir -p /data/www

lo movemos a /data/www

root@sol:/opt# mv pandora /data/www/


Vamos al directorio raiz del servidor web y entramos en el directorio pandora:

root@sol:/opt# cd /data/www/pandora/

Descargamos jpgraph: http://www.aditus.nu/jpgraph/

http://hem.bredband.net/jpgraph2/jpgraph-2.1.4.tar.gz

y los desempaquetamos en /data/www/pandora/reporting/jpgraph

el contenido de src lo debemos desempaquetar en /data/www/pandora/reporting/jpgraph

ahora debemos copiar la fuente:

root@sol:/data/www/pandora/reporting# ls -lrt
total 528
-rw-r--r-- 1 www-data www-data   3085 2006-12-05 19:00 stat_win.php
-rw-r--r-- 1 www-data www-data 477820 2006-12-05 19:00 FreeSans.ttf
-rw-r--r-- 1 www-data www-data  46811 2006-12-05 19:00 fgraph.php
drwxr-xr-x 6 www-data www-data   4096 2007-03-20 12:18 jpgraph

en las siguientes 2 rutas :

cp FreeSans.ttf /usr/share/fonts/truetype/arial.ttf
cp /opt/pandora_console/reporting/FreeSans.ttf  /usr/X11R6/lib/X11/fonts/truetype/arial.ttf

si no existe la ruta anterior la crearemos.

mkdir -p /usr/X11R6/lib/X11/fonts/truetype/

Creamos la BBDD

Entramos en mysql y creamos la bbdd

mysql> create database pandora;

salimos de mysql y ejecutamos lo siguiente:

root@sol:/data/www/pandora# cat pandoradb.sql | mysql -D pandora -u root -p
root@sol:/data/www/pandora# cat pandoradb_data.sql | mysql -D pandora -u root -p

Instalamos phpmyadmin (también podríamos instalar webmin) :

apt-get install phpmyadmin

movemos la carpeta de phpmyadmin a /data/www Entramos a phpmyadmin y Creamos el usuario pandora en la bbdd con permisos sobre la bbdd pandora creada anteriormente.

configurar archivos para la conexión a la bbdd:

cd /opt/pandora_server/conf/
vim pandora_server.conf

modificar las siguientes lineas:

dbuser pandora dbpass password bbdd 
dbhost localhost

También tenemos que modificar el siguiente fichero:

root@sol:/data/www/pandora/include# vim config.php
$dbname="pandora";      // MySQL DataBase
$dbuser="pandora";      // DB User $dbpassword="password";  // Password
$dbhost="localhost";    // MySQL Host
$config_fontpath = "/usr/share/fonts/truetype/arial.ttf"; (ruta donde dejamos la fuente que copiamos anteriormente.)

El usuario de la web es admin/pandora

Crear links arranque inicio del sistema:

Ir al directorio:

cd /etc/init.d/

crear los links

ln -s /opt/pandora_server/pandora_snmpconsole
ln -s /opt/pandora_server/pandora_server
ln -s /opt/pandora_server/pandora_network
pandora_snmpconsole -> /opt/pandora_server/pandora_snmpconsole
pandora_server -> /opt/pandora_server/pandora_server
pandora_network -> /opt/pandora_server/pandora_network

agregar los scripts a los niveles de arranque con update-rc.d

update-rc.d pandora_snmpconsole defaults
update-rc.d pandora_server defaults
update-rc.d pandora_network defaults


Arrancar Servidores con usuario Pandora

Para que el usuario que arranque estos scripts sea pandora, debemos modificarlos,

cd $PANDORA_HOME/bin pandora_server

su pandora -c "./pandora_server.pl $PANDORA_HOME -D"
MYPID=`ps aux | grep 'pandora_server.pl' | grep -v grep | tail -1 | awk '{print $2}'`
if [ ! -z "$MYPID" ]
then

pandora_snmpconsole

cd $PANDORA_HOME/bin
su pandora -c "./pandora_snmpconsole.pl $PANDORA_HOME -D"
MYPID=`ps aux | grep 'pandora_snmpconsole.pl' | grep -v grep | tail -1 | awk '{print $2}'`
if [ ! -z "$MYPID" ]

pandora_network

este servidor debe ejecutarse como root si queremos utilizar la función de ping.

Lo mismo pasa con el script de arranque del agente

root@pluton:/etc/init.d# ln -s /opt/pandora_agent/pandora_agent_daemon
root@pluton:/etc/init.d# update-rc.d pandora_agent_daemon defaults


Instalar agentes en linux:

Crear usuario pandora en el sistema:

root@sol:/opt/pandora# useradd pandora -d /home/pandora

Creamos el directorio:

root@sol:/opt/pandora# mkdir /home/pandora

cambiamos el propietario:

root@sol:/opt/pandora# chown pandora /home/pandora

debemos asignarle un password al usuario que acabamos de crear.

Existe un problema a la hora de lanzar el agente con el usuario pandora, ya que pandora no tiene permisos para escribir en /var/run y tampoco tiene permisos para leer en /var/log/syslog

por ese motivo deberemos hacer a pandora del grupo adm y crear un grupo “gesadmin” y darle permisos en el directorio /var/run

Generar claves para SSH

Entramos con el usuario pandora y accedemos al directorio .ssh (lo crea el comando siguiente)

ssh-keygen -t dsa

No ponemos ningún nombre ni passphrase, lo dejamos todo por defecto.

Esto nos generará dos claves la pública y la privada:

pandora@agent:~/.ssh$ ls -lrt
total 12
-rw-r--r-- 1 pandora pandora 442 2007-03-20 15:51 known_hosts
-rw-r--r-- 1 pandora pandora 603 2007-03-20 16:18 id_dsa.pub
-rw------- 1 pandora pandora 668 2007-03-20 16:18 id_dsa

Pasamos la clave publica al servidor:

scp -r id_dsa.pub root@172.24.43.74:/home/pandora/.ssh/

una vez en el servidor añadimos la clave pública en el fichero authorized_keys2 en el home de pandora dentro de .ssh

cat id_dsa.pub >> authorized_keys2
chmod 600 authorized_keys2
rm id_dsa.pub

Probamos de hacer un ssh a la máquina servidora con el usuario pandora, si no nos pide passwd, todo esta correcto.

Descargamos y desempaquetamos el agente para UNIX en /opt/pandora_agent

PandoraFMS_Agent_UNIX-1.2.0.tar.gz

una vez descomprimido encontramos lo siguiente:

pandora@agent:/opt/pandora_agent$ ls -lrt

total 64
-rw-r--r-- 1 pandora pandora 2789 2006-11-30 18:03 README
-rwxr-xr-x 1 pandora pandora 2131 2006-11-30 18:03 pandora_user.conf
-rwxr-xr-x 1 pandora pandora 8020 2006-11-30 18:03 pandora_agent.sh
-rwxr-xr-x 1 pandora pandora 1561 2006-11-30 18:03 pandora_agent_daemon
-rw-r--r-- 1 pandora pandora 1266 2006-11-30 18:03 INSTALL
-rw-r--r-- 1 pandora pandora 14875 2006-11-30 18:03 COPYING
-rw-r--r-- 1 pandora pandora 71 2006-11-30 18:03 AUTHORS
drwxr-xr-x 2 pandora pandora 4096 2006-11-30 18:04 doc
-rw-r--r-- 1 pandora pandora 5758 2007-03-21 09:32 pandora.log
-rwxr-xr-x 1 pandora pandora 2477 2007-03-21 11:11 pandora_agent.conf
drwxr-xr-x 2 pandora pandora 4096 2007-03-21 11:16 data_out

Cambiar el identity file del scp del agente, ya que el script será ejecutado como usuario root y el scp como pandora, dando error de conexión debido a las claves dsa que irá a buscarlas al home de root.

root@pluton:/opt/pandora_agent# vim pandora_agent.sh

ir a la linea:

# Send packets to server and detele it
scp -i /home/pandora/.ssh/id_dsa $PANDORA_FILES
pandora@$SERVER_IP:$SERVER_PATH > /dev/null 2> /dev/null

añadir la opcion -i al comando scp.

Debemos configurar el fichero pandora_agent.conf

# General Parameters
# ==================
server_ip 172.24.42.193
server_path /opt/pandora_server/data_in
pandora_path /opt/pandora_agent/
temporal /opt/pandora_agent/data_out
interval 120
debug 0
checksum 0
#agent_name geminon

debemos poner la ip del servidor pandora, y donde estan los directorios data_in en el servidor, y en local el data_out y la ubicación de pandora_agent

El intervalo por defecto es 300, pero podemos cambiar el tiempo de refresco del agente.

En este fichero, un poco más abajo encontramos los módulos de monitorización.

Añadir los script al arranque:

root@pluton:/etc/init.d# ln -s /opt/pandora_agent/pandora_agent_daemon
root@pluton:/etc/init.d# update-rc.d pandora_agent_daemon defaults

Para ejecutar el agente, con el usuario pandora debemos modificar el script de arranque para que el agente lo arranque y lo pare correctamente.

### BEGIN INIT INFO
# Provides: pandora_agent
# Required-Start: $network
# Required-Stop: $network
# Default-Start:  S 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start/stop pandora-agent daemon
### END INIT INFO
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
PANDORA_PATH=/opt/pandora_agent
DAEMON=pandora_agent.sh
PIDFILE=/var/run/pandora_agent.pid
 

if [ ! -f $PANDORA_PATH/$DAEMON ]
then
       echo "Pandora Agent not found at $PANDORA_PATH/$DAEMON, please check setup"
       exit
fi

case "$1" in
 start)
       if [ -f $PIDFILE ]
       then
               echo "Pandora Agent is currently running on this machine. Aborting now..."
               exit
       fi
       su pandora -c "$PANDORA_PATH/$DAEMON $PANDORA_PATH >> $PANDORA_PATH/pandora.log &  MYPID=$!"
       #echo $MYPID > $PIDFILE
       
       echo "Pandora Agent is now running"
       ;;
 stop)
               echo "Stopping Pandora Agent."
               PID_2=`ps aux | grep 'pandora_agent.sh' | grep -v grep | tail -1 | awk '{print $2}'`
               kill -9 $PID_2
       ;;
 force-reload|restart)
       $0 stop
       $0 start
       ;;
 *)
       echo "Uso: /etc/init.d/pandora_agent {start|stop|restart|force-reload}"
       exit 1
esac

En redhat debemos modificar el script para poder ejecutarlo en el arranque. debemos añadir una lineas quedando el principio del script como:

#!/bin/bash

# chkconfig: - 85 15
# description: agente monitorizacion pandora
# processname: pandora_agent_daemon 

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
PANDORA_PATH=/opt/pandora_agent/
DAEMON=pandora_agent.sh
PIDFILE=/var/run/pandora_agent.pid

el número de 85 es el orden de arranque de script y el 15 el de parada

lo que sigue del script debe estar igual que lo anterior

if [ ! -f $PANDORA_PATH/$DAEMON ]
then
       echo "Pandor...

despues de esto podemos añadir el script a los runlevels de la siguiente manera:

chkconfig --add pandora_agent_daemon

con ntsysv podemos añadir o quitar los scripts del arranque.

Instalar el agente en Windows:

Descargar el instalador: PandoraFMS_Windows_Agent_Setup-1.2-0.exe

Seguir las instrucciones de la instalación y crear las claves con puttygen.

exportar la clave OpenSSH Sin password!



en construccion

IMPORTANTE la guardamos en la siguiente ruta como id_dsa C:\Program Files\Pandora_Agent\key\id_dsa


Ahora COPIAMOS la clave pública y la PEGAMOS como C:\Archivos de programa\Pandora_Agent\key\id_dsa.pub,



Ahora deberemos pegarla también en el fichero authorized_keys2 en /home/pandora/.ssh

Yo lo he hecho de la siguiente manera:

Instalo putty y me conecto al servidor por ssh con el usuario pandora, una vez dentro y con la clave pública copiada de la ventana de puttygen, creo un fichero con vim y pego la clave dentro.

despues cat fichero >> authorized_keys2

Para realizar las pruebas de conexión podemos realizar lo siguiente:

desde un cmd en windows:

C:\Archivos de programa\Pandora_Agent>PandoraAgent.exe --test-ssh Public key file C:\Archivos de programa\Pandora_Agent\key\id_dsa.pub exists. Private key file: C:\Archivos de programa\Pandora_Agent\key\id_dsa exists. Connecting with 172.24.42.193. Authentication successful. Host fingerprint: 19:D5:4C:A8:DC:33:2E:0F:77:54:1E:E2:AE:C9:A4:33 Created a blank XML file in C:\windows\temp\ssh.test Remote copying C:\windows\temp\ssh.test on server 172.24.42.193 at /opt/pandora_ server/data_in/ssh.test Successfuly file copied to remote host Successfuly disconnected from remote host The SSH test was successful!


por otro lado tenemos el fichero de configuración del agente en el cual podemos configurar la ip del servidor y demás parámetros.

  1. General Parameters
  2. ================== server_ip 172.24.42.193

server_path /opt/pandora_server/data_in temporal "C:\windows\temp" interval 300 agent_name win_prueba

  1. debug 1


El nombre que le pongamos al agente debe ser el mismo al crear el agente en la web de administración de PANDORA!!


Problemas conocidos:

En la web no carga algunas imágenes, si le damos a ver imagen nos sale el siguiente error

Fatal error: Call to undefined function imageantialias() in /var/www/pandora/reporting/jpgraph/jpgraph.php on line 5792

cambiar: Hi, the solution is this one. Let's see, go to line: 5792 This is what you're gonna find:

$this->use_anti_aliasing = $aFlg; imageantialias($this->img,$aFlg);

sustitir:

$this->use_anti_aliasing = false; //imageantialias($this->img,$aFlg);



Si monitorizamos alguna cosa con texto (string) por ejemplo, monitorizar la salida del syslog, si le damos a la gráfica del día veremos que sólo nos salen 12 caracteres del total del texto. para arreglar esto debemos modificar el siguiente fichero:

/data/www/pandora/operation/agentes el fichero root@pandora:/data/www/pandora/operation/agentes# vim datos_agente.php

line 110:} else line 111:echo substr($myvalue,0,12); line 112:} else line 113:echo substr($row["datos"],0,12);

Cambiar el número 12 por el número que queramos o obviar la función.

echo $myvalue; echo $row["datos"];


Error NO SOLUCIONADO!!

Al instalar pandora con mysql4 y php4 he encontrado el siguiente error al cargar los gráficos:

Warning: main(jpg-config.inc.php): failed to open stream: No such file or directory in /dungeons/www/pandora/reporting/jpgraph/jpgraph.php on line 11

Fatal error: main(): Failed opening required 'jpg-config.inc.php' (include_path='.:/usr/share/php:/usr/share/pear') in /dungeons/www/pandora/reporting/jpgraph/jpgraph.php on line 11

la jpgraph que he instalado son la versión jpgraph-1.21 ya que son las que soporte php4, el problema parece ser que no encuentra el fichero jpg-config.inc.php que se encuentra en la versión 2.X de jpgraph, la he bajado y he movido el fichero con los demás de la versión 1.X.

Aparentemente funciona, pero algunos gráficos no terminan de funcionar.

Herramientas personales