Advertising:

Monitorizacion de AWS CloudWatch con Zabbix

From Zabbix-ES
Jump to navigation Jump to search

cloudwatch_wrapper

Repositorio para realizar consultas a Cloudwatch vía API REST utilizando AWS-SDK + NodeJS
El objetivo es que mediante una llamada HTTP podamos extraer datos de CloudWatch sin la necesidad de instalar paqueteria adicional en nuestro servidor de Zabbix.
Nota: Ver el proyecto completo y actualizado en GITHUB
Nota: Ver imágenes disponibles en Docker hub DOCKERHUB

Instalación de Docker-Compose

# curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# chmod 755 /usr/local/bin/docker-compose
# docker-compose --version

AWS-SDK Credentials

El acceso se realiza via el archivo de credenciales.
Credenciales obtenidas en AWS para completar el /root/.aws/credentials
# cat /root/.aws/credentials
[default]
aws_access_key_id = [ACCESS_KEY]
aws_secret_access_key = [SECRET_KEY]

[pro]
aws_access_key_id = [ACCESS_KEY]
aws_secret_access_key = [SECRET_KEY]

[pre]
aws_access_key_id = [ACCESS_KEY]
aws_secret_access_key = [SECRET_KEY]

[dev]
aws_access_key_id = [ACCESS_KEY]
aws_secret_access_key = [SECRET_KEY]

Compilar y arrancar el contenedor

# docker-compose build
# docker-compose up -d


Parar el contenedor

# docker-compose down


Generar clave RSA 256

# ssh-keygen -t rsa -b 4096 -m PEM -f config/jwtRS256.key


Usuarios y Password

Usr admin
Psw zabbix

Zabbix Demo Template

Template Macros

{$BASICTOKEN}  - Token Basic para poder conectarnos a la API
{$REGION}      - Region de AWS
{$API_SERVER}  - IP y puerto en que escucha la API. Ej. http://10.1.2.100:3000

LLD macros

{#ACCOUNT}    - Tipo de cuenta a la que estamos conectados.
{#TOKEN}      - Bearer token para poder conectarnos a la API y recolectar métricas.
{#TTL}        - TTL del Bearer token.

Hosts Macros

{$REDISDBNAME} - ElastiCache DBName solo pare los ejemplos de monitorizacion de ElastiCache.

Vídeo Resumido

Video con la instalación completa / Full installation

EmbedVideo was given an illegal value for the alignment parameter "Youtube Channel". Valid values are "left", "center", or "right".
Video completo | Suscríbete y entérate de los últimos videos

Imagenes

Zabbix Latest Data
Login
Help
API Help
Get Bearer Token
Verify Bearer Token
List Metrics
Get Metrics

Habilitar el modo DEBUG

Editamos el environment via el fichero env.js

NOTA: El fichero env.js tiene que existir en el mismo path donde esta el docker-compose.yml
# vi env.js
process.env.LOG_LEVEL="debug";    <- Activa el Debug de Cloudwatch-Wrapper
// process.env.DEBUG="express:*"; <- Mas nivel de Debug en las llamadas via express

Mapeamos en env.js dentro del docker

# vi docker-compose.yml
version: '3'
services:
  wrapper:
    image: mobarrio/cloudwatch_wrapper:latest
    container_name: cloudwatch_wrapper
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - CRED=pro
    volumes:
      - ~/.aws/credentials:/root/.aws/credentials:ro
      - ./env.js:/usr/src/app/env.js     <- Mapear el fichero env.js dentro del docker.

Iniciamos el docker con consola

# docker-compose up
Modo DEBUG ON