Un script pour ajouter un service tel que plusieurs serveur http sur une machine.
#!/bin/bash # Ajout de service à un client existant sur le serveur Nagios GREEN="\033[0;32m" RED='\033[0;31m' NC="\033[0m" # No Color echo "Auteur : Tommy Gingras" echo "Date : 2017-07-21" echo "But : Ajout de service à un client existant sur le serveur Nagios." echo "Version : 1.0.0" read -p "Entrer le nom de l'hôte : " modhost lpath=/usr/local/nagios/etc/servers/$modhost.cfg if [ ! -f /usr/local/nagios/etc/servers/$modhost.cfg ]; then echo -e "${RED}Fichier de configuration inexistant.${NC}" exit else echo echo -e "${GREEN}Les services de base${NC}" echo if grep -q "PING" $lpath then echo -e "Le service PING est déjà présent." else read -p "Voulez-vous vérifier le ping (y/n)[n] " q if [ "$q" == "y" ] then echo "define service{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " use generic-service" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " host_name $modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " service_description PING" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " check_command check_ping!100.0,20%!500.0,60%" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg q="" fi fi if grep -q "SSH" $lpath then echo -e "Le service SSH est déjà présent." else read -p "Voulez-vous vérifier le service SSH (y/n)[n] " q if [ "$q" == "y" ] then read -p "Quel est le port SSH [22] " portssh if [ "$portssh" != "" ] then echo "define command{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_name check_ssh_$portssh_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_line \$USER1\$/check_ssh -p $portssh" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg variable="_$portssh_$modhost" fi echo "define service{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " use generic-service" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " host_name $modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " service_description SSH" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " check_command check_ssh$variable" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg q="" fi fi if grep -q "USERS" $lpath then echo -e "Le service USERS est déjà présent." else read -p "Voulez-vous vérifier le service users (y/n)[n] " q if [ "$q" == "y" ] then echo "define command{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_name check_users_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_line \$USER1\$/check_users -w1 -c2" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "define service{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " use generic-service" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " host_name $modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " service_description USERS" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " check_command check_users_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg q="" fi fi if grep -q "LOAD" $lpath then echo -e "Le service LOAD est déjà présent." else read -p "Voulez-vous vérifier la charge du système (y/n)[n] " q if [ "$q" == "y" ] then echo "define command{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_name check_load_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_line \$USER1\$/check_load -w 15,10,5 -c 30,25,20" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "define service{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " use generic-service" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " host_name $modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " service_description LOAD" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " check_command check_load_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg q="" fi fi if grep -q "ROOT" $lpath then echo -e "Le service ROOT est déjà présent." else read -p "Voulez-vous vérifier la partition système / (y/n)[n] " q if [ "$q" == "y" ] then echo "define command{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_name check_disk_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_line \$USER1\$/check_disk -w 20% -c 10% -p /" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "define service{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " use generic-service" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " host_name $modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " service_description ROOT" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " check_command check_disk_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg q="" fi fi if grep -q "SWAP" $lpath then echo -e "Le service SWAP est déjà présent." else read -p "Voulez-vous vérifier le swap (y/n)[n] " q if [ "$q" == "y" ] then echo "define command{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_name check_swap_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_line \$USER1\$/check_swap -a -w 50% -c 10%" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "define service{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " use generic-service" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " host_name $modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " service_description SWAP" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " check_command check_swap_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg q="" fi fi if grep -q "PROCESS" $lpath then echo -e "Le service PROCESS est déjà présent." else read -p "Voulez-vous vérifier tous les processus (y/n)[n] " q if [ "$q" == "y" ] then echo "define command{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_name check_procs_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_line \$USER1\$/check_procs -w 150 -c 200" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "define service{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " use generic-service" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " host_name $modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " service_description PROCESS" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " check_command check_procs_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg q="" fi fi echo echo -e "${GREEN}Serveur Web${NC}" echo read -p "Voulez-vous vérifier le service web HTTP (y/n)[n] " q if [ "$q" == "y" ] then err=0 read -p "Quel est le port d'écoute du serveur web [80]" port if [ "$port" == "" ] then if grep -q "check_http" $lpath then echo -e "${RED}Le port 80 existe déjà. Alors il ne peut pas être ajouté!${NC}" err=1 fi else if grep -q "check_http_$port" $lpath then echo -e "${RED}Le port $port existe déjà. Alors il ne peut pas être ajouté!${NC}" err=1 else echo "define command{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_name check_http_$port_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_line \$USER1\$/check_http -I \$HOSTADDRESS\$ \$ARG1\$-p $port" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg fi fi if [ $err -eq 0 ] then echo "define service{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " use generic-service" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " host_name $modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg if [ "$port" == "" ] then echo " service_description HTTP" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " check_command check_http" >> /usr/local/nagios/etc/servers/$modhost.cfg else echo " service_description HTTP_$port" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " check_command check_http_$port_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg fi echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg fi q="" fi if grep -q "HTTPS" $lpath then echo -e "Le service HTTPS est déjà présent." else read -p "Voulez-vous vérifier le service web HTTPS (y/n)[n]" q if [ "$q" == "y" ] then echo "define command{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_name check_https_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_line \$USER1\$/check_http -S -I \$HOSTADDRESS\$ \$ARG1\$" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "define service{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " use generic-service" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " host_name $modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " service_description HTTPS" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " check_command check_https_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg q="" fi fi echo echo -e "${GREEN}Serveur base de données${NC}" echo if grep -q "MONGODB" $lpath then echo -e "Le service MONGODB est déjà présent." else read -p "Voulez-vous vérifier le service MongoDB (y/n)[n]" q if [ "$q" == "y" ] then echo "define command{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_name check_mongodb_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " command_line \$USER1\$/check_tcp -H \$HOSTADDRESS\$ -p 27017" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "define service{" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " use generic-service" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " host_name $modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " service_description MONGODB" >> /usr/local/nagios/etc/servers/$modhost.cfg echo " check_command check_mongodb_$modhost" >> /usr/local/nagios/etc/servers/$modhost.cfg echo "}" >> /usr/local/nagios/etc/servers/$modhost.cfg q="" fi fi fi echo -e "${GREEN}Veuillez attendre que le service redémarre pour appliquer les changements.${NC}" service nagios stop service nagios start echo -e "${GREEN}La modification de l'hôte $modhost a été effectué.${NC}"