Code Monkey home page Code Monkey logo

zaws's Introduction

About "ZAWS"

Zabbix AWS monitoring template This template is supported over Zabbix 3.0.

Features

  • EC2 monitoring
    • Automatically registration EC2 instances information by using Zabbix LLD host prototype.
    • Automatically registration EC2 CloudWatch metrics information by using Zabbix LLD item prototype.
  • ELB monitoring
    • Automatically registration ELB instances information by using Zabbix LLD host prototype.
    • Automatically registration ELB CloudWatch metrics information by using Zabbix LLD item prototype.

Requirements

  • Zabbix >= 3.0

Installation & Setting

1. Download

Download zaws command line tool and Zabbix template xml file.

Please get the binary file that is appropriate for your environment architecture.

binary file url

template xml file url

2. Copy to Externalscripts directory

Please copy command line tool file to your zabbix servers externalscripts directory.

for example:

$ cp zaws-linux-amd64 /usr/lib/zabbix/externalscripts/zaws

3. Import zabbix template xml file

[Configuration]->[Templates]->[Import]

Please import "zaws_zabbix_template.xml"

4. Register host

[Configuration]->[Hosts]->[Create host]

  • Host name: any
  • Groups: any
  • Agent interfaces: any (not used in this tool)
  • Templates: Template AWS
  • Macros: please set 3 macro
    • {$REGION}: Please set AWS region name (e.g. ap-northeast-1)
    • {$KEY}: Please set AWS ACCESS KEY ID (e.g. AKI........)
    • {$SECRET}: Please set AWS SECRET ACCESS KEY

Contact

Please send feedback to me.

Daisuke IKEDA

Twitter: @ike_dai

e-mail: [email protected]

License

Licensed under the Apache License, Version 2.0. The Apache v2 full text is published at this link.

Copyright 2016 Daisuke IKEDA.

zaws's People

Contributors

ike-dai avatar

Stargazers

 avatar Guillermo Elía avatar zbv avatar Ada avatar Wolf Emperor avatar wolf-7 avatar Stephane avatar Shaposhnikoff avatar Phuwadon avatar Anupam Maiti avatar Wade Fields avatar Steven Shi avatar Rafael Romero Carmona avatar Aurélien Perrier avatar Stephen Boyle avatar Wagner Pinheiro avatar Maxim Komlichenko avatar Petar Tofevski avatar Ed Mooney avatar Piotr Drozdowski avatar David Lu avatar Mohit Shukla avatar Pexe.SSJ avatar Shota Yamazaki avatar Pál Tamás avatar Tracy Hurley avatar Ste avatar Istvan C avatar Ian Havelock avatar Jiansong Liu avatar Maurício Sousa avatar  avatar MengYe avatar  avatar Dmitry Kireev avatar Misato avatar  avatar Malte Brodersen avatar k-saiki avatar  avatar Alexey Belaytzev avatar  avatar Marian Ignev avatar Stoyan avatar eigo_s avatar Jaco Engelbrecht avatar giZmo avatar Johnson avatar Allan Graham avatar

Watchers

 avatar James Cloos avatar  avatar Phuwadon avatar xyz avatar Mário Melo Filho avatar

zaws's Issues

I got some problem

Hello,
I can get ec2 info,
but I can't get status , It's show not support, and time out to executing shell script
image

I had permissions following below figure
image

Template AWS doesnt have any item
image

please help me

thanks a lot

How to configure discovery to add instance's interface IP per host instead of 127.0.0.1?

