Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/newrelic/check_docker
A Go Nagios check for Docker
https://github.com/newrelic/check_docker
Last synced: 3 months ago
JSON representation
A Go Nagios check for Docker
- Host: GitHub
- URL: https://github.com/newrelic/check_docker
- Owner: newrelic
- License: bsd-2-clause
- Archived: true
- Created: 2014-05-16T22:49:23.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2020-04-20T21:24:45.000Z (over 4 years ago)
- Last Synced: 2024-06-28T08:35:44.160Z (4 months ago)
- Language: Go
- Size: 36.1 KB
- Stars: 127
- Watchers: 30
- Forks: 31
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Archived header](https://github.com/newrelic/open-source-office/raw/master/examples/categories/images/Archived.png)](https://github.com/newrelic/open-source-office/blob/master/examples/categories/index.md#archived)
check_docker
============A Nagios check to check some basic statistics reported by the Docker daemon.
Additionally validates the absence of Ghost containers and may optionally
be made to require the presence of a container running from a particular image
tag.`check_docker` is written in Go and is multi-threaded to keep the
drag time low on your Nagios server. It makes two API requests to the
Docker daemon, one to `/info` and one to `/containers/json`
and processes the results, all simultaneously.It is built using the the
[go_nagios](http://github.com/newrelic/go_nagios)
framework.Installing
----------
If you would rather not build the binaries yourself, you can install compiled,
statically-linked [binaries](https://github.com/newrelic/check_docker/releases)
for Linux or MacOSX. Simply download the tarball, extract it and use the binary
of your choice.Building
--------
```
go get github.com/newrelic/go_nagios
go build
```Usage
-----
```
Usage of ./check_docker:
-base-url="http://docker-server:2375": The Base URL for the Docker server
-container-name="": The name of a container that must be running on the Docker server
-warn-data-space=100: Warning threshold for Data Space
-crit-data-space=100: Critical threshold for Data Space
-warn-meta-space=100: Warning threshold for Metadata Space
-crit-meta-space=100: Critical threshold for Metadata Space
-image-id="": An image ID that must be running on the Docker server
-tls-cert="": Path to TLS cert file
-tls-key="": Path to TLS key file
-tls-ca="": Path to TLS CA file
````-base-url`: Here you specify the base url of the docker server.
`-container-name`: Allows you to specify the name of a container that should be running
on the server.`-image-id`: You can specify an image tag that needs to be running on the server for
certain cases where you have pegged a container to a server (e.g. each server
has a Nagios monitoring container running to report on server health). Will not
require any particular image if left off.`-(warn|crit)-(meta|data)-space`: the thresholds at which the named Nagios status codes
should be emitted. These are percentages, so `-crit-data-space=95` would send
a CRITICAL response when the threshold of 95% is crossed. Defaults are 100%.Contributions
-------------Contributions are more than welcome. Bug reports with specific reproduction
steps are great. If you have a code contribution you'd like to make, open a
pull request with suggested code.Pull requests should:
* Clearly state their intent in the title
* Have a description that explains the need for the changes
* Include tests!
* Not break the public APITesting for Contributors
------------------------`go test` can be run on 2 different platforms:
1. In Darwin(aufs), assuming you already setup Boot2Docker:
```
docker run -t -d --name named_container busybox:latest
export DOCKER_IMAGE=busybox:latest
export DOCKER_CONTAINER_NAME=named_containercd $GOPATH/src/github.com/newrelic/check_docker
go get ./... && go test
```2. In Linux(devicemapper), you are running the tests inside vagrant:
```
cd $GOPATH/src/github.com/newrelic/check_docker
vagrant up --provider virtualbox
vagrant ssh# Inside Vagrant
sudo docker run -t -d --name named_container busybox:latest
export DOCKER_IMAGE=busybox:latest
export DOCKER_CONTAINER_NAME=named_containerexport GOPATH=/go
cd $GOPATH/src/github.com/newrelic/check_docker
go get ./... && go test
```Copyright (c) 2014 New Relic, Inc. All rights reserved.