Homer SIP Capture Server 5.01 - Instalación manual en CentOS 6.7 64bit

Es noticia de antes de ayer que fue liberada la versión 5.01 de Homer SIP Capture Server, seguramente el mejor programa para monitoreo y auditoría de señalización SIP y, con la ultima versión, del protocolo RTP (flujo media). Ya vimos como instalar esta ultima versión en un CentOS 7.X de forma semiautomática. Hoy veremos como instalar la ultima versión, de forma manual, en un CentOS 6.7 64 bit. Esto porque la instalación semiautomática en esta versión de CentOS todavía no funciona correctamente. Realizaremos la instalación en un VPS de Vultr.

Primero actualizamos el sistema:

yum update -y

Luego configuramos la zona horaria:

rm /etc/localtime

ln -s /usr/share/zoneinfo/America/Bogota /etc/localtime

Para tener siempre actualizada la hora, instalamos ntp y lo configuramos para que arranque con el sistema:

yum install ntp -y
chkconfig ntpd on
service ntpd start

Instalamos los repositorios Epel y Mysql-Community ya que esta versión de Homer requieres una versión >= 5.6 de MySQL.

yum install -y epel-release https://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm

Instalamos la versión 5.7 de MySQL:

yum install -y mysql-community-client mysql-community-common mysql-community-libs mysql-community-server mysql-community-devel

Instalamos Apache, GIT y PHP:

yum install -y httpd mod_ssl php php-mysql php-pdo php-gd php-pear perl-DBI perl-DBD-MySQL git

pear install pecl/json

Descargamos la parte Web y las API de Homer:

cd /usr/src

git clone https://github.com/sipcapture/homer-api.git

git clone https://github.com/sipcapture/homer-ui.git

Creamos una carpeta para la parte Web de Homer:

mkdir -p /var/www/sipcapture/htdocs

Modificamos la configuración de Apache:

nano /etc/httpd/conf.d/homer.conf

al final del archivo pegamos las siguientes líneas:

# Loading mod_rewrite if not done yet
<IfModule !mod_rewrite.c>
LoadModule rewrite_module modules/mod_rewrite.so
</IfModule>
# Define virtual host for HOMER5 on standard http tcp port 80
<VirtualHost *:80>
        ServerAdmin support@yourhost.org
        ServerName  homer5.yourhost.org

        # Indexes + Directory Root.
        DirectoryIndex index.php index.html index.htm
        DocumentRoot /var/www/sipcapture/htdocs

        <Directory /var/www/sipcapture/htdocs/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride all
            Order allow,deny
            allow from all
        </Directory>

        # CGI Directory
        ScriptAlias /cgi-bin/ /var/www/sipcapture/cgi-bin/
        <Location "/var/www/sipcapture/cgi-bin">
            Options +ExecCGI -MultiViews
            Order allow,deny
            Allow from all
        </Location>

        # Logfiles
        ErrorLog  /var/log/httpd/sipcapture-error.log
        CustomLog /var/log/httpd/sipcapture-access.log combined
</VirtualHost>

Personalizamos las línea ServerAdmin y ServerName y guardamos los cambios. Configuramos Apache para que arranque con el sistema:

chkconfig httpd on

Copiamos la carpeta Web de Homer en la carpeta creada en la parte Web:

cd /usr/src/homer-ui

cp -rf * /var/www/sipcapture/htdocs/

movemos la carpeta /usr/src/homer-api/api en en la carpeta creada en la parte Web:

mv /usr/src/homer-api/api /var/www/sipcapture/htdocs

Iniciamos MySQL y lo configuramos para que arranque en automático:

service mysqld start

chkconfig mysqld on

Cuando se inicia se generará en automático una clave para el usuario root que encontraremos en el log de MySQL:

nano /var/log/mysqld.log

una línea parecida a esta:

[Note] A temporary password is generated for root@localhost: jW0nCffa.eaa

jW0nCffa.eaa será la clave del usuario root de MySQL. Ponemos en seguridad el servidor:

mysql_secure_installation

image

image

Eliminamos el plugin de MySQL validate password:

mysql -u root -pjW0nCffa.eaa

mysql> delete from mysql.plugin;
Query OK, 1 row affected (0.00 sec)

Salimos del cliente MySQL:

mysql> quit

