Created
May 15, 2024 07:03
-
-
Save devops-school/bd7ffeebf73e58641352d532fe8910fb to your computer and use it in GitHub Desktop.
icinga tutorials: How to monitor Apache2 using icinga agent
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
===================================================== | |
Step 1 - Install icinga2 in Agent Server | |
===================================================== | |
8 apt update | |
9 apt -y install apt-transport-https wget gnupg | |
10 wget -O - https://packages.icinga.com/icinga.key | gpg --dearmor -o /usr/share/keyrings/icinga-archive-keyring.gpg | |
11 . /etc/os-release; if [ ! -z ${UBUNTU_CODENAME+x} ]; then DIST="${UBUNTU_CODENAME}"; else DIST="$(lsb_release -c| awk '{print $2}')"; fi; echo "deb [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/ubuntu icinga-${DIST} main" > /etc/apt/sources.list.d/${DIST}-icinga.list | |
12 apt update | |
13 apt install icinga2 | |
14 apt install monitoring-plugins | |
===================================================== | |
Step 2 - Enable icinga2 Agent | |
===================================================== | |
root@ip-172-31-4-57:~# icinga2 node wizard | |
Welcome to the Icinga 2 Setup Wizard! | |
We will guide you through all required configuration details. | |
Please specify if this is an agent/satellite setup ('n' installs a master setup) [Y/n]: Y | |
Starting the Agent/Satellite setup routine... | |
Please specify the common name (CN) [ip-172-31-4-57.ap-south-1.compute.internal]: | |
Please specify the parent endpoint(s) (master or satellite) where this node should connect to: | |
Master/Satellite Common Name (CN from your master/satellite node): ip-172-31-12-175.ap-south-1.compute.i nternal | |
Do you want to establish a connection to the parent node from this node? [Y/n]: Y | |
Please specify the master/satellite connection information: | |
Master/Satellite endpoint host (IP address or FQDN): 172.31.12.175 | |
Master/Satellite endpoint port [5665]: | |
Add more master/satellite endpoints? [y/N]: N | |
Parent certificate information: | |
Version: 3 | |
Subject: CN = ip-172-31-12-175.ap-south-1.compute.internal | |
Issuer: CN = Icinga CA | |
Valid From: May 10 04:17:19 2024 GMT | |
Valid Until: Jun 11 04:17:19 2025 GMT | |
Serial: f0:c6:d1:1c:f0:78:1b:6b:2d:7c:20:4b:1b:50:3c:be:f0:25:a2:17 | |
Signature Algorithm: sha256WithRSAEncryption | |
Subject Alt Names: ip-172-31-12-175.ap-south-1.compute.internal | |
Fingerprint: 54 FD AD AC 55 39 7F 7A 5F C2 2D BB 09 22 BE 43 08 15 FB DF 0D F6 5C 2B 76 15 0F C 1 DD 29 00 7B | |
Is this information correct? [y/N]: y | |
Please specify the request ticket generated on your Icinga 2 master (optional). | |
(Hint: # icinga2 pki ticket --cn 'ip-172-31-4-57.ap-south-1.compute.internal'): 94deed8004eefccb459689dbc6fe1112543b01eb | |
Please specify the API bind host/port (optional): | |
Bind Host []: | |
Bind Port []: | |
Accept config from parent node? [y/N]: y | |
Accept commands from parent node? [y/N]: y | |
Reconfiguring Icinga... | |
Disabling feature notification. Make sure to restart Icinga 2 for these changes to take effect. | |
Enabling feature api. Make sure to restart Icinga 2 for these changes to take effect. | |
Local zone name [ip-172-31-4-57.ap-south-1.compute.internal]: | |
Parent zone name [master]: | |
Default global zones: global-templates director-global | |
Do you want to specify additional global zones? [y/N]: | |
Do you want to disable the inclusion of the conf.d directory [Y/n]: n | |
Done. | |
Now restart your Icinga 2 daemon to finish the installation!\ | |
$ systemctl restart icinga2 | |
===================================================== | |
Step 3 - Install Apache 2 | |
===================================================== | |
26 apt-get update | |
27 apt install apache2 | |
28 clear | |
29 ls | |
30 systemctl start apache2 | |
31 systemctl status apache2 | |
===================================================== | |
Step 4 - Verify if Mod_Staus module in Apache2 | |
===================================================== | |
$ ls /etc/apache2/mods-enabled | grep status* | |
status.conf | |
status.load | |
$ sudo /usr/sbin/a2enmod status | |
Module status already enabled | |
Note - If you want to enable - follow this - https://www.devopsschool.com/blog/how-to-install-mod_status-on-your-apache-servers-and-enable-extendedstatus/ | |
===================================================== | |
Step 5 - Enable Mod Status Module from icinga server | |
===================================================== | |
$ more /etc/apache2/mods-enabled/status.conf | |
$ vi /etc/apache2/mods-enabled/status.conf | |
$ systemctl restart apache2 | |
<IfModule mod_status.c> | |
# Allow server status reports generated by mod_status, | |
# with the URL of http://servername/server-status | |
# Uncomment and change the "192.0.2.0/24" to allow access from other hosts. | |
<Location /server-status> | |
SetHandler server-status | |
Require local | |
Require ip 172.31.12.175 | |
</Location> | |
# Keep track of extended status information for each request | |
ExtendedStatus On | |
# Determine if mod_status displays the first 63 characters of a request or | |
# the last 63, assuming the request itself is greater than 63 chars. | |
# Default: Off | |
#SeeRequestTail On | |
<IfModule mod_proxy.c> | |
# Show Proxy LoadBalancer status in mod_status | |
ProxyStatus On | |
</IfModule> | |
</IfModule> | |
===================================================== | |
Step 6 - Enable Apache check in Icinga Server | |
===================================================== | |
49 cd /etc/icinga2/conf.d/ | |
50 ls | |
51 vi commands.conf | |
object CheckCommand "check_apache_status" { | |
import "plugin-check-command" | |
command = [ PluginDir + "/check_http" ] | |
arguments = { | |
"-H" = "$address$" | |
"-u" = "/server-status?auto" | |
} | |
} | |
OR | |
object CheckCommand "check_apache_status" { | |
import "plugin-check-command" | |
command = [ PluginDir + "/check_http" ] | |
arguments = { | |
"-H" = "172.31.4.57" | |
"-u" = "/server-status?auto" | |
} | |
} | |
$ systemctl restart icinga2 | |
$ systemctl status icinga2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment