Configuring Nagios 3 Network Monitoring and Management Tutorial May 18, 2009 – AfNOG 2009 – Cairo, Egypt Configure Nagios Your machine already has Nagios installed and initially configured. The tutorial web site includes a complete Nagios and Apache configuration cookbook for you to use if you wish. You will find materials here: http://www.afnog.org/afnog2009/tutorial/net-manage/ Take a look at the default Nagios configuration as we have set things up by opening a web browser and going to: http://localhost/nagios in the web browser and look at the Service Detail and Host Detail links. You should be able to view the status of your own machine via Nagios. In this exercise we are going to add another host, define a hostgroup that the host belongs to, and define some service checks for that hostgroup. We'll add our tutorial's NOC box to our Nagios configuration. There are several steps to do this. First, open a terminal window and make sure that you are root in that window: $ su - You will be prompted for the root user password. Next, create a couple of new files in /usr/local/etc/nagios/objects directory: # cd /usr/local/etc/nagios/objects # touch hosts.cfg # touch hostgroups.cfg Now we must edit our new files: # vi hosts.cfg Add the following lines to this file: define host { use freebsd-server host_name noc alias NOC for Net Manage Tutorial address 196.200.218.253 } Save the file and quit. Next edit the hostgroups.cfg file. # vi hostgroups.cfg Add the following lines to this file: define hostgroup { hostgroup_name servers alias Network Management FreeBSD Servers members noc } Save the file and quit. Finally, we edit the file localhost.cfg. # vi localhost.cfg Go to the bottom of the file and look for the last two service definitions in this file. One is to check SSH and another to check HTTP. We are going to add our new hostgroup, servers, in to these checks. It's a bit odd that FreeBSD has these services defined in the localhost.cfg file, and we might move them to another file like “services.cfg” at some point in the future. Find the first service definition that includes the line that reads: service_description SSH Add a line under “host_name” that says: hostgroup_name servers Now look for the next service that includes the line that reads: service_description HTTP and, add a line under “host_name” in this description that reads: hostgroup_name servers Now save the file and quit. We must edit one more file, the main nagios.cfg file (in /usr/local/etc/nagios): # cd .. # vi nagios.cfg Find the line that reads: cfg_file=/usr/local/etc/nagios/objects/templates.cfg and add a line under this and add the following two lines: cfg_file=/usr/local/etc/nagios/objects/hosts.cfg cfg_file=/usr/local/etc/nagios/objects/hostgroups.cfg Save the file and quit. Now we can do what's called “pre-flight” check on our Nagios configuration. You can do this by typing: # nagios -v nagios.cfg If everything is working the last few lines of output on your screen should be: Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check If this is the case, then you can restart Nagios and see the changes we have made: # /usr/local/etc/rc.d/nagios restart In a web browser view http://localhost/nagios and try clicking on the links Service Detail and Host Detail to see the changes. If there were errors when you ran the pre-flight check, then read the output on the screen and attempt to fix the problem item. This is just an initial Nagios configuration. However, these initial steps include much of what can make starting with Nagios difficult. It is, however, relatively easy to use once you are used to how things are configured. For an example of a more complex installation you can view: http://nsrc.org/nagios