reddec / apcsrv

Docker based APC UPS monitor that posts parsed status of one APC over HTTP POST in JSON format.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

APC Service

Docker based APC UPS monitor that posts parsed status of one APC over HTTP POST in JSON format.

Docker

Use image reddec/apcsrv (by Docker HUB)

Useful environment:

  • TARGET - (required) URL where to POST data in JSON format. Supports redirects (e.x. Redirect)
  • APC_APC_HOST - (required) IP address of APC UPS with SNMP access
  • APC_PORT - SNMP APC UPS port. Default is 161
  • APC_NAME - APC custom name. Any string for ID
  • INTERVAL - Interval in seconds between checks. Default is 3

Example

docker run --rm -i                                 \
  -e APC_HOST=192.168.1.2                          \
  -e "TARGET=http://192.168.1.3:10100/collect/apc" \
  reddec/apcsrv

JSON Example

{
    "name": {
        "type": "string",
        "value": "APC_NAME"
    },
    "alarmdel": {
        "type": "seconds",
        "value": "5"
    },
    "stesti": {
        "type": "",
        "value": "336"
    },
    "dwake": {
        "type": "seconds",
        "value": "000"
    },
    "battv": {
        "type": "volts",
        "value": 218.0
    },
    "lotrans": {
        "type": "volts",
        "value": 154.0
    },
    "": {
        "type": "+0000",
        "value": "28"
    },
    "status": {
        "type": "",
        "value": "ONLINE"
    },
    "hitrans": {
        "type": "volts",
        "value": 242.0
    },
    "driver": {
        "type": "",
        "value": "SNMP UPS Driver"
    },
    "statflag": {
        "type": "status flag",
        "value": "0x07000008"
    },
    "sense": {
        "type": "",
        "value": "Unknown"
    },
    "firmware": {
        "type": "",
        "value": "476.17.W"
    },
    "itemp": {
        "type": "c internal",
        "value": 14.0
    },
    "mbattchg": {
        "type": "percent",
        "value": "5"
    },
    "bcharge": {
        "type": "percent",
        "value": 100.0
    },
    "mintimel": {
        "type": "minutes",
        "value": "3"
    },
    "maxlinev": {
        "type": "volts",
        "value": 227.0
    },
    "battdate": {
        "type": "",
        "value": "11/06/15"
    },
    "end_apc": {
        "type": "",
        "value": "2016-03-19 19:28:43 +0000"
    },
    "maxtime": {
        "type": "seconds",
        "value": "0"
    },
    "lastxfer": {
        "type": "",
        "value": "Automatic or explicit self test"
    },
    "cumonbatt": {
        "type": "seconds",
        "value": "0"
    },
    "upsname": {
        "type": "",
        "value": "XXXXYYYZZZ"
    },
    "xoffbatt": {
        "type": "",
        "value": "N/A"
    },
    "model": {
        "type": "",
        "value": "Smart-UPS RT 10000 XL"
    },
    "nomoutv": {
        "type": "volts",
        "value": "220"
    },
    "apc": {
        "type": "",
        "value": "001,049,1179"
    },
    "date": {
        "type": "",
        "value": "2016-03-19 19:28:43 +0000"
    },
    "minlinev": {
        "type": "volts",
        "value": 218.0
    },
    "extbatts": {
        "type": "",
        "value": "1"
    },
    "starttime": {
        "type": "",
        "value": "2016-03-19 19:28:25 +0000"
    },
    "ambtemp": {
        "type": "c",
        "value": 0.0
    },
    "loadpct": {
        "type": "percent load capacity",
        "value": 17.0
    },
    "dshutd": {
        "type": "seconds",
        "value": "020"
    },
    "cable": {
        "type": "",
        "value": "Ethernet Link"
    },
    "humidity": {
        "type": "percent",
        "value": 0.0
    },
    "serialno": {
        "type": "",
        "value": "xxxxxxxxxxxxxxxxx"
    },
    "numxfers": {
        "type": "",
        "value": "0"
    },
    "linev": {
        "type": "volts",
        "value": 226.0
    },
    "retpct": {
        "type": "percent",
        "value": 0.0
    },
    "badbatts": {
        "type": "",
        "value": "0"
    },
    "version": {
        "type": "",
        "value": "3.14.10 (13 September 2011) debian"
    },
    "selftest": {
        "type": "",
        "value": "OK"
    },
    "timeleft": {
        "type": "minutes",
        "value": 59.0
    },
    "upsmode": {
        "type": "",
        "value": "Stand Alone"
    },
    "hostname": {
        "type": "",
        "value": "yyyyyyyyyyyy"
    },
    "dlowbatt": {
        "type": "minutes",
        "value": "02"
    },
    "tonbatt": {
        "type": "seconds",
        "value": "0"
    },
    "outputv": {
        "type": "volts",
        "value": 221.0
    },
    "mandate": {
        "type": "",
        "value": "01/12/08"
    },
    "linefreq": {
        "type": "hz",
        "value": 50.0
    }
}

About

Docker based APC UPS monitor that posts parsed status of one APC over HTTP POST in JSON format.

License:MIT License


Languages

Language:Python 85.7%Language:Shell 14.3%