Project

prtg

0.0
No commit activity in last 3 years
No release in over 3 years
This gem is a wrapper around the prtg http api.Prtg is an network monitoring solution which provides a api to retrieve several information about monitored devices.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 1.1.1
 Project Readme

PRTG API for ruby

Currently the gem provides read only access to the prtg api.
The later version should also be able to modify and create objects.

Working

  • /api/table.xml - Property/Status of Multiple Objects
  • /api/historicdata.xml - Historic Data
  • /api/getpasshash.htm - Passhash for later authentications

Not yet implemented

  • /api/getobjectproperty.htm - Get object property/setting
  • /api/getobjectstatus.htm - Get object status
  • /api/getsensordetails.xml - Get details about a sensor
  • /api/getstatus.xml - Get number of alarms,messages, etc.
  • /api/rename.htm - Rename an object
  • /api/setpriority.htm - Set priority of an object
  • /apisetobjectproperty.htm - Change properties of objects
  • /api/pause.html - Pause object
  • /api/pauseobjectfor.html - Pause object for a given time
  • /api/simulate.htm - Pause and simulate an error state
  • /api/acknowledgealarm.htm - Ackknowledge an error
  • /api/scannow.htm - Scan a sensor now
  • /api/discovernow.htm - Run Auto Discovery for an object
  • /api/setposition.htm - Move object in sensor tree
  • /api/reportaddsensor.htm - Add object to a report
  • /api/notificationtest.htm - Test a notification
  • /api/deleteobject.htm - Delete an object
  • /api/duplicateobject.htm - Duplicate a object
  • /chart.svg/png - Live Sensor Graphs

Usage

Instantiate new client

require "prtg"

config = {}

config[:host] = Net::HTTP.new HOST, PORT
config[:host].use_ssl = true
config[:host].verify_mode = OpenSSL::SSL::VERIFY_NONE

config[:username] = USERNAME
config[:passhash] = PASSHASH

client = Prtg::Client.new(config)

Fetch name and objid of all sensors

client.table.content(:sensors).columns(:objid, :name)

Fetch name and objid of all sensors which have a given tag

client.table\
      .content(:sensors)\
      .columns(:objid, :name)\
      .filter_tags(:given_tag)

Get only the first

client.table.content(:sensors).count(1)

Get only the second

client.table.content(:sensors).count(1).start(2)

Changelog

0.1.0

  • Now historic data can be queried
  • Client#live_data is deprecated and will be removed in the next version. The new api now maps the api's url pattern.

0.0.7

  • Change the query 'objid' to 'id'. This reacts to changes in Prtg api version 13.2.3.1927.

0.0.6

  • Add Accept-Encoding header to API calls. Otherwise Prtg version 13.2.3.1927 seems to faulty compress response data.