An Elastic Beat for all the Nagios checks
Switch branches/tags
Nothing to show
Clone or download

README.md

NagiosCheckBeat

NagiosCheckBeat is the Beat used for running Nagios checks.

Check out this blog post on how it works.

You can integrate with Watcher (How-To) or Nagios Core (How-To) for Alerting.

Kibana Screenshot

Compatibility

  • For Elasticsearch 1.x compatibility, see the 0.5.x branch.
  • NagiosCheckBeat 0.6.0 is compatible with Elasticsaerch 2.x through 5.x.
  • NagiosCheckbeat 6.2.3 is compatible with Elastic Stack 6.x

Download & Install

Packages for your OS can be found in Releases

For example, in an i686 architecture:

$ sudo rpm -i https://github.com/PhaedrusTheGreek/nagioscheckbeat/releases/download/6.2.3/nagioscheckbeat-6.2.3-i686.rpm

Configuration

############################# Input ############################################
input:
  checks:
    -
      name: "heartbeat"
      cmd: "/usr/lib64/nagios/plugins/check_dummy"
      args: "0 Checking In!"
      period: "10s"
    -
      name: "disks"
      cmd: "/usr/lib64/nagios/plugins/check_disk"
      args: "-w 80 -c 90 -x /dev"
      period: "1h"
    -
      name: "load"
      cmd: "/usr/lib64/nagios/plugins/check_load"
      args: "-w 5 -c 10"
      period: "1m"
    -
      name: "io"
      cmd: "/usr/lib64/nagios/plugins/check_sar_perf.py"
      args: "io_transfer"
      period: "30s"
      enabled: false

Produces

Firstly, the performance data metrics, individually as documents type: nagiosmetric:

{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 112,
    "max_score": 1.6964493,
    "hits": [
      {
        "_index": "nagioscheckbeat-6.2.2-2018.02.20",
        "_type": "doc",
        "_id": "-39LtGEBVAhdWhA-GWkB",
        "_score": 1.6964493,
        "_source": {
          "@timestamp": "2018-02-20T17:37:54.953Z",
          "value": 638,
          "beat": {
            "name": "Jasons-MacBook-Pro-912.local",
            "hostname": "Jasons-MacBook-Pro-912.local",
            "version": "6.2.2"
          },
          "uom": "",
          "max": 0,
          "critical": 0,
          "min": 0,
          "name": "proc",
          "label": "procs",
          "warning": 0,
          "type": "nagiosmetric"
        },
        "fields": {
          "name": [
            "proc"
          ]
        }
      },
      {
        "_index": "nagioscheckbeat-6.2.2-2018.02.20",
        "_type": "doc",
        "_id": "O39KtGEBVAhdWhA-o2nY",
        "_score": 1.6964493,
        "_source": {
          "@timestamp": "2018-02-20T17:37:24.949Z",
          "name": "load",
          "uom": "",
          "warning": 5,
          "label": "load5",
          "critical": 10,
          "max": 0,
          "type": "nagiosmetric",
          "beat": {
            "name": "Jasons-MacBook-Pro-912.local",
            "hostname": "Jasons-MacBook-Pro-912.local",
            "version": "6.2.2"
          },
          "value": 0,
          "min": 0
        },
        "fields": {
          "name": [
            "load"
          ]
        }
      }
    ]
  }
}

Secondly, the results of the actual Nagios Checks, where type: nagioscheck

{
  "took": 2,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 341,
    "max_score": 0.38229805,
    "hits": [
      {
        "_index": "nagioscheckbeat-6.2.2-2018.02.20",
        "_type": "doc",
        "_id": "s39KtGEBVAhdWhA-6mkg",
        "_score": 0.38229805,
        "_source": {
          "@timestamp": "2018-02-20T17:37:42.953Z",
          "took_ms": 11,
          "type": "nagioscheck",
          "name": "heartbeat",
          "message": "OK: Hello\n",
          "beat": {
            "name": "Jasons-MacBook-Pro-912.local",
            "hostname": "Jasons-MacBook-Pro-912.local",
            "version": "6.2.2"
          },
          "status": "OK",
          "status_code": 0,
          "cmd": "/usr/local/sbin/check_dummy",
          "args": "0 Hello"
        },
        "fields": {
          "name": [
            "heartbeat"
          ]
        }
      },
      {
        "_index": "nagioscheckbeat-6.2.2-2018.02.20",
        "_type": "doc",
        "_id": "u39KtGEBVAhdWhA-8Wnv",
        "_score": 0.38229805,
        "_source": {
          "@timestamp": "2018-02-20T17:37:44.952Z",
          "cmd": "/usr/local/sbin/check_procs",
          "args": "",
          "message": "PROCS OK: 638 processes ",
          "status_code": 0,
          "took_ms": 86,
          "beat": {
            "name": "Jasons-MacBook-Pro-912.local",
            "hostname": "Jasons-MacBook-Pro-912.local",
            "version": "6.2.2"
          },
          "status": "OK",
          "type": "nagioscheck",
          "name": "proc"
        },
        "fields": {
          "name": [
            "proc"
          ]
        }
      },
      {
        "_index": "nagioscheckbeat-6.2.2-2018.02.20",
        "_type": "doc",
        "_id": "9X9LtGEBVAhdWhA-GWkB",
        "_score": 0.38229805,
        "_source": {
          "@timestamp": "2018-02-20T17:37:54.949Z",
          "cmd": "/usr/local/sbin/check_load",
          "status_code": 0,
          "took_ms": 14,
          "type": "nagioscheck",
          "name": "load",
          "args": "-w 5 -c 10",
          "message": "OK - load average: 2.19, 0.00, 0.00",
          "status": "OK",
          "beat": {
            "hostname": "Jasons-MacBook-Pro-912.local",
            "version": "6.2.2",
            "name": "Jasons-MacBook-Pro-912.local"
          }
        },
        "fields": {
          "name": [
            "load"
          ]
        }
      },
      {
        "_index": "nagioscheckbeat-6.2.2-2018.02.20",
        "_type": "doc",
        "_id": "6X9OtGEBVAhdWhA-Jm5P",
        "_score": 0.30196804,
        "_source": {
          "@timestamp": "2018-02-20T17:41:14.956Z",
          "name": "disks",
          "cmd": "/usr/local/sbin/check_disk",
          "message": "DISK CRITICAL - /Users/jason/OBFUSCATED is not accessible: No such file or directory\n",
          "beat": {
            "name": "Jasons-MacBook-Pro-912.local",
            "hostname": "Jasons-MacBook-Pro-912.local",
            "version": "6.2.2"
          },
          "status": "CRITICAL",
          "status_code": 2,
          "took_ms": 27,
          "type": "nagioscheck",
          "args": "-w 80 -c 90"
        },
        "fields": {
          "name": [
            "disks"
          ]
        }
      }
    ]
  }
}