miércoles, julio 08, 2009

FreeBSD + Icecast2 + Theora

STREAMING SERVER

Requerimientos:
FreeBSD 7.2 instalado

Guias:

http://www.icecast.org/docs.php
http://www.oddsock.org/guides/video.php
http://www.acooke.org/cute/SettingupR0.html

Instalacion:

1) Instalar icecast2
# whereis icecast2
icecast2: /usr/ports/audio/icecast2
# cd /usr/ports/audio/icecast2
# make install clean

2) Instalar ffmpeg2theora
# whereis ffmpeg2theora
ffmpeg2theora: /usr/ports/multimedia/ffmpeg2theora
# cd /usr/ports/multimedia/ffmpeg2theora
# make install clean

3) Instalar ezstream
# whereis ezstream
ezstream: /usr/ports/audio/ezstream
# cd /usr/ports/audio/ezstream
# make install clean

Archivos de configuracion:

cp /usr/local/etc/icecast.xml.sample /usr/local/etc/icecast.xml

Crear una carpeta que tendra los videos
# mkdir /usr/home/hd3/streaming/

Crear el archivo con el listado de los videos y su orden
/usr/home/hd3/streaming/playlist.m3u
en este archivo podemos poner los videos por ejemplo:
# cat playlist.m3u
/usr/home/hd3/streaming/telesursoflibre.mpg

Copiar el archivo de
# cp /usr/local/share/examples/ezstream/ezstream_reencode_theora.xml /usr/local/etc/

# mkdir /var/log/icecast
# touch /var/log/icecast/access.log
# touch /var/log/icecast/error.log
# chmod -R 777 /var/log/icecast/

Iniciar el streaming

$ /usr/local/bin/icecast -c /usr/local/etc/icecast.xml >/dev/null 2>&1 &

$ /usr/local/bin/ezstream -c /usr/local/etc/ezstream_reencode_theora.xml >/dev/null 2>&1 &

Pararlo

killall ffmpeg2theora
killall ezstream
killall icecast

Probar que envia

http://192.168.1.1:8000/theora.ogg

Ajustar la resolucion para el streaming

En el archivo /usr/local/etc/ezstream_reencode_theora.xml
hay 2 lineas que tienen estos valores:
ffmpeg2theora -x 192 -y 128 -a 0 -v 4 --title "@M@" -o - "@T@"
se cambian para que queden asi:
ffmpeg2theora -x 384 -y 256 -a 0 -v 4 --title "@M@" -o - "@T@"

Aqui los archivos de configuracion

Nota:
Como los archivos son en un formato XML, el navegador muestra mal el contenido, de click derecho sobre los links y luego Save link as...
Guardelos en su disco y luego los abre con un editor.
icecast.xml

ezstream_reencode_theora.xml

Para hacer relay de alguna emisora, por ejemplo de www.di.fm

Trance Channel - D I G I T A L L Y - I M P O R T E D
en el archivo http://www.di.fm/mp3/trance.pls

vemos esta linea para conectar
http://scfire-ntc-aa06.stream.aol.com:80/stream/1003

entonces en el archivo de Icecast2 ponemos esto:

<relay>
<server>scfire-ntc-aa06.stream.aol.com</server>
<port>80</port>
<mount>/stream/1003</mount>
<local-mount>/different2.ogg</local-mount>
<on-demand>0</on-demand>

<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>

Y listo, para escuchar, usamos esta direccion:
http://192.168.1.1:8000/different2.ogg.m3u

Nota 2:

El archivo ezstream_reencode_theora.xml es en caso de querer usar archivos en formatos .mpg , si podemos usar directamente archivos de video en formato .ogv debemos usar el archivo ezstream_vorbis.xml con lo que nos ahorraremos procesador ya que no se requiere hacer el reencode, para esto:

# cp /usr/local/share/examples/ezstream_vorbis.xml /usr/local/etc/

Nota:
En este caso el ezstream se debe iniciar con el archivo .xml correcto, en este caso seria:

$ /usr/local/bin/ezstream -c /usr/local/etc/ezstream_vorbis.xml >/dev/null 2>&1 &

