Enviado por admin el
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
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:
Modificar la IP con la IP de su servidor:
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.
7 comentarios
error captAgente
Enviado por Andy25 (no verificado) el
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
Re: error CaptAgent
Enviado por admin el
Hola,
parece que hicieron algún cambio en la ultima versión de CaptAgent y se necesita la librería libjson:
cd /usr/src
wget http://www.digip.org/jansson/releases/jansson-2.7.tar.gz
tar -xf jansson-2.7.tar.gz
cd jansson-2.7
./configure
make
make install
Luego intenta compilar nuevamente captagent.
Me comentas
Saludos
- Andrea
Gracias, lo intetare y dejo
Enviado por andy el
Gracias, lo intetare y dejo saber
Pude instarlo, pero no puedo
Enviado por andy el
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
Enviado por admin el
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
Pude validar y es que el
Enviado por andy el
Pude validar y es que el dashboard viene con una fecha configurada por default, solo es cuestion de quitarsela en el panel.
Gracias.
Re: Pude validar y es que el
Enviado por admin el
Hola,
me alegra que ahora todo funcione correctamente.
Saludos