Difference between revisions of "NaGIOS 4: UBUNTU 20.04 instalasi NaGIOS"

From OnnoWiki
Jump to navigation Jump to search
(Created page with "Sumber: https://www.digitalocean.com/community/tutorials/how-to-install-nagios-4-and-monitor-your-servers-on-ubuntu-18-04 Introduction Nagios is a popular open-source monit...")
 
 
(23 intermediate revisions by the same user not shown)
Line 2: Line 2:
  
  
Introduction
+
Nagios adalah sistem pemantauan open-source yang populer. Nagios menjaga inventory server anda dan memonitor mereka sehingga anda tahu layanan penting anda sudah up dan running. Menggunakan sistem pemantauan seperti Nagios adalah tool penting untuk lingkungan produksi apa pun, karena dengan memantau waktu kerja, penggunaan CPU, atau disk space, anda dapat mencegah masalah sebelum terjadi, atau sebelum pengguna anda menghubungi anda.
  
Nagios is a popular open-source monitoring system. It keeps an inventory of your servers and monitors them so you know your critical services are up and running. Using a monitoring system like Nagios is an essential tool for any production environment, because by monitoring uptime, CPU usage, or disk space, you can head off problems before they occur, or before your users call you.
+
Disini kita akan menginstalasi Nagios 4 dan mengkonfigurasinya agar kita dapat memonitor resource host di interface web Nagios. Kita juga akan mensetup Nagios Remote Plugin Executor (NRPE), yang akan berjalan sebagai agent remote host sehingga kita dapat memonitor resource-nya.
  
In this tutorial, you’ll install Nagios 4 and configure it so you can monitor host resources via Nagios’ web interface. You’ll also set up the Nagios Remote Plugin Executor (NRPE), which runs as an agent on remote hosts so you can monitor their resources.
 
Prerequisites
 
  
To follow this tutorial, you will need:
+
==Kebutuhan==
  
    Two Ubuntu 18.04 servers set up by following our Initial Server Setup Guide for Ubuntu 18.04, including a non-root user with sudo privileges and a firewall configured with ufw. On one server, you will install Nagios; this tutorial will refer to this as the Nagios server. It will monitor your second server; this second server will be referred to as the second Ubuntu server.
+
* Dua Ubuntu 20.04 server dengan user root privige. Firewall dengan ufw.
    The server that will run the Nagios server needs Apache and PHP installed. Follow this guide to configure those on one of your servers. You can skip the MySQL steps in that tutorial.
+
** Server dengan Nagios akan di sebut Nagios server.
 +
** Server tanpa Nagios akan di sebut Ubuntu server.
 +
* Nagios Server akan menjalakan Apache dan PHP.
  
Typically, Nagios runs behind a hardware firewall or VPN. If your Nagios server is exposed to the public internet, you should secure the Nagios web interface by installing a TLS/SSL certificate. This is optional but strongly encouraged. You can follow the Let’s Encrypt on Ubuntu 18.04 guide to obtain the free TLS/SSL certificate.
+
Nagios Server biasanya di jalankan di belakang Firewall atau VPN. Jika di jalankan di IP Public anda harus lebih serius menginstalasi TLS/SSL dll. Tutorial ini berasumsi, Nagios server di belakang Firewall.
  
This tutorial assumes that your servers have private networking enabled so that monitoring happens on the private network rather than the public network. If you don’t have private networking enabled, you can still follow this tutorial by replacing all the references to private IP addresses with public IP addresses.
+
==Step 1 — Installing Nagios 4==
Step 1 — Installing Nagios 4
 
  
There are multiple ways to install Nagios, but you’ll install Nagios and its components from source to ensure you get the latest features, security updates, and bug fixes.
+
Login ke Nagios server,
  
Log in to your server that runs Apache. In this tutorial, we’ll call this the Nagios server:
+
    ssh username@your_nagios_server_ip
  
    ssh sammy@your_nagios_server_ip
+
Instalasi aplikasi pendukung,
  
Because you’re building Nagios and its components from source, you must install a few development libraries to complete the build, including compilers, development headers, and OpenSSL.
+
sudo apt update
 +
sudo apt -y install autoconf gcc libc6 make wget unzip apache2 php libapache2-mod-php libgd-dev
 +
# sudo apt -y install autoconf gcc make unzip libgd-dev libmcrypt-dev libssl-dev dc snmp libnet-snmp-perl gettext
  
Update your package lists to ensure you can download the latest versions of the prerequisites:
+
Download source code terakhir Nagios (misalnya),
  
    sudo apt update
+
cd /usr/local/src/
 +
wget -O nagioscore.tar.gz https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.6.tar.gz
 +
tar xzf nagioscore.tar.gz
 +
cd /usr/local/src/nagioscore-nagios-4.4.6/
  
Then install the required packages:
+
Run script & specify Apache config directory:
  
    sudo apt install autoconf gcc make unzip libgd-dev libmcrypt-dev libssl-dev dc snmp libnet-snmp-perl gettext
+
sudo su
 +
cd /usr/local/src/nagioscore-nagios-4.4.6/
 +
sudo ./configure --with-httpd-conf=/etc/apache2/sites-enabled
  