for now all aws EC2 hosts added, but each instance in zabbix have interface IP 127.0.0.1. This is greyed and not editable because added by discovery rule from template.
My EC2 instances have hostname that is "APPNAME_INSTANCEID", like "web1_i-01013167c8f712345". So I changed "host prototype" in rule to:
{#INSTANCE.NAME}_{#INSTANCE.ID}

Now all added, but problem to allow agents to be accepted, probably because this registered in zabbix host names have different interface IP (127.0.0.1) then real host IP. Same issue if host added by agent - discovery rule can do nothing because this name exists....

The goal is to manage instance lifecycle (adding and removing) and AWS resources with zaws discovery, but be able to monitor with installed there agent.

How to define discovery to add real instance IP instead of 127.0.0.1?

Thanks!

cannot process json request

Hi Ike,

I try ZWAS on Zabbix 3.0, and he can discovery my hosts, but without any information...

On zabbix_server.log, I have this error:

2205:20160304:161438.281 cannot process json request: Can't open JSON object or array "null,"clock":1457108078}"

image

Do you know how can I figure out this ?

Thanks!

Agent interfaces on AWS discovered hosts

Hi @ike-dai !

Is it possivel to add Agent interfaces on AWS discovered hosts? I want to a Agent interface pointing to the public IP address of my AWS instance on port 10050 to collect data from the Zabbix agent installed on the instance.

image

Thank you a lot for this resource.

disk space utilization

Thank you for this really nice tool.

I have start using this to monitoring EC2 instances, but facing a issue with the item disk space utilization, that doesn't show any information on zabbix 3.0. Is there some adicional configuration to do?

Thank you.

t3. ec2 instance metrics discovery

When i've tried to discover metrics for my t3.* instance, i've got this responce:

{"data":[{"{#METRIC.NAME}":"NetworkPacketsIn","{#METRIC.UNIT}":"Count","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"EBSReadBytes","{#METRIC.UNIT}":"Bytes","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"NetworkPacketsOut","{#METRIC.UNIT}":"Count","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"EBSReadOps","{#METRIC.UNIT}":"Count","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"CPUCreditUsage","{#METRIC.UNIT}":"Count","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"EBSIOBalance%!"(MISSING),"{#METRIC.UNIT}":"Percent","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"CPUSurplusCreditBalance","{#METRIC.UNIT}":"Count","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"CPUCreditBalance","{#METRIC.UNIT}":"Count","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"CPUUtilization","{#METRIC.UNIT}":"Percent","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"EBSWriteOps","{#METRIC.UNIT}":"Count","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"NetworkOut","{#METRIC.UNIT}":"Bytes","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"StatusCheckFailed_Instance","{#METRIC.UNIT}":"Count","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"NetworkIn","{#METRIC.UNIT}":"Bytes","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"EBSWriteBytes","{#METRIC.UNIT}":"Bytes","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"EBSByteBalance%!"(MISSING),"{#METRIC.UNIT}":"Percent","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"CPUSurplusCreditsCharged","{#METRIC.UNIT}":"Count","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"StatusCheckFailed_System","{#METRIC.UNIT}":"Count","{#METRIC.NAMESPACE}":"AWS/EC2"},{"{#METRIC.NAME}":"StatusCheckFailed","{#METRIC.UNIT}":"Count","{#METRIC.NAMESPACE}":"AWS/EC2"}]}

And that's not a valid JSON object (already confirmed that at https://jsonlint.com/), because there are two metrics with "broken" names:

"{#METRIC.NAME}": "EBSIOBalance%!"(MISSING),
and
"{#METRIC.NAME}": "EBSByteBalance%!"(MISSING),

It appears, that "(MISSING)" string breaks json format.

As i am not a programmer, but a jack-of-no-trades OPS, i have no knowledge how to fix that in source code. And suddenly an idea came into my mind - i can solve this with bash and sed like this:

  1. 've renamed zaws to zaws-bin
  2. 've created shell-script zaws with such content:

`#!/bin/bash

/usr/lib/zabbix/externalscripts/zaws-bin $@ | sed -e "s|(MISSING)||g"`

So, if anyone can fix this issue in source code and build new binary - it would be awesome.

Value should be a json object

Hi Ike,

Trying to configure zaws plugin in zabbix 3.4, but get 'Value should be a json object' on 'Discovery rules' page. Could you help to find and solve the root cause? Thanks!
screen shot 2018-09-28 at 06 29 21

AWS Permissions Required

Can you document what permissions are required for the AWS user (apart from given them entire admin access)

Eliminating the keys for use with roles attached to EC2 instances

I am a bit new at this but was wondering if the keys could be omitted if a role with the proper permissions was already attached to the EC2 instance on which zaws was running. Looking at the code, it appears that execution will exit if there is no key provided. I have tended to use role assignment on EC2 instances to avoid having to worry about key vulnerability.

ELBv2

Is there any chance to upgrade your code a little?
Now it is calling only for ELBv1, I need it to call ELBv2 as well.

ELB Request Count is showing one

Thankyou for this nice tool.

I have started using this but facing issue in monitoring ELB.
It show request count always 1 , please suggest how can I get actual count.

Thankyou

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.