Rorcraft Blog

Nagios 4: notify by twitter

Install Net::Twitter (perl version)

download from search.cpan.org

http://search.cpan.org/~cthom/Net-Twitter/

1
2
3
4
5
6
tar zxvf Net-Twitter-1.06.tar.gz
cd Net-Twitter-1.06
perl Makefile.PL
make
make test
sudo make install

Install other perl package if required(HTML-Tagset, libwww-perl, JSON-Any)

download them from http://search.cpan.org/

The script for twitter notify( change the user_name and password for twitter )

vi /usr/local/nagios/libexec/twitter.pl

1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl -w

use strict;
use Net::Twitter;
my $msg = shift;
my $twit = new Net::Twitter(username => "yourname",password => "yourpass");
if (defined($msg) && $msg !~ /^\s*$/) {
  $twit->update($msg);
}

sudo chown nagios:nagios twitter.pl

sudo chmod +x twitter.pl

send the test message to twitter

/usr/local/nagios/libexec/twitter.pl ‘hello world’

Add new command for notify in nagios

sudo vi /usr/local/nagios/etc/objects/commands.cfg

1
2
3
4
define command {
        command_name notify-by-twitter
        command_line /usr/local/nagios/libexec/twitter.pl "$NOTIFICATIONTYPE$ -$HOSTNAME$-$SERVICEDESC$ - $SERVICESTATE$ - $SERVICEOUTPUT$"
}

Then in the contacts.cfg, use this:

service_notification_commands notify-by-twitter

Reference: Twitter as Nagios notification gateway

Nagios 3: Install nrpe

NRPE: Nagios Remote Plugin Executor allows you to execute local plugins on remote hosts.”

1, Add user and group named ‘nagios’

/usr/sbin/useradd nagios

passwd nagios

2, compile nagios-plugin

download: http://sourceforge.net/project/showfiles.php?group_id=29880

1
2
3
4
5
6
7
8
tar zxvf nagios-pluginxxx.tar.gz
cd nagios-plugin
./configure
make
make install

chown nagios:nagios /usr/local/nagios
chown -R nagios:nagios /usr/local/nagios/libexec

3, compile nrpe

download: http://sourceforge.net/project/showfiles.php?group_id=26589

1
2
3
4
5
6
7
tar zxvf  nrpexxx.tar.gz
cd nrpe
./configure
make all
sudo make install-plugin
sudo make install-daemon
sudo make install-daemon-config

4, Start nrpe

vi /usr/local/nagios/etc/nrpe.cfg

allowed_hosts=127.0.0.1,123.12.1.2

123.12.1.2 is your nagios server address

start nagios:

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

Check the nrpe on nagios server

/usr/local/nagios/libexec/check_nrpe -H 123.12.1.5

123.12.1.5 is the ip adress of the nrpe deamon(the remote pc)

You should see something like:

NRPE v2.9

Congratulate! your nrpe works now.

Nagios 2: config the server

1, Apache

modify the apache configuration file, httpd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/

<Directory "/usr/local/nagios/sbin/">
    AllowOverride AuthConfig
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>

Alias /nagios/ /usr/local/nagios/share/

<Directory "/usr/local/nagios/share">
    Options None
    AllowOverride AuthConfig
    Order allow,deny
    Allow from all
</Directory>

2, Access control

1
2
3
4
5
6
7
8
9
10
11
12
13
/usr/local/nagios/share
vi .htaccess
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/.htpasswd
require valid-user

cd /usr/local/nagios/sbin
vi .htpasswd
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/.htpasswd
require valid-user

3, generate the username and password for web login

1
usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/.htpasswd nagios

If you want to add another user, use the command:

1
/usr/local/apache/bin/htpasswd  /usr/local/nagios/etc/.htpasswd user2

4, check the configuration file of apache

1
/usr/local/apache2/bin/apachctl -t

5, start setup nagios

generate the blank config file

1
2
3
sudo chown -R nagios:nagios /usr/local/nagios
cd /usr/local/nagios/etc/objects/ 
touch contactgroups.cfg contacts.cfg hostgroups.cfg hosts.cfg services.cfg timeperiods.cfg

link the config file to nagios

1
2
3
4
5
6
7
8
vi nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/contactgroups.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg         
cfg_file=/usr/local/nagios/etc/objects/services.cfg

and then, you can setup the contacts, hosts, services based on the demo.

After this, check the configuration:

1
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Start the nagios if there is no error:

1
sudo /etc/init.d/nagios restart

visit the site http://example.com/nagios/.

Nagios 1: install the server

Firstly, add new user and group named ‘nagios’

For linux

* groupadd nagios * useradd -g nagios-M nagios (-M do not create HOME directory for this user)

For mac

* Add a new user and group ‘nagios’ with System Preference
1
2
3
4
5
6
7
zlib setup
wget http://downloads.sourceforge.net/libpng/zlib-1.2.3.tar.gz?modtime=1121680730&big_mirror=0
tar zxvf zlib-1.2.3.tar.gz
./configure
make 
sudo make install
sudo ranlib /usr/local/lib/libz.a

libpng setup

1
2
3
4
5
6
7
wget http://downloads.sourceforge.net/libpng/libpng-1.2.18.tar.gz?modtime=1179259677&big_mirror=0
tar zxvf libpng-1.2.18.tar.gz
cd libpng-1.2.18
./configure  #maybe cp ./scripts/makefile.darwin ./makefile to get the make file
make 
sudo make install
sudo ranlib /usr/local/lib/libpng.a

libjpeg setup

1
2
3
4
5
6
7
wget ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
tar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b/
./configure
make 
sudo make install-lib 
sudo ranlib /usr/local/lib/libjpeg.a

freetype setup

1
2
3
4
wget http://nchc.dl.sourceforge.net/sourceforge/freetype/freetype-2.3.5.tar.gz
tar freetype-2.3.5.tar.gz
freetype-2.3.5
./configure && make && sudo make install

GD lib setup

1
2
3
4
5
6
7
wget http://www.libgd.org/releases/gd-2.0.35.tar.gz
sudo ln -s /usr/X11R6/include/fontconfig /usr/local/include
tar zxvf gd-2.0.35.tar.gz
cd gd-2.0.35/
./configure
make && sudo make install
./gdtest test/gdtest.png   #test GD

Nagios setup

1
2
3
4
5
6
7
8
In System Preferences, create a new user called nagios. This will, under Panther, also create the nagios group.
http://sourceforge.net/project/showfiles.php?group_id=26589
sudo mkdir /usr/local/nagios
./configure --with-gd-lib=/usr/local/lib --with-gd-inc=/usr/local/include --prefix=/usr/local/nagios --with-cgirul=/cgi-bin/ -with-htmlurl=/ --with-nagios-user=nagios --with-nagios-group=nagios
make all
sudo make install
sudo make install-commandmode
sudo make install-config

Install plubin

1
2
3
http://sourceforge.net/project/showfiles.php?group_id=29880
 ./configure prefix=/usr/local/nagios
make && sudo make install

Install imagepak-base

1
2
3
http://www.nagiosexchange.org/Image_Packs.75.0.html?&tx_netnagext_pi1[p_view]=104
tar zxf imagepak-base.tar.tar
sudo cp -r base /usr/local/nagios/share/images/logos/

Contact

We love to hear about your web projects.
Email:
Sydney: +61 421 591 943
Hong Kong:+852 6901 2682

Categories