With the prerequisites installed, you can install Nagios itself. Download the source code for the latest stable release of Nagios Core. Go to the Nagios downloads page, and click the Skip to download link below the form. Copy the link address for the latest stable release so you can download it to your Nagios server.
 
  
Download the release to your home directory with the curl command:
+
Catatan: jika kita menggunakan email server postfix, ada baiknya di tambah --with-mail=/usr/sbin/sendmail
  
    cd ~
+
Compile & install Nagios,
    curl -L -O https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.4.tar.gz
 
  
Extract the Nagios archive:
+
cd /usr/local/src/nagioscore-nagios-4.4.6/
 +
sudo make all
 +
sudo make install-groups-users
 +
sudo make install
 +
sudo make install-daemoninit
 +
sudo make install-commandmode
 +
sudo make install-config
  
    tar zxf nagios-4.4.4.tar.gz
+
Konfigurasi apache
  
Then change to the extracted directory:
+
sudo make install-webconf
 +
sudo a2enmod rewrite
 +
sudo a2enmod cgi
 +
sudo usermod -a -G nagios www-data
  
    cd nagioscore-nagios-4.4.4
+
Konfigurasi & masukan _PASSWORD_ untuk user nagiosadmin (untuk user lain, nagiosadmin bisa di ganti)
  
Before building Nagios, run the configure script and specify the Apache configs directory:
+
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
  
    ./configure --with-httpd-conf=/etc/apache2/sites-enabled
+
Catatan: edit /usr/local/nagios/etc/cgi.cfg ubah nagiosadmin ke useranda jika tidak menggunakan nagiosadmin.
  
Note: If you want Nagios to send emails using Postfix, you must install Postfix and configure Nagios to use it by adding --with-mail=/usr/sbin/sendmail to the configure command. We won’t cover Postfix in this tutorial, but if you choose to use Postfix and Nagios later, you’ll need to reconfigure and reinstall Nagios to use Postfix support.
+
Restart Apache,
  
You’ll see the following output from the configure command:
+
sudo systemctl restart apache2
  
Output
+
==Step 2 — Installing Nagios Plugins==
*** Configuration summary for nagios 4.4.4 2019-07-29 ***:
 
  
General Options:
+
Kita perlu menginstalasi Nagios plugin, ada sekitar 50 plugin untuk memonitor berbagai hal seperti uptime, disk usage, swap usage, NTP dll. Download plugin,
-------------------------
 
        Nagios executable:  nagios
 
        Nagios user/group:  nagios,nagios
 
      Command user/group:  nagios,nagios
 
            Event Broker:  yes
 
        Install ${prefix}:  /usr/local/nagios
 
    Install ${includedir}:  /usr/local/nagios/include/nagios
 
                Lock file:  /run/nagios.lock
 
  Check result directory:  /usr/local/nagios/var/spool/checkresults
 
          Init directory:  /lib/systemd/system
 
  Apache conf.d directory:  /etc/apache2/sites-enabled
 
            Mail program:  /bin/mail
 
                  Host OS:  linux-gnu
 
          IOBroker Method:  epoll
 
  
  Web Interface Options:
+
  sudo su
  ------------------------
+
cd /usr/local/src
                HTML URL: http://localhost/nagios/
+
  curl -L -O https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
                  CGI URL:  http://localhost/nagios/cgi-bin/
+
tar zxf nagios-plugins-2.3.3.tar.gz
Traceroute (used by WAP):
+
  cd /usr/local/src/nagios-plugins-2.3.3
  
  
Review the options above for accuracy.  If they look okay,
+
Konfigurasi & instalasi:
type 'make all' to compile the main program and CGIs.
 
  
Now compile Nagios with this command:
+
cd /usr/local/src/nagios-plugins-2.3.3
 +
./configure
 +
sudo make
 +
sudo make install
  
    make all
+
==Step 3 — Installing the check_nrpe Plugin==
  
Next create a nagios user and nagios group. They will be used to run the Nagios process:
+
Nagios me-monitor remote host menggunakan Nagios Remote Plugin Executor (NRPE). NRPE terdiri dari dua bagian,
  
    sudo make install-groups-users
+
* check_nrpe plugin (di admin console) yang digunakan di Nagios server.
 +
* NRPE daemon, di remote host dan mengirimkan data ke Nagios server.
  
Now run these make commands to install Nagios binary files, service files, and its sample configuration files:
+
Optional untuk mencari kesiapan libssl-dev
  
    sudo make install
+
apt -y install apt-file
    sudo make install-daemoninit
+
apt-file update
    sudo make install-commandmode
+
apt-file search libssl | grep libssl-dev
    sudo make install-config
+
apt-file search libssl | grep /usr/lib/x86_64-linux-gnu
 +
apt-file search ssl | grep /usr/bin/openssl
  
You’ll use Apache to serve Nagios’ web interface, so run the following to install the Apache configuration files and configure its settings:
+
Install libssl-dev
  
    sudo make install-webconf
+
apt -y install libssl-dev
  
Enable the Apache rewrite and cgi modules with the a2enmod command:
+
Download,
  
    sudo a2enmod rewrite
+
sudo su
    sudo a2enmod cgi
