Búsqueda de sitios web

Instale Grafana e InfluxDB en CentOS 7/RHEL 7


Esta será nuestra primera serie sobre cómo realizar un monitoreo y visualización inteligente de toda su infraestructura. Toda la serie se concentrará en herramientas como Grafana, Prometheus, InfluxDB, Telegraf y quizás otras por venir. Esta guía analizará cómo instalar Grafana/InfluxDB en el sistema Linux CentOS 7/RHEL 7.

Dado que este es el primer artículo de la serie, haré una definición introductoria de las herramientas con las que trabajaremos:

InfluxDB es una base de datos de series temporales de código abierto desarrollada en Go por InfluxData. InfluxDB está optimizado para un almacenamiento y recuperación rápidos y de alta disponibilidad de datos de series temporales para análisis de métricas. Esto se puede instalar en un solo servidor o en un clúster.

Telegraf es un agente escrito en Go para recopilar, procesar, agregar y escribir métricas. Los objetivos de diseño son tener una huella de memoria mínima con un sistema de complementos para que los desarrolladores de la comunidad puedan agregar fácilmente soporte para recopilar métricas de servicios locales o remotos. Se instala en todos los dispositivos que necesitan ser monitoreados y todas las métricas recopiladas por Telegraf se almacenan en InfluxDB.

Grafana es un panel de métricas y un editor de gráficos de código abierto con muchas funciones para Graphite, Elasticsearch, OpenTSDB, Prometheus e InfluxDB. Los datos almacenados en InfluxDB se visualizarán utilizando Grafana.

Prometheus es una herramienta utilizada para el seguimiento de sistemas y servicios. Recopila métricas de objetivos configurados en intervalos determinados, evalúa expresiones de reglas, muestra los resultados y puede activar alertas si se observa que alguna condición es verdadera. Las métricas almacenadas en Prometheus se pueden visualizar usando Grafana.

Para Ubuntu/Debian, verifique:

  • Instalar Grafana en Ubuntu

Instalación de InfluxDB en CentOS 7/RHEL 7

Influxdata proporciona el repositorio para instalar InfluxDB y telegraf en CentOS 7/RHEL 7. Para agregar el repositorio a su sistema, use los comandos:

cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 0
gpgkey = https://repos.influxdata.com/influxdb.key
EOF

Actualice el caché para confirmar que el repositorio funciona bien:

sudo yum makecache

Luego instale influxDB:

sudo yum -y install influxdb vim curl

Inicie y habilite el servicio:

sudo systemctl start influxdb && sudo systemctl enable influxdb

Configurar el firewall InfluxDB

De forma predeterminada, InfluxDB utiliza los siguientes puertos de red:

  • El puerto TCP 8086 se utiliza para la comunicación cliente-servidor a través de la API HTTP de InfluxDB.
  • El puerto TCP 8088 se utiliza para el servicio RPC para realizar copias de seguridad y restaurar.

Para abrirlo en el firewall, use el comando:

sudo firewall-cmd --add-port=8086/tcp --permanent
sudo firewall-cmd --reload

Las asignaciones de puertos se pueden modificar cambiando el archivo /etc/influxdb/influxdb.conf. Como todo está configurado ahora, podemos iniciar el servicio ahora.

sudo systemctl start influxdb
sudo systemctl enable influxdb

Confirmar estado del servicio:

$ systemctl status influxd
 influxdb.service - InfluxDB is an open-source, distributed, time series database
   Loaded: loaded (/usr/lib/systemd/system/influxdb.service; enabled; vendor preset: disabled)
   Active: active (running) since  Fri 2023-08-18 22:32:28 UTC; 7s ago
     Docs: https://docs.influxdata.com/influxdb/
  Process: 13870 ExecStart=/usr/lib/influxdb/scripts/influxd-systemd-start.sh (code=exited, status=0/SUCCESS)
 Main PID: 13871 (influxd)
    Tasks: 13 (limit: 49496)
   Memory: 11.9M
   CGroup: /system.slice/influxdb.service
           └─13871 /usr/bin/influxd -config /etc/influxdb/influxdb.conf

Autenticación http de InfluxDB (opcional)

Si necesita autenticación http, modifique la sección http influxdb para que contenga lo siguiente.

$ sudo vim /etc/influxdb/influxdb.conf
[http]
# Determines whether HTTP endpoint is enabled.
  enabled = true
