Using Device Modules Estimated Reading Time: 9 Minutes SNMP connectivity is supported via both IPv4 and IPv6. Bandwidth Monitoring Use this module on servers, uplinks, or any device associated with a switch port to display bandwidth data on the device page. This module will also allow you to administratively enable or disable the associated switch port(s) if the parent switch is configured to allow administrative control. Chef Node Control Ubersmith's Chef Node Control module allows you to interact with an OpsCode Chef Server, create nodes, edit their roles, and bootstrap them -- all within Ubersmith. Configure the module using the details specific to your Chef Server: Once the module is configured, you can begin to create nodes and bootstrap them within Ubersmith, as well as send custom data groups to the Chef server for use in provisioning. You can also enable and disable roles for your nodes from within Ubersmith. Once your nodes have been bootstrapped and are configured with Chef, Ubersmith will display some additional details provided by the Chef Server, as well as the bootstrap output. Environmental Monitoring Use this module on any environmental monitoring unit, including some PDUs, to display temperature and humidity data for the device. This module will also calculate an average across all environmental devices at a given facility and display the values on the Device Manager dashboard. Rebooter Information Use this module on any managed PDU. It will display a graph of power draw as well as a port listing with status for the outlets on the PDU, as well as devices associated with outlets on the unit. The Rebooter Information module also includes support for a "Virtual PDU" -- a virtual pdu can be a collection of outlets from a single PDU or from multiple PDUs. This capability is useful in a colocation environment where a host may want to provide the control capabilities of the Rebooter Information module to a client, but only for a subset of PDU outlets. The configuration is a bit different from a normal PDU, as seen below: The Virtual PDU module is selected, and the 'ports' field has a few outlets defined from another physical PDU. The syntax of configuration is 'pduname/outletnumber', each on a new line. An optional label can be specified in parenthesis after the port identifier. Once configured, the new Virtual PDU can be assigned to a client for their use. SNMP Monitor Use this module on any SNMP enabled device; it allows you to monitor arbitrary SNMP OIDs. This module appears in the listing when adding a new monitor. A regex can be performed on the values returned by the OIDs specified in the 'Config' tab of the device module. Server Metrics Use this module on servers and other devices that support net-snmp or Windows SNMP service. It will display a chart and graphs displaying CPU, Load, Memory, Disk, and I/O usage (if supported). Switch Information Use this module on switches, routers, or any other device that measures network utilization. It will display a port listing with status for each port on the device, as well as devices associated with ports on the unit. This module is also used for our Citrix XenServer support; with some special considerations. First, Ubersmith expects to be communicating with your primary XenServer node, so configure this device first. Ubersmith also requires the node master and all child nodes in the cluster to be running snmpd, as well as all using the same SNMP read community. Additionally, you'll want to make sure your Ubersmith appliance host can physically reach the child nodes via the network. The Switch Information module also includes support for a "Virtual Switch" -- a virtual switch can be a collection of ports from a single switch or from multiple switches. This capability is useful in a colocation environment where a host may want to provide the control capabilities of the Switch Information module to a client, but only for a subset of switch ports. The configuration is a bit different from a normal switch, as seen below: In the example above, the Virtual Switch module is selected, and the 'ports' field has a few ports defined from another physical switch. The syntax of configuration is 'switchname/portname', each on a new line. Once configured, the new Virtual Switch can be assigned to a client for their use. The Switch Information display for a Virtual Switch configured like the one above will look like this If a virtual switch is associated with a service, all ports on the virtual switch will be used for bandwidth billing. This can be convenient in situations where you are providing colocation services, and are not overly concerned with what devices are associated with the individual ports -- but still want to be able to bill for the traffic crossing the interfaces. Syslog NG If you have a PHPSyslogNG server, this module can connect to its database and display a customizable list of the last few log entries for the device. Power Panel Currently, Ubersmith supports interfacing with the WebCTRL power panel management software. Power Circuit Individual Power Circuits reported by the WebCTRL software can be monitoring using the Power Circuit device module. Command Monitor The Command Monitor device module will allow you run OS level commands or scripts, and examine the output. You can perform a regular expression check on the output, as well as verify that the expected output is within a certain range. R1Soft CDP 3.0 Enterprise Server The R1Soft Enterprise Server device module communicates with an R1Soft host to retrieve information about agents configured on the host. R1Soft CDP 3.0 Agent The R1Soft Agent device module returns information about a specific R1Soft agent. This module is used in conjunction with the Enterprise Server module. IPMI Information The IPMI Information device module will allow you to communicate with devices that support the Intelligent Platform Management Interface (IPMI). The module provides for the display and monitoring of Baseboard Management Controllers, as well as interaction with KVM and Serial over Lan (SOL) consoles from select providers. Configuration requires the device's IP address, and IPMI username and password. If the Reboot Control device module is used in conjunction with the IPMI Information module, it will automatically be configured to control power for the device via IPMI. The IPMI Information module requires 'freeipmi' to be installed on your Ubersmith instance host. Known functional versions of freeipmi are 1.0.7 to 1.0.10. Additionally, you can have Ubersmith proxy the VNC connections to your IPMI devices through an external host. This is useful if you do not wish to give your out of band devices public address space. Your clients VNC connections can be proxied through an additional host and on to your private network. To take advantage of this feature, configure the items in the module (as seen above) as desired, and copy the file cron/proxy.php from the Ubersmith code base to the host you with to use as a proxy. Ensure PHP, PHP-PROCESS , and PHP-CLI is installed on the remote host, so that the proxy code can be executed. Troubleshooting IPMI Information Could not find 'bmc-info' utility, is freeipmi installed?This error indicates that the freeipmi utility suite is not installed, or that Apache cannot find the bmc-info binary. You can download freeipmi from the following URL: http://www.gnu.org/software/freeipmi/download.html Ubersmith requires freeipmi 1.0.7 or newer. On most hosts, the freeipmi binaries need to be copied to /usr/bin to be included in the Apache user's PATH. The required binaries are: ipmi-sensors, ipmiping, bmc-info, ipmipower ipmi_ctx_open_outofband: internal errorThis error indicates that there is a privilege or firewall issue preventing a freeipmi utility (usually bmc-info) from connecting to your IPMI enabled device. Ensure that outgoing connections on port 623/udp are permitted. bmc-info: connection timeoutYour Ubersmith instance host cannot reach the IPMI enabled device / BMC that you have configured. Check with your network administrator to arrange for connectivity between the two hosts. Try `bmc-info --help' or `bmc-info --usage' for more information. Memcache Status This device module will allow you to monitor statistics, connections, hit rate, and usage for your memcached server. Varnish Status The Varnish Status module allows you to monitor connections, threads, and cache hits/misses for your varnish server. MySQL(R) Status The MySQL(R) Status Device Module allows you to monitor the activity and connection counts for your MySQL database hosts. NAS Filesystem Monitoring and NAS Information These two device modules allow you to monitor a network attached storage device. These modules currently only support Parascale devices. NetFlow Server and NetFlow Bandwidth Using these device modules, Ubersmith can support collecting bandwidth data via libpcap, Netlink/ULOG, NetFlow v1/v5/v7/v8/v9, sFlow v2/v4/v5 and IPFIX by way of the network monitoring tool "pmacct". In order to take advantage of this capability, you will need to have a host configured to run pmacct. This can be your Ubersmith appliance, or a separate host dedicated for this purpose. Puppet Node Control A Puppet 'puppetmaster' host can query Ubersmith for configuration details used during a puppet client deployment. This functionality is referred to within the context of Puppet as an 'external node'. You can define the Puppet modules that are available for a device, as well as its environment. Ubersmith will also pass along the device's Custom Device Data as Puppet parameters. R1Soft CDP 3.0 Enterprise Server and Agent These two modules allow Ubersmith to monitor R1Soft Enterprise hosts, as well as their associated Agents. It is also used in conjunction with the Backup Billing Service Module. VM Host and Virtual Machine The VM Host module and Virtual Machine modules are used to manage virtualization platforms. Currently these two modules support Virtuozzo and SolusVM. Virtual IP Monitoring This module allows you to monitor VIPs and Realservers configured on a load balancer. Currently, this module only supports the Foundry ServerIron 4G and Zeus / Stingray. Webserver Status The Webserver Status Device Module allows you to monitor the activity and connection counts for your HTTP Server hosts. Ubersmith supports monitoring Apache, nginx, and lighttpd. Creating Your Own Modules Ubersmith offers you the ability to program your own device modules. Examples are available at https://github.com/TeamUbersmith/device_modules