All Projects → Griesbacher → Nagflux

Griesbacher / Nagflux

Licence: gpl-2.0
A connector which copies performancedata from Nagios / Icinga(2) / Naemon to InfluxDB

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Nagflux

Icinga Vagrant
Vagrant boxes for Icinga 2, Icinga Web 2, modules, themes and integrations (Graphite, InfluxDB, Elastic, Graylog, etc.)
Stars: ✭ 248 (+350.91%)
Mutual labels:  influxdb, grafana, icinga
Awesome Monitoring
INFRASTRUCTURE、OPERATION SYSTEM and APPLICATION monitoring tools for Operations.
Stars: ✭ 356 (+547.27%)
Mutual labels:  influxdb, grafana, nagios
grafana-pnp-datasource
PNP4Nagios/RRD Datasource for Grafana
Stars: ✭ 27 (-50.91%)
Mutual labels:  grafana, nagios, icinga
Icingaweb2 Module Grafana
Grafana module for Icinga Web 2 (supports InfluxDB & Graphite)
Stars: ✭ 190 (+245.45%)
Mutual labels:  influxdb, grafana, icinga
histou
Adds templates to Grafana in combination with nagflux
Stars: ✭ 33 (-40%)
Mutual labels:  influxdb, grafana, nagios
Go Web Backend
Dockerized backend services for web application
Stars: ✭ 50 (-9.09%)
Mutual labels:  influxdb, grafana
Wizzy
Manage & automate Grafana with easy wizzy
Stars: ✭ 461 (+738.18%)
Mutual labels:  influxdb, grafana
Onboarding
A list of resources we at flyeralarm use to get new developers up and running
Stars: ✭ 648 (+1078.18%)
Mutual labels:  influxdb, grafana
Docker Compose Grafana Influxdb
Demonstration scripts for running Grafana with InfluxDB as datasource.
Stars: ✭ 29 (-47.27%)
Mutual labels:  influxdb, grafana
Docker Statsd Influxdb Grafana
Docker Image with Telegraf (StatsD), InfluxDB and Grafana
Stars: ✭ 352 (+540%)
Mutual labels:  influxdb, grafana
Varken
Standalone application to aggregate data from the Plex ecosystem into InfluxDB using Grafana for a frontend
Stars: ✭ 829 (+1407.27%)
Mutual labels:  influxdb, grafana
Influx Crypto Trader
Node js trading bot, let you create trading strategy and run it (backtest/simulation/live)
Stars: ✭ 49 (-10.91%)
Mutual labels:  influxdb, grafana
Victoriametrics
VictoriaMetrics: fast, cost-effective monitoring solution and time series database
Stars: ✭ 5,558 (+10005.45%)
Mutual labels:  influxdb, grafana
Thruk
Thruk is a multibackend monitoring webinterface for Naemon, Nagios, Icinga and Shinken using the Livestatus API.
Stars: ✭ 357 (+549.09%)
Mutual labels:  nagios, icinga
Monitoring
Monitor ESXi, Synology, Docker, PiHole and Raspberry Pi and Windows using Grafana, InfluxDB and Telegraf
Stars: ✭ 493 (+796.36%)
Mutual labels:  influxdb, grafana
Interfacetable v3t
interfacetable_v3t (formerly check_interface_table_v3t)
Stars: ✭ 14 (-74.55%)
Mutual labels:  nagios, icinga
Ssh Log To Influx
Send SSH authentication logs to influxdb with geohashing IP
Stars: ✭ 49 (-10.91%)
Mutual labels:  influxdb, grafana
Pgwatch2
PostgreSQL metrics monitor/dashboard
Stars: ✭ 960 (+1645.45%)
Mutual labels:  influxdb, grafana
Docker Flask Mongodb Example
Uses docker compose with a python flask microservice and MongoDB instance to make a sample application
Stars: ✭ 49 (-10.91%)
Mutual labels:  influxdb, grafana
Docker Nagios
Docker-Nagios provide Nagios service running on the docker container and a series of solution for Nagios
Stars: ✭ 41 (-25.45%)
Mutual labels:  grafana, nagios

GoDoc Go Report Card Circle CI Coverage Status

Nagflux

A connector which transforms performancedata from Nagios/Icinga(2)/Naemon to InfluxDB/Elasticsearch