# Determines whether user authentication is enabled over HTTP/HTTPS.
  auth-enabled = true

Luego cree un usuario con una contraseña de autenticación:

curl -XPOST "http://localhost:8086/query" --data-urlencode \
"q=CREATE USER admin WITH PASSWORD 'StrongPassw0rd' WITH ALL PRIVILEGES"

Reemplazar :

  • admin con tu propio nombre de usuario
  • StrongPassw0rd con su propia contraseña (tenga en cuenta que la contraseña requiere comillas simples)

Reiniciar el servicio de afluencia:

sudo systemctl restart influxd

Ahora, cada vez que necesite ejecutar cualquier comando de influxdb en la terminal, deberá especificar el nombre de usuario usando -username y la contraseña usando las opciones -password.

$ influx -username 'admin' -password 'StrongPassw0rd'
Connected to http://localhost:8086 version 1.8.10
InfluxDB shell version: 1.8.10
> quit

Para curl, utilice -u para especificar el nombre de usuario y la contraseña separados por dos puntos.

$ curl -G http://localhost:8086/query -u admin:StrongPassw0rd --data-urlencode "q=SHOW DATABASES"
{"results":[{"statement_id":0,"series":[{"name":"databases","columns":["name"],"values":[["_internal"]]}]}]}

De forma predeterminada, el servicio influxdb escucha en todas las interfaces en el puerto 8086.

Instalación de Grafana en CentOS 7/RHEL 7

Hay dos formas de instalar Grafana en CentOS 7/RHEL 7, una es utilizando el repositorio oficial de Grafana yum y el otro método implica descargar manualmente el paquete rpm e instalarlo localmente en el servidor.

El método preferido es utilizar el repositorio, ya que es fácil de actualizar a la última versión. Así que agregue lo siguiente a un nuevo archivo en /etc/yum.repos.d/grafana.repo

cat <<EOF | sudo tee /etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF

Entonces corre:

sudo yum -y install grafana

Se le pedirá que acepte la clave gpg, presione Sí para continuar. Para iniciar el servicio grafana y permitir que se inicie en el arranque, ejecute:

sudo systemctl start grafana-server
sudo systemctl enable grafana-server

Esto iniciará el proceso del servidor grafana como usuario de grafana, que se crea durante la instalación del paquete. El puerto HTTP predeterminado es 3000 y el usuario y grupo predeterminados es admin. De forma predeterminada, Grafana iniciará sesión en /var/log/grafana.

Comprobación del estado del servicio:

$ systemctl status grafana-server
 grafana-server.service - Grafana instance
   Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: disabled)
   Active: active (running) since since Wed 2022-04-20 10:13:09 UTC; 36s ago
     Docs: http://docs.grafana.org
 Main PID: 14526 (grafana-server)
    Tasks: 10 (limit: 49496)
   Memory: 27.9M
   CGroup: /system.slice/grafana-server.service
           └─14526 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile=/var/run/grafana/grafana-server.pid --packaging=rpm cfg:default.paths.log>

El archivo de configuración predeterminado es /etc/grafana/grafana.in con el almacén de base de datos sqlite3 ubicado en /var/lib/grafana/grafana.db

Abrir puerto de firewall para Grafana

Si tiene un servicio firewalld en ejecución, considere abrir el puerto 3000 para acceder al panel a través de la red.

sudo firewall-cmd --add-port=3000/tcp --permanent
sudo firewall-cmd --reload

Puede acceder al panel en la web utilizando el puerto 3000 y la dirección IP o nombre de host y comenzar a crear paneles.

En nuestro próximo artículo, veremos cómo instalar el agente cliente de Telegraf para InfluxDB y recopilar métricas del servidor para visualizarlas en Grafana: Monitorear el sistema Linux con Grafana y Telegraf

Otras guías de seguimiento de Grafana:

  • Monitoreo de Ceph Cluster con Prometheus y Grafana
  • Cómo monitorear Redis Server con Prometheus y Grafana en 5 minutos
  • Cómo monitorear el rendimiento del servidor Linux con Prometheus y Grafana en 5 minutos
  • Cómo monitorear el servidor DNS BIND con Prometheus y Grafana
  • Monitoreo de MySQL/MariaDB con Prometheus en cinco minutos
  • Cómo monitorear el servidor web Apache con Prometheus y Grafana en 5 minutos