Instalación de Sentry en Ubuntu

¿Qué es Sentry?

Sentry es un monitor de servicios el cual nos permite monitorizar prácticamente todo lo que hace nuestro servidor, muy útil si pretendemos saber si cumplimos nuestro SLA, o simplemente para verificar que nuestros servicios funcionan como es debido.

En primer lugar tenemos que crear un usuario de UNIX llamado sentry, para que el programa pueda trabajar con el, para ello sera necesario disponer de un usuario root

adduser sentry
adduser sentry sudo

Y en el caso de que no tengamos un usuario root habilitado sería necesario escribir la siguiente linea antes de las anteriores

sudo passwd root

Una vez hecho esto, salimos del usuario root y nos logeamos como sentry

exit
su - sentry

Actualizamos el índice de paquetes y todo lo que se pueda actualizar, seguidamente eliminamos todos aquellos paquetes que no son necesarios en nuestro sistema
sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get autoremove

Reiniciamos la maquina, es necesario para aplicar algunas de las actualizaciones

sudo reboot

Instalamos las librerías de Phyton

sudo apt-get install build-essential python-dev

Descargamos la distribución

curl -O http://python-distribute.org/distribute_setup.py

Y ahora la instalamos

sudo python distribute_setup.py

Eliminamos los archivos de instalación

rm distribute*

Usamos la distribución para instalar pip

sudo easy_install pip

Instalamos virtualen y virtualenvwrapper

sudo pip install virtualenv virtualenvwrapper

Para habilitar el virtualenvwrapper hay que añadir la siguiente linea en el archivo .bashrc

echo "" >> .bashrc
echo "source /usr/local/bin/virtualenvwrapper.sh" >> .bashrc

Salimos y volvemos a entrar para reiniciar nuestra consola
exit
su - sentry

Creamos el entorno virtual

mkvirtualenv sentry_env

Instalamos sentry

pip install sentry

Creamos el archivo de configuración, lo podremos encontrar en la ruta ~/.sentry/sentry.conf.py

sentry init

Instalamos la base de datos Postgresql, necesaria para el funcionamiento de Sentry

sudo apt-get install postgresql postgresql-contrib libpq-dev

Instalamos el paquete de administración de Postgresql

sudo -u postgres psql
CREATE EXTENSION "adminpack";
\q

Cambiamos la contraseña del usuario postgres y creamos la base de datos

sudo passwd postgres
sudo su - postgres
psql -d template1 -c "ALTER USER postgres WITH PASSWORD 'changeme';"
createdb your_sentry_db_name
createuser your_sentry_user --pwprompt
psql -d template1 -U postgres
GRANT ALL PRIVILEGES ON DATABASE your_sentry_db_name to your_sentry_user;
\q
exit

Actualizamos el archivo de configuración para poder usar postgres, en este caso usamos el editor nano, aunque puedes usar el que prefieras

nano .sentry/sentry.conf.py

Algo así es como debe de quedar el archivo sentry.conf.py

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'tu_base_de_datos',
'USER': 'el_nombre_de_tu_usuario',
'PASSWORD': 'tu_contraseña',
'HOST': 'localhost',
}
}

También se puede configurar para que nos notifique por correo electrónico cualquier suceso.

Puesto que es necesario vamos a instalar psycopg2

workon sentry_env
pip install psycopg2

Configuramos la base de datos

sentry upgrade

Y con todo esto, ya podemos probar que nuestro servicio funciona

sentry start

Pasamos a instalar nginx

sudo apt-get install nginx

Eliminamos el enlace simbólico por defecto

sudo rm /etc/nginx/sites-enabled/default

Creamos una nueva configuración en blanco, y un enlace simbólico a ella

sudo touch /etc/nginx/sites-available/sentry
cd /etc/nginx/sites-enabled
sudo ln -s ../sites-available/sentry

Editamos el archivo de configuración de nginx

sudo nano /etc/nginx/sites-available/sentry

Este es el aspecto que debe mostrar el archivo una vez editado

server {
# listen on port 80
listen 80;
# for requests to these domains
server_name pvalor.es www.pvalor.es;
# keep logs in these files
access_log /var/log/nginx/sentry.access.log;
error_log /var/log/nginx/sentry.error.log;
# You need this to allow users to upload large files
# See http://wiki.nginx.org/HttpCoreModule#client_max_body_size
# I'm not sure where it goes, so I put it in twice. It works.
client_max_body_size 0;
location / {
proxy_pass http://localhost:9000;
proxy_redirect off;
proxy_read_timeout 5m;
# make sure these HTTP headers are set properly
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

Reiniciamos nginx y arrancamos sentry

sudo service nginx restart
sentry start &

Ahora vamos a instalar y configurar el supervisor, el cual hará que nuestro servicio sea mas fiable y caiga menos.

sudo apt-get install supervisor
sudo nano /etc/supervisor/conf.d/sentry.conf

Esta son las lineas que debemos añadir al archivo sentry.conf

[program:sentry-web]
directory=/home/sentry/
command=/home/sentry/.virtualenvs/sentry_env/bin/sentry start http
autostart=true
autorestart=true
redirect_stderr=true

Reiniciamos el supervisor, y con esto ya lo tendríamos todo hecho

sudo killall supervisord
sudo supervisord

Cuando queramos actualizar Sentry con esto lo tenemos hecho

workon sentry_env
pip install sentry --upgrade
sentry upgrade
sudo supervisorctl restart sentry-web

Y con esto ya lo tenemos instalado y corriendo, tan solo nos faltaría instalar el cliente en la maquina a controlar.

Espero que os haya sido útil lo que habéis encontrado aquí, saludos y que os vaya bonito.

pablo

Pablo Valor

Si te gusta, compártelo.

Deja un comentario

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies