# Here are some sample commands for checking classics things like # systems and websites # ----------------------------------------------------------------- # # Localhost checks # # ----------------------------------------------------------------- # Simple disk check for LOCALHOST ONLY! define command { command_name check_local_disks command_line $PLUGINSDIR$/check_disk -w 10% -c 5% -x /dev/shm -e -l } define command { command_name check_local_load command_line $PLUGINSDIR$/check_load -w 3,3,3 -c 5,5,5 } define command { command_name check_local_mem command_line $PLUGINSDIR$/check_mem.pl -u -w 90 -c 95 -C } define command { command_name check_local_swap command_line $PLUGINSDIR$/check_swap -w 50% -c 25% } define command { command_name check_local_cpu command_line $PLUGINSDIR$/check_cpu -w 20 -c 10 } # ----------------------------------------------------------------- # # Classic network calls # # ----------------------------------------------------------------- # Simple tcp check define command { command_name check_tcp command_line $PLUGINSDIR$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ } # Simple web check define command { command_name check_http command_line $PLUGINSDIR$/check_http -H $HOSTADDRESS$ } # And with SSL define command { command_name check_https command_line $PLUGINSDIR$/check_http -H $HOSTADDRESS$ -S } # Check a DNS entry define command { command_name check_dig command_line $PLUGINSDIR$/check_dig -H $HOSTADDRESS$ -l $ARG1$ } # Check a FTP service define command { command_name check_ftp command_line $PLUGINSDIR$/check_ftp -H $HOSTADDRESS$ } # Ask a nrpe agent define command { command_name check_nrpe command_line $PLUGINSDIR$/check_nrpe -H $HOSTADDRESS$ -t 9 -u -c $ARG1$ } # Same but with arguments define command { command_name check_nrpe_args command_line $PLUGINSDIR$/check_nrpe -H $HOSTADDRESS$ -t 9 -u -c $ARG1$ -a $ARG2$ $ARG3$ $ARG4$ $ARG5$ } # Simple ping command define command { command_name check_ping command_line $PLUGINSDIR$/check_ping -H $HOSTADDRESS$ -w 3000,100% -c 5000,100% -p 1 } # Look at good ssh launch define command { command_name check_ssh command_line $PLUGINSDIR$/check_ssh -H $HOSTADDRESS$ } # Look for good smtp connection define command { command_name check_smtp command_line $PLUGINSDIR$/check_smtp -H $HOSTADDRESS$ } # And SMTPS too define command { command_name check_smtps command_line $PLUGINSDIR$/check_smtp -H $HOSTADDRESS$ -S } # Look at a SSL certificate define command { command_name check_https_certificate command_line $PLUGINSDIR$/check_http -H $HOSTADDRESS$ -C 30 } #Look at an HP printer state define command{ command_name check_hpjd command_line $PLUGINSDIR$/check_hpjd -H $HOSTADDRESS$ -C $SNMPCOMMUNITYREAD$ } # Look at Oracle connection define command { command_name check_oracle_listener command_line $PLUGINSDIR$/check_oracle --tns $HOSTADDRESS$ } # Same but for MSSQL # Look at http://labs.consol.de/nagios/check_mssql_health/ to get it # Don't forget to change $MSSQLUSER$ and $MSSQLPASSWORD$ in resources.cfg before you use this ;) define command { command_name check_mssql_connection command_line $PLUGINSDIR$/check_mssql_health --hostname $HOSTADDRESS$ --username "$MSSQLUSER$" --password "$MSSQLPASSWORD$" --mode connection-time } # Ldap query # Don't forget to update the macros in the resources.cfg file define command { command_name check_ldap command_line $PLUGINSDIR$/check_ldap -H $HOSTADDRESS$ -b "$LDAPBASE$" -D $DOMAINUSER$ -P "$DOMAINPASSWORD$" } # Now the same, but in LDAPS # Don't forget to update the macros in the resources.cfg define command { command_name check_ldaps command_line $PLUGINSDIR$/check_ldaps -H $HOSTADDRESS$ -b "$LDAPBASE$" -D $DOMAINUSER$ -P "$DOMAINPASSWORD$" } # Distant mysql check define command { command_name check_mysql_connection command_line $PLUGINSDIR$/check_mysql -H $HOSTADDRESS$ -u $MYSQLUSER$ -p $MYSQLPASSWORD$ } ## Now ESX and VM checks ##ARG1 and take cpu, io, net or mem define command{ command_name check_esx_host command_line $PLUGINSDIR$/check_esx3.pl -D $VCENTER$ -H $HOSTADDRESS$ -u $VCENTERLOGIN$ -p $VCENTERPASSWORD$ l $ARG1$ } define command{ command_name check_esx_vm command_line $PLUGINSDIR$/check_esx3.pl -D $VCENTER$ -N $HOSTALIAS$ -u $VCENTERLOGIN$ -p $VCENTERPASSWORD$ -l $ARG1$ } #### Then samples which are not really useful in the real world #Pollertag is a advanced features for mix architectures. Look at the doc for it. define command{ command_name check_linux_host_alive command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p 22 -t 3 #poller_tag DMZ #module_type nrpe_poller } #Pollertag is a advanced features for mix architectures. Look at the doc for it. define command{ command_name check_host_alive command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 1,50% -c 2,70% -p 1 #poller_tag DMZ #module_type nrpe_poller } define command{ command_name check_windows_host_alive command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p 139 -t 3 #poller_tag DMZ #module_type nrpe_poller } define command{ command_name check_local_disk command_line $USER1$/check.sh $HOSTADDRESS$ -c $ARG1$ SERVICE $USER1$ #poller_tag DMZ #module_type nrpe_poller } # Dummy check port command define command{ command_name check_port command_line /bin/ping localhost -c 1 #$USER1$/check.sh $HOSTADDRESS$ -c $ARG1$ #poller_tag DMZ #module_type nrpe_poller } # Dummy check for mysql, always CRITICAL define command{ command_name check_mysql command_line $USER1$/check_dummy.sh 2 } define command{ command_name check_dummy command_line $USER1$/check_dummy.sh $ARG1$ #poller_tag DMZ } define command{ command_name super_event_kill_everyone command_line $USER1$/check.sh $HOSTADDRESS$ -c $ARG1$ SERVICE $_HOSTDELLSUCK$ } # We say Http checks are always OK define command{ command_name check_http2 command_line $USER1$/check_dummy.sh 1 #module_type nrpe_poller } define command{ command_name check-host-alive command_line $USER1$/check.sh $HOSTADDRESS$ -c $ARG1$ HOST $_HOSTDELLSUCK$ $SERVICEDESC:srv-1:Service-2$ $SERVICEDESC::Service-30$ $HOSTADDRESS:$ $HOSTGROUPALIAS:linux-servers$ #module_type dummy_poller } define command{ command_name check_vm_cpu command_line $USER1$/check_esx3.pl -H lulu } #### Now notification commands define command{ command_name notify-host-by-email command_line /usr/bin/printf "%b" "Shinken Notification\n\nType:$NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\nDate/Time: $DATE$" | /usr/bin/mail -s "Host $HOSTSTATE$ alert for $HOSTNAME$!" $CONTACTEMAIL$ } define command{ command_name notify-service-by-email command_line /usr/bin/printf "%b" "Shinken Notification\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $DATE$ Additional Info : $SERVICEOUTPUT$" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ } #### And Discovery commands define command{ command_name nmap_discovery command_line $USER1$/nmap_discovery_runner.py -t $NMAPTARGETS$ } define command{ command_name vmware_esx_discovery command_line $USER1$/vmware_discovery_runner.py -V $VCENTER$ -u $VCENTERLOGIN$ -p $VCENTERPASSWORD$ -r "lower|nofqdn" }