Difference between revisions of "Mesh/Monitoring"

Jump to navigation Jump to search
1,319 bytes added ,  13:36, 30 December 2015
 
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
See Also: [[Mesh#Technical_Documentation | Technical Documentation]]
See Also: [[Mesh#Technical_Documentation | Technical Documentation]],  [[Mesh/Bandwidth Quotas | Bandwidth Quotas]]


[[Category:Monitoring]]
[[Category:Monitoring]]
[[Category:Technical]]
[[Category:Technical]]
This is all currently out of date. The currently implemented monitor server is running on VPS, which is tunneled into the network.
It's running [https://monitor.sudomesh.org/cacti/graph_view.php?action=tree&tree_id=1&leaf_id=45 Cacti] and [https://monitor.sudomesh.org/smokeping/smokeping.cgi?target=Mesh Smokeping] as well as gathering logs.
When I have the time, I'll update the details here, but I've documented the setup as provisioning code here: https://github.com/max-b/mesh-playbooks - [[User:Maxb]]


== The Basics ==
== The Basics ==
Line 20: Line 26:
* login: sudoroom:sudomesh
* login: sudoroom:sudomesh


Icinga:
Icinga web UI:
* http://192.168.50.15/icinga2-classicui - icinga web ui
* http://192.168.50.15/icinga2-classicui (login: icingaadmin:mojave)
* http://192.168.50.15/ - graphite web ui
 
Charting:
* Graphite - http://192.168.50.15/
* Grafana - http://192.168.50.15/grafana
* Mesh Charts - http://192.168.50.15/grafana/#/dashboard/db/sudomesh  (works best in firefox)


github repo:  
Github repo:  
* https://github.com/TinajaLabs/sudomesh_icinga
* https://github.com/TinajaLabs/sudomesh_icinga


Line 35: Line 45:
* 192.168.50.15 - monitoring server
* 192.168.50.15 - monitoring server
*
*
== RRD ==
* http://oss.oetiker.ch/rrdtool/
* also look at whisper, a light weight rrd - http://graphite.wikidot.com/whisper
*
== collectd ==
* http://collectd.org/


== Icinga ==
== Icinga ==
Interesting article: [[http://www.smallbusinesstech.net/more-complicated-instructions/nagios/setting-up-nagios-on-a-debian-server-to-remotely-monitor-an-openwrt-router Setting up Icinga on a Debian Server to Remotely Monitor an OpenWrt Router]]
Interesting article: [http://www.smallbusinesstech.net/more-complicated-instructions/nagios/setting-up-nagios-on-a-debian-server-to-remotely-monitor-an-openwrt-router Setting up Icinga on a Debian Server to Remotely Monitor an OpenWrt Router]


Icinga is a Nagios fork which, as of Fall 2013, has more development involvement.  Icinga is the central system that pings other systems like openWRT.  Icinga gathers the data and can track and send notifications when values drift beyond normal tolerances.  On the remote hosts it is required to install '''nrpe''' and a basic set of '''nrpe plugins'''.  The article referenced above shows how it is possible to install nrpe on openwrt through the openwrt web interface.  After that one can ssh into the router and configure it.
Icinga is a Nagios fork which, as of Fall 2013, has more development involvement.  Icinga is the central system that pings other systems like openWRT.  Icinga gathers the data and can track and send notifications when values drift beyond normal tolerances.  On the remote hosts it is required to install '''nrpe''' and a basic set of '''nrpe plugins'''.  The article referenced above shows how it is possible to install nrpe on openwrt through the openwrt web interface.  After that one can ssh into the router and configure it.
Line 57: Line 59:
Icinga 2 is a rewrite of Icinga with a cleaner implementation and configuration structure.  It will be able to run SNMP calls to nodes which run mini-snmpd and be able to send performance data to charting apps like graphite.
Icinga 2 is a rewrite of Icinga with a cleaner implementation and configuration structure.  It will be able to run SNMP calls to nodes which run mini-snmpd and be able to send performance data to charting apps like graphite.


See Install notes at: [[Icinga 2]]
== Access to remote hosts ==
Icinga can use various methods to monitor remote hosts, NRPE, SNMP, etc.
=== IMCP ===
The ping service; for determining if the host is reachable
=== SNMP ===
We will probably start off with simple SNMP monitoring.  It return very basic info but it does not require too much setup on the remote hosts.


== OpenWRT Package: nrpe ==
=== OpenWRT Package: nrpe ===
NRPE requires a daemon running on the remote host and a number of mostly bash scripts for specialized info.  Bash scripts can be developed to read disk stats, memory usage, etc.  There are about 30 scripts which come with NRPE.
<pre>
<pre>
Package: nrpe
Package: nrpe
Line 80: Line 94:
</pre>
</pre>


See Install notes at: [[Icinga 2]]
== Alternative tools ==
 
=== RRD ===
* http://oss.oetiker.ch/rrdtool/
* also look at whisper, a light weight rrd - http://graphite.wikidot.com/whisper
*
 
=== collectd ===
* http://collectd.org/
 


== Sensu - Deprecated ==
=== Sensu - Deprecated ===
See our notes about the Sensu install: [[Mesh/Sensu_Page | Sensu Page]]
See our notes about the Sensu install: [[Mesh/Sensu_Page | Sensu Page]]


Requires a client application service and not useful for our needs for monitoring mesh nodes...
'''Requires a client application service and not useful for our needs for monitoring mesh nodes...'''
 
* The sensu web page can be accessed internally at:  
* The sensu web page can be accessed internally at:  
** http://192.168.42.65:8080/# (as of 2014.07.25 no services defined)
** http://192.168.42.65:8080/# (as of 2014.07.25 no services defined)
Line 91: Line 115:
** pw: secret
** pw: secret


=== About Sensu - From Sensu site ===
==== About Sensu - From Sensu site ====


Sensu is often described as the "monitoring router". Essentially, Sensu takes the results of "check" scripts run across many systems, and if certain conditions are met; passes their information to one or more "handlers". Checks are used, for example, to determine if a service like Apache is up or down. Checks can also be used to collect data, such as MySQL query statistics or Rails application metrics. Handlers take actions, using result information, such as sending an email, messaging a chat room, or adding a data point to a graph. There are several types of handlers, but the most common and most powerful is "pipe", a script that receives data via standard input. Check and handler scripts can be written in any language, and the community repository continues to grow!
Sensu is often described as the "monitoring router". Essentially, Sensu takes the results of "check" scripts run across many systems, and if certain conditions are met; passes their information to one or more "handlers". Checks are used, for example, to determine if a service like Apache is up or down. Checks can also be used to collect data, such as MySQL query statistics or Rails application metrics. Handlers take actions, using result information, such as sending an email, messaging a chat room, or adding a data point to a graph. There are several types of handlers, but the most common and most powerful is "pipe", a script that receives data via standard input. Check and handler scripts can be written in any language, and the community repository continues to grow!

Navigation menu