Esta semana os he subido un script que he realizado para integrar las métricas de AWS CloudWatch en un servidor de monitorización Zabbix, por si no lo sabéis CloudWatch únicamente guarda las estadísticas durante 14 días, por lo que si necesitáis almacenarlas durante más tiempo debéis de buscar una alternativa como ésta.

 zabbix cloudwatch metrics

El script está realizado en python usando la librería Boto3 y es invocado a través de zabbix, con un script en bash que le pasa los parámetros que le indiquemos. Podéis acceder al repositorio de DBigCloud para descargarlo.

Su uso es muy sencillo, solo habría que invocarlo pasando los parámetros que deseemos extraer de CloudWatch, la lista de parámetros es la siguiente:

  • namespace  # e.g. 'AWS/RDS' -> El nombre del servicio de AWS que deseamos monitorizar.
  • metricname # e.g. CPUUtilization -> El nombre de la metrica.
  • dimname # e.g. DBInstanceIdentifier -> El identificador que vamos a usar en dimvalue, por ejemplo: el nombre, el ID...
  • dimvalue # e.g. MyDB -> Identificador
  • statistic # [ Sum, Maximum, Minimum, SampleCount, Average ] -> El tipo de estadistica que deseamos.

Mi consejo, para saber que parámetros debemos pasar es revisar las métricas en CloudWatch donde os aparecerán los datos que necesitáis, para usarlo debéis:

    1. Descargar los dos scripts cloudwatch_metrics.py y cloudwatch_metrics.sh.

    2. Copiar los dos scripts a la ruta en la que tengáis los external script de Zabbix, por defecto: /usr/lib/zabbix/externalscripts/

    3. Crear un Item de tipo external script, añadiendo en el campo key el script junto con sus parámetros, por ejemplo para monitorizar el APIGateway de DBigCloud uso lo siguiente:

      cloudwatch_metrics.sh["AWS/APIGateway", "Latency", "ApiName", "DBigCloud", "Average"]


zabbix cloudwatch

 


Con esto ya comenzaríamos a recoger las estadisticas de latencia que registra la API en CloudWatch, por ejemplo he creado una gráfica en la que voy viendo la latencia que tiene la API.

zabbix grapth cloudwatch


Debemos tener en cuenta que el servidor Zabbix debe de tener permisos de alguna forma para acceder a CloudWatch o bien mediante un usuario o a través de un Rol, en el caso de que sea una instancia EC2, espero que os sea de utilidad. Recordad que tenéis el blog de AWS en el que podéis estar al día con las novedades sobre CloudFront.

Actualizado 14 de Agosto del 2017: Nuevo script para monitorizar las métricas de AWS CloudFront en Zabbix.


Compártelo:

FacebookTwitterDiggGoogle BookmarksLinkedIn

Daniel Romero Sanchez
Author: Daniel Romero Sanchez
Responsable de sistemas y Arquitecto Cloud - vExpert 2015/16 - VCP550-DCV - LPIC-1


Comentarios  

0 # RE: Integrando métricas de AWS CloudWatch en Zabbixrocaembole 24-01-2017 20:42
Funciona ok, sin embargo necesito monitorear AWS/SNS y el resultado de tu script es un array. Deberia procesar el array para poder enviar un valor numerico a zabbix, de otro modo el item se pone en not supported.
Responder
0 # RE: Integrando métricas de AWS CloudWatch en ZabbixDaniel Romero Sanchez 24-01-2017 21:04
Gracias rocaembole! Tengo pendiente hacer cambios en el script ya que con cloudfront tampoco funciona correctamente.
Responder

DBigCloud en tu idioma

esenfrdeitptru

Gold Sponsor

 

vExpert 2017

DbigCloud newsletter

Suscribete a nuestra newsletter y recibe cada semana los mejores artículos seleccionados por DBigCLoud.
Email type
Please wait