Nagflux collects data from the NagiosSpoolfileFolder and adds informations from Livestatus. This data is sent to an InfluxDB, to get displayed by Grafana. Therefor is the tool Histou gives you the possibility to add Templates to Grafana.

Nagflux can be seen as the process_perfdata.pl script from PNP4Nagios.

Dependencies

Golang 1.5+

Install

go get -u github.com/griesbacher/nagflux
go build github.com/griesbacher/nagflux

A x86-64 Linux binary will be added to the releases. Here the link to the latest Release.

Configure

Here are some of the important config-options:

Section Config-Key Meaning
main NagiosSpoolfileFolder This is the folder where nagios/icinga writes its spoolfiles. Icinga2: /var/spool/icinga2/perfdata
main NagfluxSpoolfileFolder In this folder you can dump files with InfluxDBs linequery syntax, the will be shipped to the InfluxDB, the timestamp has to be in ms
main FieldSeperator This char is used to separate the logical parts of the tablenames. This char has to be an char which is not allowed in one of those: host-, servicename, command, perfdata
main FileBufferSize This is the size of the buffer which is used to read files from disk, if you have huge checks or a lot of them you maybe recive error messages that your buffer is too small and that's the point to change it
Log MinSeverity INFO is default an enough for the most. DEBUG give you a lot more data but it's mostly just spamming
InfluxDBGlobal Version Currentliy the only supported Version of InfluxDB is 0.9+
Influx "name" Address The URL of the InfluxDB-API
Influx "name" Arguments Here you can set your user name and password as well as the database. The precision has to be ms!
Influx "name" NastyString/NastyStringToReplace These keys are to avoid a bug in InfluxDB and should disappear when the bug is fixed
Influx "name" StopPullingDataIfDown This is used to tell Nagflux, if this Influxdb is down to stop reading new data. That's useful if you're using spoolfiles. But if you're using gearman set this always to false because by default gearman will not buffer the data endlessly

Start

If the configfile is in the same folder as the executable:

./nagflux

else:

./nagflux -configPath=/path/to/config.gcfg

Debugging

  • If the InfluxDB is not available Nagflux will stop and an log entry will be written.
  • If the Livestatus is not available Nagflux will just write an log entry, but additional informations can't be gathered.
  • If any part of the Tablename is not valid for the InfluxDB an log entry will written and the data is writen to a file which has the same name as the logfile just with the ending '.dump-errors'. You could fix the errors by hand and copy the lines in the NagfluxSpoolfileFolder
  • If the Data can't be send to the InfluxDB, Nagflux will also write them in the '.dump-errors' file, you can handle them the same way.
  • If the logs are showing files are being read (in DEBUG mode) but nothing is going into InfluxDB, check the perfdata template to ensure it matches OMD format. See Perfdata Template for more details.

Dataflow

There are basically two ways for Nagflux to receive data:

  • Spoolfiles: They are for useful if Nagflux is running at the same machine as Nagios
  • Gearman: If you have a distributed setup, that's the way to go

With both ways you could enrich your performance data with additional informations from livestatus. Like downtimes, notifications and so.

Targets can be:

  • InfluxDB, that's the main target and the reason for this project.
  • Elasticsearch, more a prove of concept but it worked some time ago ;)
  • JSON, to parse the data by an third tool.

Dataflow Image

OMD

Nagflux is fully integrated in OMD-Labs, as well as Histou is. Therefor if you wanna try it out, it's maybe easier to install OMD-Labs.

Perfdata Template

Nagflux supports a couple of Perfdata templates (see main_test.go for some supported formats). By default it assumes you have the OMD formattemplate. If you are setting this up manually (not using OMD) please ensure your perfdata template is as follows:

Host

DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$

Service

DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$

If you are using Nagios the default templates will not work. Use the above templates with config host_perfdata_file_template and service_perfdata_file_template, respectively.

DEMO

This Dockercontainer contains OMD and everything is preconfigured to use Nagflux/Histou/Grafana/InfluxDB: https://github.com/Griesbacher/docker-omd-grafana

Presentations

  • Here is a presentation I held about Nagflux and Histou in 2016, only in German, sorry: Slides
  • That's the first one from 2015, also only in German. Slides - Video
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].