+
cd /usr/local/src
 +
curl -L -O https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz
 +
tar zxf nrpe-4.0.3.tar.gz
 +
cd /usr/local/src/nrpe-4.0.3
  
In order to issue external commands via the web interface to Nagios, add the web server user, www-data, to the nagios group:
+
Konfigurasi dan install check_nrpe plugin:
  
    sudo usermod -a -G nagios www-data
+
sudo su
 +
cd /usr/local/src/nrpe-4.0.3
 +
./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu
 +
sudo make check_nrpe
 +
sudo make install-plugin
  
Use the htpasswd command to create an admin user called nagiosadmin that can access the Nagios web interface:
+
==Step 4 — Konfigurasi Nagios server==
  
    sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
+
Konfigurasi awal Nagios, meliputi proses editing beberapa file konfigurasi. Kita hanya perlu melakukannya satu kali di Nagios server.
  
Enter a password at the prompt. Remember this password, as you will need it to access the Nagios web interface.
+
'''Edit nagios.cfg'''
  
Warning: If you create a user with a name other than nagiosadmin, you will need to edit /usr/local/nagios/etc/cgi.cfg and change all the nagiosadmin references to the user you created.
+
sudo vi /usr/local/nagios/etc/nagios.cfg
  
Restart Apache to load the new Apache configuration:
+
Temukan di /usr/local/nagios/etc/nagios.cfg
 +
 +
...
 +
#cfg_dir=/usr/local/nagios/etc/servers
 +
...
  
    sudo systemctl restart apache2
+
Buang # di depan cfg_dir, menjadi
  
You’ve now installed Nagios. But for this to work, it is necessary to install the Nagios Plugins, which you’ll cover in the next step.
+
cfg_dir=/usr/local/nagios/etc/servers
Step 2 — Installing the Nagios Plugins
 
  
Nagios needs plugins to operate properly. The official Nagios Plugins package contains over 50 plugins that allow you to monitor basic services such as uptime, disk usage, swap usage, NTP, and others.
+
Buat directory tersebut. Ini akan menyimpan file konfigurasi untuk setiap server yang kita monitor,
  
Let’s install the the plugins bundle.
+
sudo mkdir -p /usr/local/nagios/etc/servers
  
You can find the latest version of the Nagios Plugins on the official site.
+
'''Edit contact'''
  
Download it to your home directory with curl:
+
sudo vi /usr/local/nagios/etc/objects/contacts.cfg
  
    cd ~
+
Ubah email dengan email kita di /usr/local/nagios/etc/objects/contacts.cfg
    curl -L -O https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
 
  
Extract the NRPE archive and navigate into the extracted directory:
+
...
 +
