Stats Grafana

Estadisticas de Servidor con Grafana, InfluxDB, Telegraft

Se usará Ubuntu 18.04 para el ejemplo

1 Instalación y configuración de Influx DB 1.1 Ubicate en el directorio donde deseas trabajar

cd ~/Documentos/stats_test

1.2 Descarga y descomprime los archivos binarios necesarios para Grafana

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.1_linux_amd64.tar.gz
tar xvfz influxdb-1.8.1_linux_amd64.tar.gz

1.3 Iniciar InfluxDB

cd influxdb-1.8.1-1/usr/bin
./influxd

2 Instalación y configuracion de telegraf

Abrir nueva terminal *

2.1 Ubicate en el directorio donde deseas trabajar

cd ~/Documentos/stats_test

2.2 Descarga y descomprime los archivos binarios necesarios para Grafana

wget https://dl.influxdata.com/telegraf/releases/telegraf-1.15.2_linux_amd64.tar.gz
tar xf telegraf-1.15.2_linux_amd64.tar.gz

2.3 Archivo de configuración Ingresamos al siguiente repositorio de los datos descomprimidos y creamos un archivo telefraf.conf, con lo siguientes comandos, donde suaremos los plugins input cpu, mem y disk y plugins output influxdb

cd telegraf-1.15.2/usr/bin
./telegraf -sample-config -input-filter cpu:mem:disk:net -output-filter influxdb > telegraf.conf

Ya que tenemos el archivo telegraf.conf solo nos queda iniciar telegraf

./telegraf --config telegraf.conf

3 Intalación y configuracion de Grafana

1.1 Ubicate en el directorio donde deseas trabajar

cd ~/Documentos/stats_test

1.2 Descarga y descomprime los archivos binarios necesarios para Grafana

wget https://dl.grafana.com/oss/release/grafana-7.1.3.linux-amd64.tar.gz
tar -zxvf grafana-7.1.3.linux-amd64.tar.gz

1.3 Inicia el grafana-server

cd grafana-7.1.3/bin
./grafana-server

1.4 Habrá iniciado grafana en el puerto 3000, ingresa a tu ip:3000 (127.0.0.1:3000) en tu navegador el usuario y contraseña inicial es: user: admin password: admin

Instalación del proyecto Django

1 Instalar postgresql, ngixn, pip, curl

sudo apt update
sudo apt install python-pip python-dev libpq-dev postgresql postgresql-contrib nginx curl   

2 Descargar el proyecto

mkdir ~/Documentos/monitoreo_pyhton_grafana
cd ~/Documentos/monitoreo_pyhton_grafana
git clone git@github.com:fernandoWH/monitoreopython-influxdb-telegraf-grafana.git

3 Crear entorno virtual

3.1 Descargar virtualenv

sudo -H pip install --upgrade pip
sudo -H pip install virtualenv

3.2 Crear entorno virtual

virtualenv monitoreo
source monitoreo/bin/activate

ó

mkvirtualenv monitoreo

4 Instalar requirements.txt

cd monitoreopython-influxdb-telegraf-grafana/
pip install -r requirements.txt

5 Correr el proyecto

cd monitoreo
./manage.py runserver

#Configuracion de Proxy Grafana-Ngixn

1 Crear archivo grafana.conf

sudo nano /etc/nginx/sites-available/grafana.conf

1.1 Pegar lo siguiente dentro del archivo:

server {
  listen      80;
  # listen      [::]:80 ipv6only=on;
  server_name monitoreo.com;
  root /usr/share/nginx/www;
  index index.html index.htm;


  location /grafana/ {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_hide_header 'x-frame-options';
            proxy_set_header x-frame-options allowall;

            add_header Access-Control-Allow-Origin *;
            add_header 'Access-Control-Allow-Credentials: true' always;
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
            add_header 'Access-Control-Expose-Headers' 'Content-Type,Content-Length,Content-Range';
            add_header 'Access-Control-Allow-Headers'
                       'Accept,
                        Authorization,
                        Cache-Control,
                        Content-Type,
                        DNT,
                        If-Modified-Since,
                        Keep-Alive,
                        Origin,
                        User-Agent,
                        X-Requested-With' always;

            if ($request_method = 'OPTIONS') {
              return 204;
            }

            proxy_pass http://monitoreo.com:3000/;

        }

  location / {
        proxy_pass http://monitoreo.com:8000/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_hide_header 'x-frame-options';
        proxy_set_header x-frame-options allowall;

        add_header Access-Control-Allow-Origin *;
        add_header 'Access-Control-Allow-Credentials: true' always;
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
        add_header 'Access-Control-Expose-Headers' 'Content-Type,Content-Length,Content-Range';
        add_header 'Access-Control-Allow-Headers'
                   'Accept,
                    Authorization,
                    Cache-Control,
                    Content-Type,
                    DNT,
                    If-Modified-Since,
                    Keep-Alive,
                    Origin,
                    User-Agent,
                    X-Requested-With' always;

        if ($request_method = 'OPTIONS') {
          return 204;
        }
    }
}

1.2 Vincular a sites-enable

sudo ln -s /etc/nginx/sites-available/grafana.conf /etc/nginx/sites-enabled

1.3 Verificar la sintaxis de grafana.conf

sudo nginx -t

1.4 Recargar nginx

sudo service nginx reload

1.5 Configurar grafana.ini o defaults.ini

Ingrese a la carpeta donde esta ubicado grafana y abre el archivo

cd ~/Documentos/stats_test/grafana-7.1.3/conf
nano defaults.ini

Cambiaremos lo siguiente:

domain= monitoreo.com

# root_url = %(protocol)s://%(domain)s:%(http_port)s/
root_url = http://monitoreo.com:3000/grafana

serve_from_sub_path = true

# enable anonymous access
# enabled = false
enabled = true

[dataproxy]

# This enables data proxy logging, default is false
# logging = false
logging =true

1.6 Reiniciamos el servicio grafana

cd ~/Documentos/stats_test/grafana-7.1.3/bin
./grafana-server