# Monitora containers Link: [https://gist.github.com/haukurk/a6e0751a8b8746265f8b2c55d9476230](https://gist.github.com/haukurk/a6e0751a8b8746265f8b2c55d9476230)
\#!/bin/bash |
\# Author: Haukur Kristinsson / Erik Kristensen |
\# Email: haukur@hauxi.is / erik@erikkristensen.com |
\# License: MIT |
\# Nagios Usage: check\_nrpe!check\_docker\_container!\_container\_id\_ |
\# Usage: ./check\_docker\_container.sh \_container\_id\_ |
\# |
\# The script checks if a container is running. |
\# OK - running |
\# WARNING - container is ghosted |
\# CRITICAL - container is stopped |
\# UNKNOWN - does not exist |
CONTAINER=$1 |
RUNNING=$(docker inspect --format="{{ .State.Running }}" $CONTAINER 2> /dev/null) |
if \[ $? -eq 1 \]; then |
echo "UNKNOWN - $CONTAINER does not exist." |
exit 3 |
fi |
if \[ "$RUNNING" == "false" \]; then |
echo "CRITICAL - $CONTAINER is not running." |
exit 2 |
fi |
STARTED=$(docker inspect --format="{{ .State.StartedAt }}" $CONTAINER) |
NAME=$(docker inspect --format="{{ .Name }}" $CONTAINER) |
NETWORKMODE=$(docker inspect --format="{{ .HostConfig.NetworkMode }}" $CONTAINER) |
NETWORK=$(docker inspect --format="{{ .NetworkSettings.Networks."$NETWORKMODE".IPAddress }}" $CONTAINER) |
echo "OK - $CONTAINER is running. IP: $NETWORK, StartedAt: $STARTED, Named: $NAME" |