2005-11-13 Jason Schoonover This is a small document / HOWTO on adding devices that to be monitored in unnoc. As of Unnoc 1.0.6, adding hosts is a snap. The only thing required is an entry in the unnoc.conf file and unnoc will take care of the rest. Also, as of Unnoc 1.0.6, RRDTool is used to graph everything. I. Device Types II. Configuration III. Display IV. Examples I. Device types In unnoc, every host that is monitored requires an entry in the unnoc.conf, you can also bundle hosts together to simplify configuration. Right now the way that you differentiate between devices is with the 'type' directive, currently unnoc knows about the following different types: Server Firewall Router Switch APC Smart-UPS Network Appliance Filer Cisco Aironet Wireless Access Point Apple Airport Wireless Access Point EM01 Environment Websensor Each of these devices requires a unique configuration, that's why they can't be bundled together. The architecture is there for adding more network devices and even protocol support. More details on the types of hosts 1. Server A server is anything that has processes, load averages and disks attached. I know that every device, regardless of what it is or does has these, but these are the types that are not blackboxes, these are application servers. Each server is accessed via SNMP, and an SNMP agent must be configured on the server. So far, only UNIX variants have been tested against Net-SNMP. Unnoc can be configured to send out alerts when processes go down, loads get too high or disks get too full. Details below. 2. Generic A generic server is currently anything that is not a server or a plugin. Currently RRD only supports network interface monitoring on all hosts. Hosts are things like routers, switches and firewalls. Display variables are below. 3. APC Smart-UPS Unnoc supports APC Smart-UPS's. No testing has been done on any other UPS's. 4. Network Appliance Filer There is support for Netapp filer's as well, it has only been tested on FAS270's. 5. Cisco Aironets Unnoc supports Cisco Aironet's, it will monitor and graph the number of clients, SSID's and network interfaces associated with VLAN's and SSID's. 6. Apple Airports Unnoc supports Apple Airport wireless access points in the same way that Cisco aironets are supported. The details are a little bit simpler, however the number of clients and network interfaces are graphed and monitored. 7. EM01 Environment Websensor There is also support for the Esensors Environment Websensor. It will monitor the temperature and humidity of the sensor. Alerts are sent out when it goes down or when a temp threshold has been set. II. Configuration Once you've determined the host type, there are two parts to adding a host to unnoc: a) SNMP configuration b) the unnoc configuration a. SNMP configuration Obviously you need to enable SNMP on the server or host before you do any of this stuff (unless you're just doing it for pings, only ICMP is needed for that). Installation of Net-SNMP or UCD-SNMP is beyond the scope of this document, however I've included some of the snmpd.conf files that I use for my servers, so it makes snmpd configuration pretty easy. These are located in examples/snmp/ b. Unnoc configuration As of unnoc 1.0.6, the config file has changed. Each host is specified with the host {} directive. These are the valid directives for each host (see the README.config for detailed explanation of each variable): hostname the hostname community the SNMP community snmp_port alternate SNMP port snmp_version alternate SNMP version type device type, one of the following: server, firewall, router, switch, apc, netapp, aironet, airport, em01 description description of the host fuzz fuzz value of the host interval minute interval to check the host updown method of checking whether or not the host is up or down, one of: snmp or ping alert whether or not to send email alerts or not on this host graph whether graphing should be enabled group display group Type specific options for Servers warn_disk_space percentage of disk usage per host load_alert load average alert type, one of: Load-1, Load-5, Load-15 interfaces which interfaces to explicitly monitor interfaces_ignore which interfaces to explicitly ignore interface_columns display columns for interface graphs Type specific values for Generic hosts: interfaces which interfaces to explicitly monitor interfaces_ignore which interfaces to explicitly ignore interface_columns display columns for interface graphs primary_interface display throughput interface Type specific values for an APC Smart-UPS ups_load_warn load percentage to alert on temp_warn temperature warning level Type specific values for an EM01 Environment Sensor temp_warn temperature warning level The default values for all of the above are: fuzz global fuzz value interval global interval value updown snmp alert 1 (enabled) graph 1 (enabled) warn_disk_space global warn_disk_space value load_alert global load_alert value interfaces all (except localhost and ones that are "down") primary_interface none ups_load_warn global ups_load_warn value temp_warn global temp_warn III. Display Each host is displayed with a PHP script called display.php. And the argument to display.php is 'host'. There is a function to automatically do this, it will display href links for you and lay it out nice and neat for you on the main index.php page. This is all the function will do:   Server 1 The following functions are recommended to use for this: print_href_type() print_href_host() print_href_group() Each of these will make it easier to add/remove hosts from unnoc, you won't have to add it to the unnoc.conf and also add it to index.php as well. See the README.index file for details. IV. Examples Here are some examples of some host configurations. There are more examples in the examples/ directory in the source tarball directory. host { hostname = server3 community = community-anzlgm2k snmp_version = 2 snmp_port = 11521 type = server group = 4 } host { hostname = nortel-switch-2 community = birdie type = generic interval = 1 alert = 0 group = 5 interface_columns = 2 } host { hostname = cisco-router community = sweet type = generic primary_interface = 5 interfaces = 1,3,5,6,7 interface_columns = 2 } host { hostname = linksys-router community = pungie type = generic primary_interface = 1 interfaces_ignore = 4,5 interface_columns = 1 } host { hostname = server2 description = $snmp, $hostname community = Avnklahj3i4ah snmp_port = 111 type = router graph = 0 group = 4 } host { hostname = testserver, testserver1, server1 description = App Server - $hostname community = public type = server interval = 3 updown = ping group = 5 } host { hostname = apc-1 description = APC1 - $snmp community = public type = apc ups_load_warn = 85 temp_warn = 72 } Note that there are NO semi-colons at all! vim:tw=72:wm=1