Introducción
Grafana es un software de código abierto que transforma múltiples fuentes de sistemas como Graphite, Telegraf e InfluxDB en métricas hermosas en un tablero centralizado.
Este tutorial cubrirá el proceso de instalación de la interfaz web de Grafana.
Prerrequisitos
- Una instancia de servidor Ubuntu 16.04 LTS x64.
- Un usuario de sudo (o cuenta raíz) .
- Opcional: un nombre DNS (para usar con los certificados Let's Encrypt)
Actualiza el sistema
Actualice su sistema antes de instalar Grafana.
apt-get update && apt-get upgrade
Preparando el firewall
Primero endurezcamos un poco la imagen. También verifiquemos si la imagen aprovisionada se ha ufw
habilitado.
root@vultr:~# ufw status
Status: inactive
Por defecto está deshabilitado, por lo que necesitaremos agregar algunas reglas:
- Regla 1: ssh: puerto TCP 22
- Regla 2: http: puerto TCP 3000 (puerto predeterminado de Grafana)
Ejecute los siguientes comandos uno por uno.
ufw allow 22/tcp
ufw allow 3000/tcp
Habilite los servicios de firewall.
ufw enable
El firewall abrirá un cuadro de diálogo para aceptar los cambios. Solo presiona Y.
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Instalando Grafana
Por defecto, Grafana no está en los repositorios. Agregue la clave de repositorio y los paquetes.
curl https://packagecloud.io/gpg.key | sudo apt-key add -
A continuación, agregue el repositorio "packagecloud" a sus repositorios.
add-apt-repository "deb https://packagecloud.io/grafana/stable/debian/ stretch main"
Actualice apt
para obtener la información más reciente de nuestro repositorio "packagecloud" recién agregado.
apt-get update
Ahora podemos instalar Grafana.
apt-get install grafana
Una vez que Grafana se haya instalado, comience con systemctl
.
systemctl start grafana-server
Esto mostrará un servicio de Grafana en funcionamiento.
systemctl status grafana-server
Inicie el servicio Grafana en el arranque.
systemctl enable grafana-server
Deshabilitar los registros de Grafana y el acceso anónimo
Fuera de la caja, Grafana permite a los visitantes crear cuentas de usuario y previsualizar paneles sin registrarse. Esto significa que estamos exponiendo a Grafana a internet público. Pero no se preocupe, busquemos y deshabilitemos esta configuración.
Primero abra el archivo de configuración de Grafana.
nano /etc/grafana/grafana.ini
Localice la allow_sign_up
configuración debajo del [users]
encabezado.
[users]
# disable user signup / registration
;allow_sign_up = true
Por defecto está configurado en true
, así que cámbielo false
y descomente la línea.
[users]
# disable user signup / registration
allow_sign_up = false
Luego, verifique que el acceso anónimo esté deshabilitado. Esto se puede encontrar en la [auth.anonymous]
configuración.
[auth.anonymous]
# enable anonymous access
;enabled = false
Cambiarlo a false
y elimine la línea.
[auth.anonymous]
enabled = false
Salga nano
y guarde el archivo.
Para activar los cambios, reinicie Grafana.
systemctl restart grafana-server
Ahora verifique que todo esté funcionando verificando el estado del servicio de Grafana.
systemctl status grafana-server
El demonio Grafana escucha a babor 3000
. Para visitar el Tablero de Grafana, apunte su navegador a http://192.168.0.1:3000
(reemplace esta IP con la IP de su servidor real) y use las credenciales de inicio de sesión predeterminadas a continuación.
Username: admin
Password: admin
Habilitación de un certificado HTTPS para Grafana (opcional)
Este es un paso opcional. Si tenemos un nombre DNS configurado, podemos usar Let's Encrypt para habilitar HTTPS
nuestra nueva instalación de Grafana.
Instalación y configuración de Nginx
Para lograr esto, utilizaremos Nginx, ya que este software es capaz de utilizar certificados Let's Encrypt.
Comience instalando Nginx.
apt-get install nginx
Una vez instalado, edite la configuración predeterminada.
nano /etc/nginx/sites-available/default
Reemplace la configuración predeterminada con la siguiente configuración.
server {
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
Esto creará un proxy para el sitio web que se ejecuta en el puerto 80
. Reinicie Nginx y actívelo en el arranque.
systemctl restart nginx
systemctl enable nginx
Asegúrese de que todo funcione.
systemctl status nginx
Deshabilite el antiguo puerto de Grafana 3000
y permita el tráfico en el puerto 80
.
ufw allow 80/tcp
ufw delete allow 3000/tcp
Instalar Let's Encrypt
Antes de que podamos usar certbot, necesitamos agregar el PPA correcto al sistema que contiene nuestros paquetes certbot.
add-apt-repository ppa:certbot/certbot
Presione ENTERpara aceptar el cambio de configuración.
Actualice apt
para reunir los nuevos paquetes.
apt-get update
Luego instale el módulo Nginx para asignar los certificados.
apt-get -y install python-certbot-nginx
Configurar certificados
Configure el firewall para permitir el paso a HTTPS
través del firewall.
ufw allow 443/tcp
Antes de que podamos solicitar nuevos certificados, necesitamos un nombre DNS.
nano /etc/nginx/sites-available/default
Agregue la siguiente server_name
configuración. Este es nuestro nombre DNS.
server_name grafana.example.com;
Cambie la configuración para reflejar esta nueva configuración.
server {
server_name grafana.example.com;
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
Asegúrese de que no cometimos ningún error y reinicie Nginx.
nginx -t
systemctl restart nginx
Ahora solicite un certificado con certbot.
certbot --nginx -d grafana.example.com
Proporcione su correo electrónico y acepte las preguntas del instalador. Puede decir "No" con seguridad para compartir su correo electrónico. Certbot preguntará automáticamente qué hacer con HTTPS
. Utilizaremos la opción 2: redirigir a HTTPS.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Renovación automática de certificados
Encriptemos los certificados que requieren renovación. Afortunadamente podemos crear un trabajo cron para esto. Comience editando el crontab.
crontab -e
Agrega la siguiente línea.
05 2 * * * /usr/bin/certbot renew --quiet
Esto verificará a las 2:05 a.m. si algún certificado requiere una renovación y los renovará.
Grafana se estará ejecutando HTTPS
ahora. Una última cosa es cambiar la contraseña de administrador. Visite su instalación en https://grafana.example.net
. Por defecto, las credenciales para iniciar sesión son 'admin / admin'.
Para cambiar el nombre de usuario del administrador, haga clic en el icono de engranaje a la izquierda, vaya a "Configuración", luego "Administrador del servidor" y haga clic en el nombre de usuario del administrador.