define contact{
 +
        contact_name nagiosadmin    ; Short name of user
 +
        use          generic-contact ; Inherit default values from generic-contact template (defined above)
 +
        alias        Nagios Admin    ; Full name of user
 +
        email        your_email@your_domain.com  ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
 +
...
  
    tar zxf nagios-plugins-2.2.1.tar.gz
 
    cd nagios-plugins-2.2.1
 
  
Next configure their installation:
 
  
    ./configure
 
  
Now build and install the plugins:
+
'''Edit commands.cfg''''
  
    make
+
Untuk menambahkan new command ke konfigurasi Nagios.
    sudo make install
 
  
Now the plugins are installed, but you need one more plugin for monitoring remote servers. Let’s install it next.
 
Step 3 — Installing the check_nrpe Plugin
 
  
Nagios monitors remote hosts using the Nagios Remote Plugin Executor, or NRPE. It consists of two pieces:
+
sudo vi /usr/local/nagios/etc/objects/commands.cfg
  
    The check_nrpe plugin that the Nagios server uses.
+
Tambahkan di /usr/local/nagios/etc/objects/commands.cfg
    The NRPE daemon, which runs on the remote hosts and sends data to the Nagios server.
 
  
Let’s install the check_nrpe plugin on our Nagios server.
+
...
 +
define command{
 +
        command_name check_nrpe
 +
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
 +
}
  
Find the download URL for the latest stable release of NRPE at the GitHub page.
+
Restart Nagios
  
Download it to your home directory with curl:
+
sudo systemctl start nagios
  
    cd ~
+
==Step 5 — Akses Nagios Web==
    curl -L -O https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz
 
  
Extract the NRPE archive:
+
Akses ke
  
    tar zxf nrpe-3.2.1.tar.gz
+
http://nagios_server_public_ip/nagios.
  
Then change to the extracted directory:
+
username nagiosadmin
 +
password yangkitasetsebelumnya
  
    cd nrpe-3.2.1
+
Untuk melihat host yang di monitor, kita bisa klik menu
  
Configure the check_nrpe plugin:
+
  Current Status > Hosts
  
    ./configure
+
Terlihat default Nagios hanya memonitor localhost
  
Now build and install check_nrpe plugin:
+
==Step 6 — Installing Nagios Plugin & NRPE Daemon di Server yang di monitor==
  
    make check_nrpe
+
Untuk memonitor sebuah server, kita perlu menginstalasi Nagios Remote Plugin Executor (NRPE) di remote host tersebit, install plugin, dan konfigurasi Nagios server.
    sudo make install-plugin
 
  
Let’s configure the Nagios server next.
+
Login server yang akan di monitor,
Step 4 — Configuring Nagios
 
  
Now let’s perform the initial Nagios configuration, which involves editing some configuration files. You only need to perform this section once on your Nagios server.
+
ssh onno@your_monitored_server_ip
  
Open the main Nagios configuration file in your preferred text editor. Here, you’ll use nano:
+
Buat user nagios yang akan menjalankan NRPE agent,
  
    sudo nano /usr/local/nagios/etc/nagios.cfg
+
sudo useradd nagios
  
Find this line in the file:
+
Install aplikasi pendukung,
/usr/local/nagios/etc/nagios.cfg
 
  
...
+
sudo apt update
#cfg_dir=/usr/local/nagios/etc/servers
+
sudo apt -y install autoconf gcc libmcrypt-dev make libssl-dev wget dc build-essential gettext
...
 
  
Uncomment this line by deleting the # character from the front of the line:
+
Download Nagios Plugins,
/usr/local/nagios/etc/nagios.cfg
 
  
cfg_dir=/usr/local/nagios/etc/servers
+
sudo su
 +
cd /usr/local/src
 +
curl -L -O https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
 +
tar zxf nagios-plugins-2.3.3.tar.gz
 +
cd /usr/local/src/nagios-plugins-2.3.3
  
Save and close nagios.cfg by pressing CTRL+X, followed by Y, and then ENTER (if you’re using nano).
+
Compile & install
  
Now create the directory that will store the configuration file for each server that you will monitor:
+
./configure
 +
sudo make
 +
sudo make install
  
    sudo mkdir /usr/local/nagios/etc/servers
+
Install NRPE daemon,
  
Open the Nagios contacts configuration in your text editor:
+
cd /usr/local/src
 +
curl -L -O https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz
 +
tar zxf nrpe-4.0.3.tar.gz
 +
cd /usr/local/src/nrpe-4.0.3
  
    sudo nano /usr/local/nagios/etc/objects/contacts.cfg
+
Configure & Install NRPE:
  
Find the email directive and replace its value with your own email address:
+
cd /usr/local/src/nrpe-4.0.3
/usr/local/nagios/etc/objects/contacts.cfg
+
./configure
 +
sudo make nrpe
 +
sudo make install-daemon
 +
sudo make install-config
 +
sudo make install-init
  
...
+
Untuk ujicoba kita akan monitor penggunan harddisk. Contoh,
define contact{
 
        contact_name                    nagiosadmin            ; Short name of user
 
        use                            generic-contact        ; Inherit default values from generic-contact template (defined above)
 
        alias                          Nagios Admin            ; Full name of user
 
        email                          your_email@your_domain.com        ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
 
...
 
  
Save and exit the editor.
+
df -h /
  
Next, add a new command to your Nagios configuration that lets you use the check_nrpe command in Nagios service definitions. Open the file /usr/local/nagios/etc/objects/commands.cfg in your editor:
+
Akan keluar,
  
    sudo nano /usr/local/nagios/etc/objects/commands.cfg
+
Filesystem      Size  Used Avail Use% Mounted on
 +
/dev/sda2        40G  5.0G  33G  14% /
  
Add the following to the end of the file to define a new command called check_nrpe:
+
Edit /usr/local/nagios/etc/nrpe.cfg
/usr/local/nagios/etc/objects/commands.cfg
 
  
...
+
sudo vi /usr/local/nagios/etc/nrpe.cfg
define command{
 
        command_name check_nrpe
 
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
 
}
 
  
This defines the name and specifies the command-line options to execute the plugin.
+
Kita perlu menembukan dan mengubah,
  
Save and exit the editor.
+
  server_address: Set to the private IP address of the monitored server.
 
+
allowed_hosts: Add the private IP address of your Nagios server to the comma-delimited list.
Then start Nagios and enable it to start when the server boots:
+
command[check_hda1]: Change /dev/hda1 to whatever your root filesystem is called.
 
 
    sudo systemctl start nagios
 
 
 
Nagios is now running, so let’s log in to its web interface.
 
Step 5 — Accessing the Nagios Web Interface
 
 
 
Open your favorite web browser, and go to your Nagios server by visiting http://nagios_server_public_ip/nagios.
 
 
 
Enter the login credentials for the web interface in the popup that appears. Use nagiosadmin for the username, and the password you created for that user.
 
 
 
After authenticating, you will see the default Nagios home page. Click on the Hosts link in the left navigation bar to see which hosts Nagios is monitoring:
 
 
 
Nagios Hosts Page
 
 
 
As you can see, Nagios is monitoring only “localhost”, or itself.
 
 
 
Let’s monitor our other server with Nagios,
 
Step 6 — Installing Nagios Plugins and NRPE Daemon on a Host
 
 
 
Let’s add a new host so Nagios can monitor it. You’ll install the Nagios Remote Plugin Executor (NRPE) on the remote host, install some plugins, and then configure the Nagios server to monitor this host.
 
 
 
Log in to the second server, which we’ll call the second Ubuntu server:
 
 
 
    ssh sammy@your_monitored_server_ip
 
 
 
First create a nagios user which will run the NRPE agent:
 
 
 
    sudo useradd nagios
 
 
 
You’ll install NRPE from source, which means you’ll need the same development libraries you installed on the Nagios server in Step 1. Update your package sources and install the NRPE prerequisites:
 
 
 
    sudo apt update
 
    sudo apt install autoconf gcc libmcrypt-dev make libssl-dev wget dc build-essential gettext
 
 
 
NRPE requires that Nagios Plugins is installed on the remote host. Let’s install this package from source.
 
 
 
Find the latest release of Nagios Plugins from the downloads page.
 
 
 
Download Nagios Plugins to your home directory with curl:
 
 
 
    cd ~
 
    curl -L -O https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
 
 
 
Extract the Nagios Plugins archive and change to the extracted directory:
 
 
 
    tar zxf nagios-plugins-2.2.1.tar.gz
 
    cd nagios-plugins-2.2.1
 
 
 
Before building Nagios Plugins, configure them with the following command:
 
 
 
    ./configure
 
 
 
Now compile the plugins:
 
 
 
    make
 
 
 
Then install them by running:
 
 
 
    sudo make install
 
 
 
Next, install NRPE daemon. Find the download URL for the latest stable release of NRPE at the GitHub page just like you did in Step 3. Download the latest stable release of NRPE to your monitored server’s home directory with curl:
 
 
 
    cd ~
 
    curl -L -O https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz
 
 
 
Extract the NRPE archive with this command:
 
 
 
    tar zxf nrpe-3.2.1.tar.gz
 
 
 
Then change to the extracted directory:
 
 
 
    cd nrpe-3.2.1
 
 
 
Configure NRPE:
 
 
 
    ./configure
 
 
 
Now build and install NRPE and its startup script with these commands:
 
 
 
    make nrpe
 
    sudo make install-daemon
 
    sudo make install-config
 
    sudo make install-init
 
 
 
Now, let’s update the NRPE configuration file and add some basic checks that Nagios can monitor.
 
 
 
First, let’s monitor the disk usage of this server. Use the df -h command to look for the root filesystem. You’ll use this filesystem name in the NRPE configuration:
 
 
 
    df -h /
 
 
 
You’ll see output similar to this:
 
 
 
Output
 
Filesystem      Size  Used Avail Use% Mounted on
 
/dev/vda1        25G 1.4G  23G  6% /
 
 
 
Now open /usr/local/nagios/etc/nrpe.cfg file in your editor:
 
 
 
    sudo nano /usr/local/nagios/etc/nrpe.cfg
 
 
 
The NRPE configuration file is very long and full of comments. There are a few lines that you will need to find and modify:
 
 
 
    server_address: Set to the private IP address of the monitored server.
 
    allowed_hosts: Add the private IP address of your Nagios server to the comma-delimited list.
 
    command[check_hda1]: Change /dev/hda1 to whatever your root filesystem is called.
 
  
 
Locate these settings and alter them appropriately:
 
Locate these settings and alter them appropriately:
/usr/local/nagios/etc/nrpe.cfg
 
 
...
 
server_address=second_ubuntu_server_private_ip
 
...
 
allowed_hosts=127.0.0.1,::1,your_nagios_server_private_ip
 
...
 
command[check_vda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/vda1
 
...
 
 
Save and exit the editor. Now you can start NRPE:
 
 
    sudo systemctl start nrpe.service
 
 
Ensure that the service is running by checking its status:
 
 
    sudo systemctl status nrpe.service
 
  
You’ll see the following output:
 
  
Output
+
/usr/local/nagios/etc/nrpe.cfg
...
 
Aug 01 06:28:31 client systemd[1]: Started Nagios Remote Plugin Executor.
 
Aug 01 06:28:31 client nrpe[8021]: Starting up daemon
 
Aug 01 06:28:31 client nrpe[8021]: Server listening on 0.0.0.0 port 5666.
 
Aug 01 06:28:31 client nrpe[8021]: Server listening on :: port 5666.
 
Aug 01 06:28:31 client nrpe[8021]: Listening for connections on port 5666
 
Aug 01 06:28:31 client nrpe[8021]: Allowing connections from: 127.0.0.1,::1,165.22.212.38
 
  
Next, allow access to port 5666 through the firewall. If you are using UFW, configure it to allow TCP connections to port 5666 with the following command:
+
...
 +
server_address=second_ubuntu_server_private_ip
 +
...
 +
allowed_hosts=127.0.0.1,::1,your_nagios_server_private_ip
 +
...
 +
command[check_sda2]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda2
 +
...
  
    sudo ufw allow 5666/tcp
+
Start NRPE,
  
You can learn more about UFW in How To Set Up a Firewall with UFW on Ubuntu 18.04.
+
sudo systemctl start nrpe.service
  
Now you can check the communication with the remote NRPE server. Run the following command on the Nagios server:
+
Pastikan running,
  
    /usr/local/nagios/libexec/check_nrpe -H second_ubuntu_server_ip
+
sudo systemctl status nrpe.service
  
You’ll see the following output:
+
output kira2,
  
Output
+
...
NRPE v3.2.1
+
Aug 01 06:28:31 client systemd[1]: Started Nagios Remote Plugin Executor.
 +
Aug 01 06:28:31 client nrpe[8021]: Starting up daemon
 +
Aug 01 06:28:31 client nrpe[8021]: Server listening on 0.0.0.0 port 5666.
 +
Aug 01 06:28:31 client nrpe[8021]: Server listening on :: port 5666.
 +
Aug 01 06:28:31 client nrpe[8021]: Listening for connections on port 5666
 +
Aug 01 06:28:31 client nrpe[8021]: Allowing connections from: 127.0.0.1,::1,165.22.212.38
  
Repeat the steps in this section for each additional server you want to monitor.
+
Buka port 5666 di firewall,
  
Once you are done installing and configuring NRPE on the hosts that you want to monitor, you will have to add these hosts to your Nagios server configuration before it will start monitoring them. Let’s do that next.
+
sudo ufw allow 5666/tcp
Step 7 — Monitoring Hosts with Nagios
 
  
To monitor your hosts with Nagios, you’ll add configuration files for each host specifying what you want to monitor. You can then view those hosts in the Nagios web interface.
+
Cek komunikasi ke remote NRPE server dari Admin Console (Nagios Server),
  
On your Nagios server, create a new configuration file for each of the remote hosts that you want to monitor in /usr/local/nagios/etc/servers/. Replace the highlighted word, monitored_server_host_name with the name of your host:
+
/usr/local/nagios/libexec/check_nrpe -H second_ubuntu_server_ip
  
    sudo nano /usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg
+
Output,
  
Add the following host definition, replacing the host_name value with your remote hostname, the alias value with a description of the host, and the address value with the private IP address of the remote host:
+
NRPE v4.0.3
/usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg
 
  
define host {
+
==Step 7 — Monitoring Hosts dengan Nagios==
        use                            linux-server
 
        host_name                      your_monitored_server_host_name
 
        alias                          My client server
 
        address                        your_monitored_server_private_ip
 
        max_check_attempts              5
 
        check_period                    24x7
 
        notification_interval          30
 
        notification_period            24x7
 
}
 
  
With this configuration, Nagios will only tell you if the host is up or down. Let’s add some services to monitor.
+
Tambahkan host yang akan di monitor Nagios, edit
  
First, add this block to monitor load average:
+
sudo vi /usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg
/usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg
+
sudo vi /usr/local/nagios/etc/servers/192.168.0.155.cfg
  
define service {
+
Edit file /usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg
        use                            generic-service
 
        host_name                      your_monitored_server_host_name
 
        service_description            Load average
 
        check_command                  check_nrpe!check_load
 
}
 
  
The use generic-service directive tells Nagios to inherit the values of a service template called generic-service, which is predefined by Nagios.
+
define host {
 +
        use                             linux-server
 +
        host_name                      your_monitored_server_host_name
 +
        alias                          My client server
 +
        address                        your_monitored_server_private_ip
 +
        max_check_attempts              5
 +
        check_period                    24x7
 +
        notification_interval          30
 +
        notification_period            24x7
 +
}
  
Next, add this block to monitor disk usage:
+
Tambahkan service yang di monitor
/usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg
 
  
define service {
+
sudo vi /usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg
        use                            generic-service
+
sudo vi /usr/local/nagios/etc/servers/192.168.0.155.cfg
        host_name                      your_monitored_server_host_name
 
        service_description            /dev/vda1 free space
 
        check_command                  check_nrpe!check_vda1
 
}
 
  
Now save and quit. Restart the Nagios service to put any changes into effect:
+
define service {
 +
        use                            generic-service
 +
        host_name                      your_monitored_server_host_name
 +
        service_description            Load average
 +
        check_command                  check_nrpe!check_load
 +
}
  
    sudo systemctl restart nagios
+
Cek Disk
  
After several minutes, Nagios will check the new hosts and you’ll see them in the Nagios web interface. Click on the Services link in the left navigation bar to see all of your monitored hosts and services.
+
sudo vi /usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg
 +
sudo vi /usr/local/nagios/etc/servers/192.168.0.155.cfg
  
Nagios Services Page
+
define service {
Conclusion
+
        use                            generic-service
 +
        host_name                      your_monitored_server_host_name
 +
        service_description            /dev/sda2 free space
 +
        check_command                  check_nrpe!check_sda2
 +
}
  
You’ve installed Nagios on a server and configured it to monitor load average and disk usage of at least one remote machine.
 
  
Now that you’re monitoring a host and some of its services, you can start using Nagios to monitor your mission-critical services. You can use Nagios to set up notifications for critical events. For example, you can receive an email when your disk utilization reaches a warning or critical threshold, or a notification when your main website is down. This way you can resolve the situation promptly, or even before a problem occurs.
+
Save & Quit.
  
 +
Restart,
  
 +
sudo systemctl restart nagios
  
  
 +
Tunggu beberapa menit, cek kembali ke Nagios Web.
  
 
==Referensi==
 
==Referensi==

Latest revision as of 12:38, 18 May 2020

Sumber: https://www.digitalocean.com/community/tutorials/how-to-install-nagios-4-and-monitor-your-servers-on-ubuntu-18-04


Nagios adalah sistem pemantauan open-source yang populer. Nagios menjaga inventory server anda dan memonitor mereka sehingga anda tahu layanan penting anda sudah up dan running. Menggunakan sistem pemantauan seperti Nagios adalah tool penting untuk lingkungan produksi apa pun, karena dengan memantau waktu kerja, penggunaan CPU, atau disk space, anda dapat mencegah masalah sebelum terjadi, atau sebelum pengguna anda menghubungi anda.

Disini kita akan menginstalasi Nagios 4 dan mengkonfigurasinya agar kita dapat memonitor resource host di interface web Nagios. Kita juga akan mensetup Nagios Remote Plugin Executor (NRPE), yang akan berjalan sebagai agent remote host sehingga kita dapat memonitor resource-nya.


Kebutuhan

  • Dua Ubuntu 20.04 server dengan user root privige. Firewall dengan ufw.
    • Server dengan Nagios akan di sebut Nagios server.
    • Server tanpa Nagios akan di sebut Ubuntu server.
  • Nagios Server akan menjalakan Apache dan PHP.

Nagios Server biasanya di jalankan di belakang Firewall atau VPN. Jika di jalankan di IP Public anda harus lebih serius menginstalasi TLS/SSL dll. Tutorial ini berasumsi, Nagios server di belakang Firewall.

Step 1 — Installing Nagios 4

Login ke Nagios server,

   ssh username@your_nagios_server_ip

Instalasi aplikasi pendukung,

sudo apt update
sudo apt -y install autoconf gcc libc6 make wget unzip apache2 php libapache2-mod-php libgd-dev
# sudo apt -y install autoconf gcc make unzip libgd-dev libmcrypt-dev libssl-dev dc snmp libnet-snmp-perl gettext

Download source code terakhir Nagios (misalnya),

cd /usr/local/src/
wget -O nagioscore.tar.gz https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.6.tar.gz
tar xzf nagioscore.tar.gz
cd /usr/local/src/nagioscore-nagios-4.4.6/

Run script & specify Apache config directory:

sudo su
cd /usr/local/src/nagioscore-nagios-4.4.6/
sudo ./configure --with-httpd-conf=/etc/apache2/sites-enabled


Catatan: jika kita menggunakan email server postfix, ada baiknya di tambah --with-mail=/usr/sbin/sendmail

Compile & install Nagios,

cd /usr/local/src/nagioscore-nagios-4.4.6/
sudo make all
sudo make install-groups-users
sudo make install
sudo make install-daemoninit
sudo make install-commandmode
sudo make install-config

Konfigurasi apache

sudo make install-webconf
sudo a2enmod rewrite
sudo a2enmod cgi
sudo usermod -a -G nagios www-data

Konfigurasi & masukan _PASSWORD_ untuk user nagiosadmin (untuk user lain, nagiosadmin bisa di ganti)

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

Catatan: edit /usr/local/nagios/etc/cgi.cfg ubah nagiosadmin ke useranda jika tidak menggunakan nagiosadmin.

Restart Apache,

sudo systemctl restart apache2

Step 2 — Installing Nagios Plugins

Kita perlu menginstalasi Nagios plugin, ada sekitar 50 plugin untuk memonitor berbagai hal seperti uptime, disk usage, swap usage, NTP dll. Download plugin,

sudo su
cd /usr/local/src
curl -L -O https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
tar zxf nagios-plugins-2.3.3.tar.gz
cd /usr/local/src/nagios-plugins-2.3.3


Konfigurasi & instalasi:

cd /usr/local/src/nagios-plugins-2.3.3
./configure
sudo make
sudo make install

Step 3 — Installing the check_nrpe Plugin

Nagios me-monitor remote host menggunakan Nagios Remote Plugin Executor (NRPE). NRPE terdiri dari dua bagian,

  • check_nrpe plugin (di admin console) yang digunakan di Nagios server.
  • NRPE daemon, di remote host dan mengirimkan data ke Nagios server.

Optional untuk mencari kesiapan libssl-dev

apt -y install apt-file
apt-file update
apt-file search libssl | grep libssl-dev
apt-file search libssl | grep /usr/lib/x86_64-linux-gnu
apt-file search ssl | grep /usr/bin/openssl

Install libssl-dev

apt -y install  libssl-dev

Download,

sudo su
cd /usr/local/src
curl -L -O https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz
tar zxf nrpe-4.0.3.tar.gz
cd /usr/local/src/nrpe-4.0.3

Konfigurasi dan install check_nrpe plugin:

sudo su
cd /usr/local/src/nrpe-4.0.3
./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu
sudo make check_nrpe
sudo make install-plugin

Step 4 — Konfigurasi Nagios server

Konfigurasi awal Nagios, meliputi proses editing beberapa file konfigurasi. Kita hanya perlu melakukannya satu kali di Nagios server.

Edit nagios.cfg

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

Temukan di /usr/local/nagios/etc/nagios.cfg

...
#cfg_dir=/usr/local/nagios/etc/servers
...

Buang # di depan cfg_dir, menjadi

cfg_dir=/usr/local/nagios/etc/servers

Buat directory tersebut. Ini akan menyimpan file konfigurasi untuk setiap server yang kita monitor,

sudo mkdir -p /usr/local/nagios/etc/servers

Edit contact

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

Ubah email dengan email kita di /usr/local/nagios/etc/objects/contacts.cfg

...
define contact{
       contact_name nagiosadmin     ; Short name of user
       use          generic-contact ; Inherit default values from generic-contact template (defined above)
       alias        Nagios Admin    ; Full name of user
       email        your_email@your_domain.com  ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
...



Edit commands.cfg'

Untuk menambahkan new command ke konfigurasi Nagios.


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

Tambahkan di /usr/local/nagios/etc/objects/commands.cfg

...
define command{
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Restart Nagios

sudo systemctl start nagios

Step 5 — Akses Nagios Web

Akses ke

http://nagios_server_public_ip/nagios.
username nagiosadmin
password yangkitasetsebelumnya

Untuk melihat host yang di monitor, kita bisa klik menu

 Current Status > Hosts

Terlihat default Nagios hanya memonitor localhost

Step 6 — Installing Nagios Plugin & NRPE Daemon di Server yang di monitor

Untuk memonitor sebuah server, kita perlu menginstalasi Nagios Remote Plugin Executor (NRPE) di remote host tersebit, install plugin, dan konfigurasi Nagios server.

Login server yang akan di monitor,

ssh onno@your_monitored_server_ip

Buat user nagios yang akan menjalankan NRPE agent,

sudo useradd nagios

Install aplikasi pendukung,

sudo apt update
sudo apt -y install autoconf gcc libmcrypt-dev make libssl-dev wget dc build-essential gettext

Download Nagios Plugins,

sudo su
cd /usr/local/src
curl -L -O https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
tar zxf nagios-plugins-2.3.3.tar.gz
cd /usr/local/src/nagios-plugins-2.3.3

Compile & install

./configure
sudo make
sudo make install

Install NRPE daemon,

cd /usr/local/src
curl -L -O https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz
tar zxf nrpe-4.0.3.tar.gz
cd /usr/local/src/nrpe-4.0.3

Configure & Install NRPE:

cd /usr/local/src/nrpe-4.0.3
./configure
sudo make nrpe
sudo make install-daemon
sudo make install-config
sudo make install-init

Untuk ujicoba kita akan monitor penggunan harddisk. Contoh,

df -h /

Akan keluar,

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        40G  5.0G   33G  14% /

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

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

Kita perlu menembukan dan mengubah,

server_address: Set to the private IP address of the monitored server.
allowed_hosts: Add the private IP address of your Nagios server to the comma-delimited list.
command[check_hda1]: Change /dev/hda1 to whatever your root filesystem is called.

Locate these settings and alter them appropriately:


/usr/local/nagios/etc/nrpe.cfg
...
server_address=second_ubuntu_server_private_ip
...
allowed_hosts=127.0.0.1,::1,your_nagios_server_private_ip
...
command[check_sda2]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda2
...

Start NRPE,

sudo systemctl start nrpe.service

Pastikan running,

sudo systemctl status nrpe.service

output kira2,

...
Aug 01 06:28:31 client systemd[1]: Started Nagios Remote Plugin Executor.
Aug 01 06:28:31 client nrpe[8021]: Starting up daemon
Aug 01 06:28:31 client nrpe[8021]: Server listening on 0.0.0.0 port 5666.
Aug 01 06:28:31 client nrpe[8021]: Server listening on :: port 5666.
Aug 01 06:28:31 client nrpe[8021]: Listening for connections on port 5666
Aug 01 06:28:31 client nrpe[8021]: Allowing connections from: 127.0.0.1,::1,165.22.212.38

Buka port 5666 di firewall,

sudo ufw allow 5666/tcp

Cek komunikasi ke remote NRPE server dari Admin Console (Nagios Server),

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

Output,

NRPE v4.0.3

Step 7 — Monitoring Hosts dengan Nagios

Tambahkan host yang akan di monitor Nagios, edit

sudo vi /usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg
sudo vi /usr/local/nagios/etc/servers/192.168.0.155.cfg

Edit file /usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg

define host {
        use                             linux-server
        host_name                       your_monitored_server_host_name
        alias                           My client server
        address                         your_monitored_server_private_ip
        max_check_attempts              5
        check_period                    24x7
        notification_interval           30
        notification_period             24x7
}

Tambahkan service yang di monitor

sudo vi /usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg
sudo vi /usr/local/nagios/etc/servers/192.168.0.155.cfg
define service {
        use                             generic-service
        host_name                       your_monitored_server_host_name
        service_description             Load average
        check_command                   check_nrpe!check_load
}

Cek Disk

sudo vi /usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg
sudo vi /usr/local/nagios/etc/servers/192.168.0.155.cfg
define service {
        use                             generic-service
        host_name                       your_monitored_server_host_name
        service_description             /dev/sda2 free space
        check_command                   check_nrpe!check_sda2
}


Save & Quit.

Restart,

sudo systemctl restart nagios


Tunggu beberapa menit, cek kembali ke Nagios Web.

Referensi


Pranala Menarik