Server Monitoring with Munin and Monit on Ubuntu 14.04 LTS Rumi, January 6, 2016 Our system’s hostname is server1.example.com, and we have a website www.example.com on it with the document root/var/www/www.example.com/web. The following steps have to be performed as root user. To become root user on your server, run this command: sudo su Ensure that the system is up to date before you start to install Munin, run: apt-get update apt-get upgrade Apache is used to show the Munin pages, the apache fcgid module is required for the Munin graph zoom feature. I will install apache and the libapache2-mod-fcgid module with apt. apt-get install apache2 libcgi-fast-perl libapache2-mod-fcgid Enable the fcgid module in apache. a2enmod fcgid Install and Configure Munin To install Munin on Ubuntu 14.04, run the commands below: apt-get install munin munin-node munin-plugins-extra When the server is running MySQL or MariaDB, then enable the a few extra Munin plugins to monitor MySQL: cd /etc/munin/plugins ln -s /usr/share/munin/plugins/mysql_ mysql_ ln -s /usr/share/munin/plugins/mysql_bytes mysql_bytes ln -s /usr/share/munin/plugins/mysql_queries mysql_queries ln -s /usr/share/munin/plugins/mysql_slowqueries mysql_slowqueries ln -s /usr/share/munin/plugins/mysql_threads mysql_threads Next, we must edit the Munin configuration file /etc/munin/munin.conf. Uncomment the dbdir, htmldir, logdir, rundir, andtmpldir lines (the default values are fine). We want Munin to use the name server1.example.com instead of localhost.localdomainin the HTML output, therefore, we replace localhost.localdomain with server1.example.com in the simple host tree section. Without the comments, the changed file looks like this: nano /etc/munin/munin.conf # Example configuration file for Munin, generated by 'make build' # The next three variables specifies where the location of the RRD # databases, the HTML output, logs and the lock/pid files. They all # must be writable by the user running munin-cron. They are all # defaulted to the values you see here. # dbdir /var/lib/munin htmldir /var/cache/munin/www logdir /var/log/munin rundir /var/run/munin # Where to look for the HTML templates # tmpldir /etc/munin/templates # Where to look for the static www files # #staticdir /etc/munin/static # temporary cgi files are here. note that it has to be writable by # the cgi user (usually nobody or httpd). # # cgitmpdir /var/lib/munin/cgi-tmp # (Exactly one) directory to include all files from. includedir /etc/munin/munin-conf.d [...] # a simple host tree [server1.example.com] address 127.0.0.1 use_node_name yes [...] We should find the Apache configuration file for Munin /etc/munin/apache.conf – it defines an alias called munin to munin’s HTML output directory /var/cache/munin/www which means we can access munin from all websites on this server by using the relative path /munin(e.g. http://www.example.com/munin). The apache.conf file that ships with Ubuntu 14.04 still contains the old apache 2.2 syntax which is not correct for the apache 2.4, therefore we replace that file with a new one. First we make a backup of the old file. mv /etc/munin/apache.conf /etc/munin/apache.conf_bak Open the new file with an editor: nano /etc/munin/apache.conf And paste the content below: Alias /munin /var/cache/munin/www <Directory /var/cache/munin/www> # Require local Require all granted Options FollowSymLinks SymLinksIfOwnerMatch Options None </Directory> ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph <Location /munin-cgi/munin-cgi-graph> # Require local Require all granted Options FollowSymLinks SymLinksIfOwnerMatch <IfModule mod_fcgid.c> SetHandler fcgid-script </IfModule> <IfModule !mod_fcgid.c> SetHandler cgi-script </IfModule> </Location> Restart Apache: service apache2 restart Then restart Munin: service munin-node restart Now wait a few minutes so that Munin can produce its first output, and then go to http://www.example.com/munin/ in your browser, and you see the first statistics. Enable additional modules in Munin The Munin command “munin-node-configure –suggest” can be used to get recommendations for additional Munin modules that can be enabled on the server. Run: munin-node-configure --suggest The output should be similar to this: The column “used” shows if a module is enabled, the column “Suggestions” shows if the server runs a service that can be monitored by this module. Create a symlink for the module in /etc/munin/plugins to enable it. Here I will enable the apache_* modules for example: cd /etc/munin/plugins ln -s /usr/share/munin/plugins/apache_accesses ln -s /usr/share/munin/plugins/apache_processes ln -s /usr/share/munin/plugins/apache_volume Restart Munin to load the new configuration. service munin-node restart Administrations DebianMuninUbuntu