Code Monkey home page Code Monkey logo

mios_zabbix's Introduction

MiOS Zabbix Plugin

Introduction

I've created a Zabbix plugin that provides an interface between Vera and the Zabbix Enterprise Monitoring System (http://www.zabbix.com/). For those not familiar with Zabbix, it is an "all-in-one" data logging, notification, and network management solution. Zabbix is similar to Nagios, and other network monitoring systems, but Zabbix (IMHO) is easier to use and provides a better integrated experience than other solutions.

Installing this plugin installs a Zabbix agent on your Vera. The Zabbix agent will then send CPU, memory, network, and other "OS level" performance data to the Zabbix server. In addition, the plugin sends the values of all Vera UPnP variables to Zabbix where they can be logged, analyzed, and used to create notifications and triggers.

Note: that this plugin provides only the interface to Zabbix. You will still need a functioning Zabbix server in order to use the plugin.

WARNING: In its current implementation, the Zabbix plugin will attempt to send the values of ALL Vera UPnP varaibles to your Zabbix server. (but nowhere else) This could include variables containing lock PIN codes, etc. If you are the paranoid type, or do not trust your Zabbix server connection, then I do not recommend that you use this plugin.

Known Issues

  • Users have reported that this plugin does not function properly on "private" firmware version 1.5.459. (Thanks to those who took the time to report this). Unfortunately, MiCasaVerde does not make anything but public versions of their firmware available to developers, which means I have no way to reproduce and/or develop a workaround for the issue at this time. If / when MCV releases a new version of firmware to me (i.e. public firmware), I hope to be able to address this issue.
  • The plugin currently only supports Zabbix "Active" agent mode, which means that Vera will connect to your Zabbix server to report data, not vise-versa.
  • If your Zabbix server is restarted (and therefore closes it's network connection), the plugin will lose it's connection to the server. To fix this, click the "Reload" button in Vera which will reconnect the plugin to your Zabbix server.

Requirements

The Zabbix plugin requires the following:

  • Vera firmware version 1.5.408 (the plugin may work on other versions, but not with 1.5.459 - see known issues)
  • Zabbix server 2.0+ (the plugin may support more limited functionality with older Zabbix versions, but this has not been tested)

Installation

Note: Although you can install the latest approved version of this plugin on the "Apps" tab (version 0.2), I recommend you manually install a newer release directly from apps.mios.com:

Plugin Configuration

Once the plugin is installed, click the wrench icon on the "Zabbix Plugin" device, and select the "Advanced" tab.

You will need to configure the following values:

ZabbixServer - The IP address (or DNS name) of your Zabbix server.

AgentHostName - The hostname that the Zabbix agent on Vera uses when reporting OS level data to Zabbix. (Note: as this is a normal "Zabbix hostname", it doesn't have to be a real DNS name - it's merely an identifying string that the Zabbix server uses to identifiy the incoming data)

HostNamePrefix - When sending UPnP data to Zabbix, the plugin sends the data using a hostname of "HostNamePrefix_VERADEVICEID", where VERADEVICEID is the Vera device Id for each device. Essentially, this treats each device in Vera as a "Virtual Host" in Zabbix. This variable sets the prefix that is used for the host names.

HostGroupName - The name of the Zabbix "host group" that is used for the hosts generated by the host configuration generator. (see "Zabbix Configuration" below)

TemplateGroupName - The name of the Zabbix "template group" that is used for the Zabbix templates generated by the template configuration generator. (see "Zabbix Configuration" below)

Zabbix Configuration

For those that are familiar with Zabbix, all you need to know is that:

  1. The Zabbix host names sent by the plugin are configured as described in the "Plugin Configuration" above
  2. The Zabbix key format for the Vera variables for each Vera host is:

mios.upnp[UPnP Service Id, UPnP Variable Name]

where "UPnP Service Id" is the Vera/UPnP service id, and "UPnP Variable Name" is the name of the vera variable

Example: mios.upnp[urn:upnp-org:serviceId:Dimming1,LoadLevelTarget]

To make the Zabbix configuration easier, the plug-in can generate Zabbix host configuration and template files that can be imported directly into Zabbix to setup the hosts and templates for your Vera devices.

The templates can be generated in two formats: full, in which each Zabbix template has the UPnP variables already "filled in" for each template, or skeleton, in which only the empty the template is created. To generate the template configuration file, use one of the following URLs:

(Full Templates) http://IPAddressOfYourVera:49451/data_request?id=lr_zabbixTemplateFile.xml&templates=full (Skeleton Templates) http://IPAddressOfYourVera:49451/data_request?id=lr_zabbixTemplateFile.xml&templates=skeleton

Once you have create / imported the templates, you can generate a Zabbix host configuration file using the following URL:

http://IPAddressOfYourVera:49451/data_request?id=lr_zabbixHostFile.xml

mios_zabbix's People

Contributors

hugheaves avatar

Watchers

James Cloos avatar Fabian van der Hoeven avatar

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.