Advertising:

Monitorizacion de AWS CloudWatch con Zabbix: Difference between revisions

From Zabbix-ES
Jump to navigation Jump to search
 
(7 intermediate revisions by the same user not shown)
Line 6: Line 6:


  '''Nota:''' Ver el proyecto completo y actualizado en [https://github.com/mobarrio/cloudwatch_wrapper GITHUB]
  '''Nota:''' Ver el proyecto completo y actualizado en [https://github.com/mobarrio/cloudwatch_wrapper GITHUB]
'''Nota:''' Ver imágenes disponibles en Docker hub [https://hub.docker.com/repository/docker/mobarrio/cloudwatch_wrapper DOCKERHUB]


==Instalación de Docker-Compose==
==Instalación de Docker-Compose==
Line 15: Line 16:
==AWS-SDK Credentials==
==AWS-SDK Credentials==
  El acceso se realiza via el archivo de credenciales.
  El acceso se realiza via el archivo de credenciales.
[[File:2022-06-07 20-38-00.png|680px|thumb|center|Credenciales obtenidas en AWS para completar el /root/.aws/credentials]]


  # cat /root/.aws/credentials
  # cat /root/.aws/credentials
Line 32: Line 35:
  aws_access_key_id = [ACCESS_KEY]
  aws_access_key_id = [ACCESS_KEY]
  aws_secret_access_key = [SECRET_KEY]
  aws_secret_access_key = [SECRET_KEY]


==Compilar y arrancar el contenedor==
==Compilar y arrancar el contenedor==
Line 65: Line 67:
  {$REDISDBNAME} - ElastiCache DBName solo pare los ejemplos de monitorizacion de ElastiCache.
  {$REDISDBNAME} - ElastiCache DBName solo pare los ejemplos de monitorizacion de ElastiCache.


==Vídeo==
==Vídeo Resumido==
[[File:Zbx cw CloudWatch.gif|none|frame]]
[[File:Zbx cw CloudWatch.gif|none|frame]]
==Video con la instalación completa / Full installation==
{{#evt:
service=youtube
|id=https://www.youtube.com/watch?v=Ibd3eD05m1A
|alignment=center
|Youtube Channel
}}
<center>Video completo | [https://www.youtube.com/channel/UCI2Ifc3rtb3UnKnXVHpTeKw?sub_confirmation=1 Suscríbete y entérate de los últimos videos]</center>


==Imagenes==
==Imagenes==
Line 77: Line 88:
[[File:Zbx cw img007.png|1280px|thumb|center|List Metrics]]
[[File:Zbx cw img007.png|1280px|thumb|center|List Metrics]]
[[File:Zbx cw img008.png|1280px|thumb|center|Get Metrics]]
[[File:Zbx cw img008.png|1280px|thumb|center|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
[[File:2022-10-19 20-52-30.png|800px|thumb|left|Modo DEBUG ON]]

Latest revision as of 18:57, 19 October 2022

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