or tcpdump and iftop and htop and the list goes on and on. These are all brilliant tools but I do sometimes miss a comparison.
So when I see a lot of information - brilliant information - I find myself wondering: "is that normal, or not". I Google it and find a lot of experts who have no doubts and declare things for normal or dangerous as if it was the easiest thing in the world.
I will not be the one asking the stupid questions to something apparently so easy , so I have to find some way to look (and preferably be) smart.
I decided to give yet another monitoring program a go and since dedanna our sound berserk mentioned Monitorix what could be more natural?
So Monitorix it is. It needs to check all of the stuff I understand plus of a lot of the stuff that I do not understand so that everything is covered. And naturally it must be flexible and easy to read.
I found it in AUR for my Arch based distros and in a more traditional repo (epel) in Centos. So I (compiled and ) installed it on several boxes. There are also instructions for most distros on the Monitorix site (Arch and the Debian and Redhat families seem covered it is in the Openmandriva repos too)
Nothing to it!
After install you will have a config file in /etc/monitorix/monitorix.conf.
In Arch based distros that is; on Centos 6.5 the file was there but it was completely empty! So I copied this content in there to have a working solution "out of the box":
# Monitorix - configuration file # # See monitorix.conf(5) manpage for a detailed description of each option. #
title = Place a title here hostname = theme_color = black refresh_rate = 150 iface_mode = graph enable_zoom = y netstats_in_bps = n disable_javascript_void = n temperature_scale = c show_gaps = n global_zoom = 1 max_historic_years = 1 accept_selfsigned_certs = y include_dir = /etc/monitorix/conf.d
# Graphs (de)activation # ----------------------------------------------------------------------------- <graph_enable> system = y kern = y proc = y hptemp = n lmsens = n nvidia = n disk = n fs = y net = y netstat = y serv = y mail = n port = y user = y ftp = n apache = n nginx = n lighttpd = n mysql = n squid = n nfss = n nfsc = n bind = n ntp = n fail2ban = n icecast = n raspberrypi = n phpapc = n memcached = n apcupsd = n wowza = n int = y </graph_enable>
# KERN graph # ----------------------------------------------------------------------------- <kern> graph_mode = r <list> user = y nice = y sys = y iow = y irq = y sirq = y steal = y guest = y </list> rigid = 2 limit = 100 </kern>
# PROC graph # ----------------------------------------------------------------------------- <proc> max = 4 graphs_per_row = 2 size = medium data = y rigid = 2 limit = 100 </proc>
# Multihost # ----------------------------------------------------------------------------- <multihost> enabled = n footer_url = y graphs_per_row = 2 remotehost_list = server 1, server 2, server 3 <remotehost_desc> 0 = http://www.example.com,/monitorix,/monitorix-cgi 1 = http://10.0.0.1,/monitorix,/monitorix-cgi 2 = http://192.168.0.100:8080,/,/ </remotehost_desc> groups = n remotegroup_list = My Group <remotegroup_desc> 0 = server 2, server 3 </remotegroup_desc> </multihost>
# Email Reports # ----------------------------------------------------------------------------- <emailreports> enabled = n url_prefix = http://localhost:8080 smtp_hostname = localhost from_address = noreply@example.com hour = 0 minute = 0 <daily> enabled = n graphs = system, fs to = ace@example.com </daily> <weekly> enabled = n graphs = system, fs to = gene@example.com </weekly> <monthly> enabled = n graphs = system, fs to = paul@example.com </monthly> <yearly> enabled = n graphs = system, fs to = peter@example.com </yearly> </emailreports>
# ======================================================================== # ====== Probably you don't need to touch anything below this line ====== # ========================================================================
<graph_title> system = System load average and usage kern = Global kernel usage proc = Kernel usage per processor hptemp = HP ProLiant System Health lmsens = LM-Sensors and GPU temperatures nvidia = NVIDIA temperatures and usage disk = Disk drive temperatures and health fs = Filesystem usage and I/O activity net = Network traffic and usage netstat = Netstat statistics serv = System services demand mail = Mail statistics port = Network port traffic user = Users using the system ftp = FTP statistics apache = Apache statistics nginx = Nginx statistics lighttpd = Lighttpd statistics mysql = MySQL statistics squid = Squid statistics nfss = NFS server statistics nfsc = NFS client statistics bind = BIND statistics ntp = NTP statistics fail2ban = Fail2ban statistics icecast = Icecast Streaming Media Server raspberrypi = Raspberry Pi sensor statistics phpapc = Alternative PHP Cache statistics memcached = Memcached statistics apcupsd = APC UPS statistics wowza = Wowza Media Server int = Devices interrupt activity </graph_title>
It will look like this: Here you can already pick all graphs or watch specific ones. And you can pick the daily weekly monthly or even yearly view. Start with everything to get a good overview - the result is impressive:
You can monitor pretty much anything by activating it in the config file including mail, logged in users, temperatures++++
All nice and dandy - but are the values normal? Wouldn't it be nice to have all your computers monitored on one central box so you can compare the values? I should think so
So I went to monitorix.conf on my main box and searched the file for multihost and there I simply changed
That is it all I had to do; now have an overview of all the PC's where I have monitorix running: If I pick all I get a nice system load comparison. As you can see the computer heidi-lap was not online, which is fine and also a good information. Now I can go back and forth between those computers and compare values and it is easy
I can recommend this one - it is really good. What about squid firewalls and special setups you say? Monitorix can handle it as long as it is Linux or BSD.
To big for you? You don't run a server park?
Wait for it..
This thing is so light that you can monitor your Raspberry pi with it too.
Manjaro 64bit on the main box -Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz and nVidia Corporation GT200b [GeForce GTX 275] (rev a1. + Centos on the server - Arch on the laptop. "There are no stupid questions - Only stupid answers!"
I have been running this thing for almost a year now - without a glitch. The yearly statistic is interesting reading and will enhance your chances of identifying real bottlenecks. As you can see I installed Monitorix in August 2014 so this is not a full year, but it shows the different load on four boxes. Given the difference in capacity this is "normal".
If I want to check out one of the boxes thoroughly then I enter it specifically. This is only the beginning of a long and interesting list:
I guess it is hard to say anything specific about a monitoring system before you have used it for some time. Now I have; and Monitorix has passed the test. (I have heard that you need to disable SE-linux if you want to use Monitorix - Since I do not use that I would not know) Some of you will remember that I was impressed with Nagios at some point too (It had a really good reporting system) - but that one did not pass the test of time.
Manjaro 64bit on the main box -Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz and nVidia Corporation GT200b [GeForce GTX 275] (rev a1. + Centos on the server - Arch on the laptop. "There are no stupid questions - Only stupid answers!"
I have used SELinux for a long time now and Monitorix works just fine with it,
Manjaro 64bit on the main box -Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz and nVidia Corporation GT200b [GeForce GTX 275] (rev a1. + Centos on the server - Arch on the laptop. "There are no stupid questions - Only stupid answers!"