Ansible Playbook for upgrading Ubuntu based Nagios Server to latest version

Hello. This is a typical Ansible playbook code to upgrade your Nagios Server to the latest version (4.4.2, announced August 2018).
It has been tested with Ubuntu 16.04.4 LTS for the Nagios Server, OpenSuSE 42.3 and Ansible 2.6 for the Ansible server.
It is presumed that you have previously installed Nagios using source code, preferably with a 4.x version (upgrading from 3.x is different).
If you are new at this I suggest you go through the process manually at least once. Start here: https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/upgrading.html but be mindful because the process described there is too generic. Depending on what you needed to activate on your nagios server, you may need different options and additional steps.
If you are not new at this, you can take the playbook and modify it to suit your needs.
I am in no way responsible if you damage your system by applying commands that were not suited for it. Backup your system first, or take a snapshot if you are using Vmware as a platform (remember to remove it later if everything goes well, vmware snapshots are not equivalent to backup!).
You can replace nagiosserverhostname with yours, as it is declared in your ansible host files. Start here: https://docs.ansible.com/ansible/latest/index.html
You will need to know the basics of how to install Ansible, create a list of your servers and run the playbook.
I intend to polish my Full Nagios Core Installation guide (Core Server, Nagios Plugins, extra plugins, Nagios Graph etc) and publish it as well, and then create a Playbook for creating such an installation from scratch with Ansible. The last part is not ready yet. Perhaps I will get to update my notes for Ubuntu 18.04 LTS but as the season is picking up pace, I may have little time to spare for it. I will do my best.
I am sorry I can’t allow comments on this site, the spam is too much to handle. You can look me up on twitter and ask there.
There you go, I hope you find it usefull!
Don’t forget, it’s YAML syntax so indents are important plus other things you can read when you learn about Ansible.
Yannis.

---
- hosts: nagiosserverhostname
tasks:
- name: get rid of old installation dir
file:
path: /tmp/nagios
state: absent
- name: get rid of old installation archive
file:
path: /tmp/nagios.tar.gz
state: absent
- name: download and uncompress
shell: cd /tmp;rm nagios*.tar.gz;wget -O nagios.tar.gz https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.2.tar.gz;tar -zxf nagios.tar.gz;mv nagioscore-nagios-4.4.2 nagios
- name: change dir to /tmp
shell: cd /tmp/nagios;./configure --with-command-group=nagcmd --with-mail=/usr/sbin/sendmail --with-httpd-conf=/etc/apache2/;make all;make install;make install-init
- name: check configs syntax
shell: /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
- name: restart nagios service
service:
name: nagios
state: restarted
- name: get rid of old installation dir
file:
path: /tmp/nagios
state: absent
- name: get rid of old installation archive
file:
path: /tmp/nagios.tar.gz
state: absent

Εγκατάσταση Nagios 4.1.0 σε Ubuntu Server 14.04.3 LTS με plugins, check_nrpe, check_esxi_hardware και nagiosgraph

Σήμερα έπιασα ξανά το θέμα του upgrade σε Nagios 4 και έμαθα ότι στις 18/8 (χθες) βγήκε το Nagios 4.1.0 stable.

Ξεκίνησα (μετά από δοκιμή για upgrade) ένα clean install στον ubunagios03 με εγκατάσταση από την αρχή του Ubuntu Server 14.04.3 LTS και nagios core 4.1.0 & nagios plugins v.2.1.1

Πρώτα ενεργοποίησα το χρήστη root με sudo passwd root.

Μετά με το χρήστη root ενεργοποίησα το ssh login για το root κάνοντας edit στο /etc/ssh/sshd_config το PermitRootLogin σε yes.

Για την εγκατάσταση βρήκα διάφορα strings για τα προαπαιτούμενα αλλά αυτό που τελικά χρειάζεται είναι το :

apt-get install wget build-essential apache2 apache2-utils php5-gd libgd2-xpm-dev libapache2-mod-php5 libssl-dev zip

Μετά

useradd nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd www-data

 

Κάνουμε μεταφορά των tar.gz των core & plugins στο /usr/local/src.

tar -zxf nagios-4.1.0.tar.gz
cd nagios-4.1.0/

./configure –with-nagios-group=nagios –with-command-group=nagcmd –with-mail=/usr/sbin/sendmail –with-httpd_conf=/etc/apache2/conf-available

Στη συνέχεια:

make all

make install

make install-init

make install-config

make install-commandmode

make install-webconf

cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Πάμε για τα plugins
cd ..
mv /tmp/nagios-plugins-2.1.1.tar.gz ./
ls
tar -zxf nagios-plugins-2.1.1.tar.gz
ls
cd nagios-
cd nagios-plugins-2.1.1/
ls
./configure –with-nagios-user=nagios –with-nagios-group=nagios –enable-perl-modules –enable-extra-opts
make
make install

Ενεργοποιούμε το cgi module στον Apache2

a2enmod cgi

Δημιουργούμε password για το χρήστη nagiosadmin για την πρόβαση στο nagios gui.

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Ανοίγουμε το παρακάτω αρχείο

vim /etc/apache2/sites-enabled/000-default.conf

Και προσθέτουμε την εξης γραμμή:

Include conf-available/nagios.conf

Κάνουμε restart το apache2 service και ενεργοποιούμε το nagios service.

service apache2 restart
service nagios start

Έτοιμο το βασικό κομμάτι του Nagios. Έχουμε όμως και ένα αριθμό από plugins.

Συγκεκριμένα χρειαζόμαστε το Check_NRPE, το Check_esxi_hardware και το nagiosgraph.

Για το check_nrpe πρέπει εγκατασταθεί το nrpe αλλά μόνο το κομμάτι του plugin (όχι ο server). Έτσι κατεβάζουμε το NRPE από το sourceforge (έκδοση 2.15 εδώ και δύο χρόνια) και το αποσυμπιέζουμε:

 mv /tmp/nrpe-2.15.tar.gz /usr/local/src
cd /usr/local/src/
tar -zxf nrpe-2.15.tar.gz
cd nrpe-2.15/

Εγκαθιστούμε:

 ./configure –with-ssl=/usr/bin/openssl –with-ssl-lib=/usr/lib/x86_64-linux-gnu
make all
make install-plugin

To plugin check_nrpe είναι έτοιμο για χρήση.

Το check_esxi_hardware το κατεβάζουμε από το nagios exchange.

Στη συνέχεια:

mv /tmp/check_esxi_hardware.py /usr/local/nagios/libexec/
chown nagios:nagios check_esxi_hardware.py
chmod g+w check_esxi_hardware.py

Κανονικά χρειαζόταν εγκατάσταση και downgrade του pywbem. Τώρα απλώς εγκαθιστούμε:
apt install python-pywbem

Έτοιμο το plugin.