Advertising:
Monitorizacion de AWS CloudWatch con Zabbix: Difference between revisions
Jump to navigation
Jump to search
(Created page with "https://github.com/mobarrio/cloudwatch_wrapper =cloudwatch_wrapper= Repositorio para realizar consultas a Cloudwatch via API REST utilizando AWS-SDK + NodeJS El objetivo es...") |
|||
(14 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
https://github.com/mobarrio/cloudwatch_wrapper | =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. | |||
[[File:Zbx cw img009.png|1280px|thumb|center]] | |||
'''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== | ||
# 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. | |||
[[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 | ||
[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== | |||
[[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== | |||
[[File:Zbx cw img001.png|1280px|thumb|center|Zabbix Latest Data]] | |||
[[File:Zbx cw img002.png|1280px|thumb|center|Login]] | |||
[[File:Zbx cw img003.png|1280px|thumb|center|Help]] | |||
[[File:Zbx cw img004.png|1280px|thumb|center|API Help]] | |||
[[File:Zbx cw img005.png|1280px|thumb|center|Get Bearer Token]] | |||
[[File:Zbx cw img006.png|1280px|thumb|center|Verify Bearer Token]] | |||
[[File:Zbx cw img007.png|1280px|thumb|center|List 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.
# 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".
Imagenes
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