Crear el archivo con el listado de los videos .ogv y su orden
/usr/home/hd3/streaming/playlist.m3u
en este archivo podemos poner los videos en formato .ogv por ejemplo:
# cat playlist.m3u
/usr/home/hd3/streaming/otrovideo.ogv

Para verificar que funciona, abrimos en VLC, esta direccion:
http://192.168.1.1:8000/http://alpha:8000/vorbis.ogg.m3u

viernes, julio 03, 2009

FreeBSD + NAGIOS

Requerimientos:

FreeBSD instalado
Apache2 instalado

Instalacion:

1) Instalar nagios
# whereis nagios
nagios: /usr/ports/net-mgmt/nagios
# cd /usr/ports/net-mgmt/nagios
# make install clean

Al finalizar la instalacion te mostrara las lineas que debes poner en el archivo /usr/local/etc/apache22/httpd.conf

<Directory /usr/local/www/nagios>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>

<Directory /usr/local/www/nagios/cgi-bin>
Options ExecCGI
</Directory>

ScriptAlias /nagios/cgi-bin/ /usr/local/www/nagios/cgi-bin/
Alias /nagios/ /usr/local/www/nagios/

2) Hacer que inicie con el sistema colocando en /etc/rc.conf
nagios_enable="YES"

Nota:
Nagios por defecto requiere autenticacion, se puede desactivar temporalmente si cambiamos en
/usr/local/etc/nagios/cgi.cfg
la linea original
use_authentication=1
Por esta otra
use_authentication=0

Y asi podemos hacer pruebas temporalmente para poder ver los contenidos CGI mediante el navegador, pero no es buena idea dejarlo asi.

3) Activando la autenticacion para nagios
En las lineas que nos recomienda la instalacion de nagios para el http.conf le adicionaremos otras de modo que quede asi:

# Modificacion para NAGIOS inicio

<Directory /usr/local/www/nagios>
Order deny,allow
Deny from all
#Allow from 127.0.0.1
Allow from all
# Autenticacion inicio
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/etc/nagios/htpasswd.users
Require valid-user
# Autenticacion fin
</Directory>

<Directory /usr/local/www/nagios/cgi-bin>
Options ExecCGI
# Autenticacion inicio
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/etc/nagios/htpasswd.users
Require valid-user
# Autenticacion fin
</Directory>

ScriptAlias /nagios/cgi-bin/ /usr/local/www/nagios/cgi-bin/
Alias /nagios/ /usr/local/www/nagios/

# Modificacion para NAGIOS fin

Y ya si podemos dejar la linea original como recomiendan para cgi.cfg "use_authentication=1"

4) Creando el password
Crear el archivo htpasswd.users
# touch /usr/local/etc/nagios/htpasswd.users
Ponerle la clave
# htpasswd -c /usr/local/etc/nagios/htpasswd.users nagiosadmin
New password: ******
Re-type new password: ******
Adding password for user nagiosadmin

5) Re-iniciar el apache
# /usr/local/etc/rc.d/apache22 restart
Ya al tratar de ingresar con el navegador a:
http://miservidor/nagios/
nos debera pedir el usuario (nagiosadmin) y la clave (miclavesecreta)

6) Configurando los equipos dentro de nagios
Bueno, esto no sera una guia completa, ya que hay muchas posibilidades.

Nagios se inicia con el comando
# /usr/local/etc/rc.d/nagios start

Pero seguramente no nos iniciara hasta que le dejemos los archivos que requiere, es que vienene con nombres como

Los que estan en /usr/local/etc/nagios/
cgi.cfg-sample
nagios.cfg-sample
resource.cfg-sample

Los que estan en /usr/local/etc/nagios/objects/
commands.cfg-sample
contacts.cfg-sample
localhost.cfg-sample
printer.cfg-sample
switch.cfg-sample
templates.cfg-sample
timeperiods.cfg-sample
windows.cfg-sample

Bueno, en ambos casos solo hay que compiar cada uno de los archivos dentro de sus respectivos folders con los nombres sin el "-sample" y luego editarlos segun se requiera.

Luego inticiamos nagios nuevamente y vemos si arranca sin errores.

Para chequear luego de hacer algun cambio en los archivos podemos usar este comando y si todo esta bien, lo re-iniciamos
# /usr/local/bin/nagios -v /usr/local/etc/nagios/nagios.cfg