Configuramos la zona horaria para MySQL:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -pjW0nCffa.eaa mysql

nano /etc/my.cnf

Bajo la etiqueta [mysqld] añadimos (personalizar según su País):

default-time-zone = America/Bogota

Reiniciamos MySQL:

service mysqld restart

Como nueva contraseña utilizamos la misma creada por MySQL. Pasamos a la creación de las base de datos:

mysql -u root -pjW0nCffa.eaa < /usr/src/homer-api/sql/homer_databases.sql

mysql -u root -pjW0nCffa.eaa < /usr/src/homer-api/sql/homer_user.sql

Creamos las tablas en las distintas base de datos:

mysql -u root -pjW0nCffa.eaa homer_data < /usr/src/homer-api/sql/schema_data.sql

mysql -u root -pjW0nCffa.eaa homer_configuration < /usr/src/homer-api/sql/schema_configuration.sql

mysql -u root -pjW0nCffa.eaa homer_statistic < /usr/src/homer-api/sql/schema_statistic.sql

Modificamos un archivo de configuración de Homer:

nano /var/www/sipcapture/htdocs/api/preferences.php

Cambiamos estas líneas:

define('HOMER_TIMEZONE', "Europe/Amsterdam"); /* Set a global application default timezone */
define('ALARM_FROMEMAIL',"homer@example.com");
define('ALARM_TOEMAIL',"admin@example.com");

para que queden (personalizar):

define('HOMER_TIMEZONE', "America/Bogora"); /* Set a global application default timezone */
define('ALARM_FROMEMAIL',homer@miodominio.org);
define('ALARM_TOEMAIL',admin@miodominio.org);

Guardamos los cambios y copiamos los scripts de Homer en la carpeta que sigue:

cp /usr/src/homer-api/scripts/* /usr/local/bin/

creamos un crontab para la rotación de la tablas en la base de datos homer_data:

cd /root

nano .bash_profile

al final del archivo añadimos:

export EDITOR=/usr/bin/nano
export PS1='\[\033[0;35m\]\H\[\033[0;33m\] \w\[\033[00m\]: '

Guardamos los cambios y recargamos la configuración:

source .bash_profile

Luego:

crontab -e

añadimos la siguiente línea:

30 3 * * * root /usr/local/bin/homer_rotate > /dev/null 2>&1

Guardamos los cambios y modificamos la configuración de MYSQL:

nano /etc/my.cnf

al final del archivo añadimos:

max_connections = 8000
key_buffer_size = 512M
myisam_sort_buffer_size = 128M
join_buffer_size = 4M
read_buffer_size = 4M
sort_buffer_size = 8M
thread_cache_size = 384
wait_timeout = 7200
connect_timeout = 10
tmp_table_size = 64M
max_heap_table_size = 64M
max_allowed_packet = 64M
max_connect_errors = 1000
read_rnd_buffer_size = 524288
bulk_insert_buffer_size = 8M
query_cache_limit = 4M
query_cache_size =128M
query_cache_type = 1
query_prealloc_size = 65536
query_alloc_block_size = 131072

thread_cache_size = 16
open_files_limit = 24000
table_open_cache = 1024
read_rnd_buffer_size = 16M
myisam_sort_buffer_size = 128M
delayed_insert_limit = 8000
delayed_queue_size = 1000000
delayed_insert_timeout = 600
max_delayed_threads = 600
max_heap_table_size=2G

Guardamos los cambios y reiniciamos MySQL:

service mysqld restart

ejecutamos por primera vez el script para la creación/rotación de las tablas:

/usr/local/bin/homer_rotate

KAMILIO

Continuamos con la instalación del a ultima versión de Kamailio:

cd /usr/src

yum install gcc gcc-c++ bison bison-devel flex make expat expat-devel net-snmp-devel -y

yum install libxml2 libxml2-devel openssl-devel xmlrpc-c-devel lynx pcre pcre-devel ncurses-devel ncurses-libs gdb -y

yum install net-snmp net-snmp-devel net-snmp-libs net-snmp-utils -y

yum install unixODBC unixODBC-devel mysql-connector-odbc libtool-ltdl-devel -y

git clone -b 4.3 git://git.kamailio.org/kamailio kamailio

Entramos en la carpeta creada:

cd kamailio

Preparamos la compilación del sistema indicando que el programa se instalará a partir de la carpeta raíz del VPS:

make PREFIX="/" cfg

target architecture <x86_64>, host architecture <x86_64>
making config...
rm -f modules.lst
make --no-print-directory modules.lst
saving modules list...

Modificamos el archivo que sigue:

nano modules.lst

cambiamos esta línea:

include_modules=

para que quede:

include_modules= db_mysql

Guardamos los cambios. De esta forma se compilará también el modulo para MySQL. Continuamos con la compilación e instalación:

make all

make install

Instalamos el archivo de configuración de sistema y el script de inicio de Kamailio para CentOS:

cd pkg/kamailio/centos/6
cp kamailio.sysconfig /etc/sysconfig/kamailio
nano kamailio.init

Modificamos esta línea:

KAM=/usr/sbin/kamailio

para que quede:

KAM=/sbin/kamailio

Guardamos los cambios y continuamos con la activación del script de arranque:

cp kamailio.init /etc/init.d/kamailio
chmod +x /etc/init.d/kamailio
chkconfig --add kamailio
chkconfig kamailio on

Luego creamos grupo y usuario Kamailio (como configurado en el archivo /etc/sysconfig/kamailio:

groupadd kamailio

useradd -s /bin/false -g kamailio kamailio

Creamos la carpeta donde Kamailio guardará su identificador de proceso:

mkdir /var/run/kamailio

chown -Rf kamailio:kamailio /var/run/kamailio

Para crear un archivo de LOG dedicado:

nano /etc/rsyslog.conf

antes de esta línea:

local7.*                                                /var/log/boot.log

añadimos:

local0.*                                                -/var/log/kamailio.log

Guardamos los camios y seguimos:

touch /var/log/kamailio.log

service rsyslog restart

Copiamos el archivo de configuración predefinido de Kamailio para Homer:

cp /usr/src/homer-api/examples/sipcapture/sipcapture.kamailio /etc/kamailio/kamailio.cfg
cp: overwrite `/etc/kamailio/kamailio.cfg'? y

Lo abrimos:

nano /etc/kamailio/kamailio.cfg

modificamos estas líneas:

log_facility=LOG_LOCAL1
listen=HOMER_LISTEN_PROTO:HOMER_LISTEN_IF:HOMER_LISTEN_PORT

para que queden:

log_facility=LOG_LOCAL0
listen=udp:45.63.104.206:5060

Cambiar la IP que aparece con la IP de su servidor. Se guardan los cambios y se inicia Kamailio:

service kamailio start
Starting kamailio:                                         [  OK  ]

reiniciamos el servidor para ver si todo está bien:

reboot

Como el VPS viene con una configuración predefinida del cortafuegos, lo paramos para poder acceder a la GUI de homer:

service iptables stop

Luego accedemos al pagina de administración de Homer:

http://45.63.104.206

Modificar la IP con la IP de su servidor:

image

usuario: admin

password: test123

Lo primero es entrar al menú Panels –> System Admin y ahí configurar los nodos, aliases, etc…

Luego configuramos los distintos servidores/PBX/Proxy para que envíen copia del trafico SIP/RTCP a Homer.

Me comentan.

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo

7 comentarios

error captAgente

Saludos,

Andrea cuando trato de instalar el CapAgent en el servidor asterisk me da el siguiente error:
ERROR: You need libjson to build CaptAgent API module.
Verify that you have libjson.a or libjson.so installed
If it is in a different directory, try using
the LDFLAGS to set its proper path.
configure: error: Fatal: libjson not found.

El servidor tiene centos 6.7 instalado y asterisk 11

Pude instarlo, pero no puedo

Pude instarlo, pero no puedo ver nada del trafico por la parte web, si entro directo a las tablas de mysql lo puedo ver,.

Luego de instalarlo se necesita configurar algo mas en la parte web?

Re: Pude instarlo, pero no puedo

Hola,

en teoría no. Mira los log de Apache para ver que sale cada vez que intentas realizar una consulta.

En cuanto puedo intento realizar una nueva prueba porque además acaba de salir la versión 5.02

Me comentas

Saludos

Suscribirse a Comentarios de "Homer SIP Capture Server 5.01 - Instalación manual en CentOS 6.7 64bit" Suscribirse a VozToVoice - Todos los comentarios