Passive checks allow you to feed status information into Nagios at a time of your choosing rather than having Nagios continuously poll some device.
The typically way to implement them is using NSCA (Nagios Service Command Acceptor)
NSCA runs on the same server as Nagios and listens on a port to accept incoming results.
Example Nagios Passive service template
# APC UPS Passive Check define service { use generic-service name g-apc-ups service_description APC UPS Power max_check_attempts 1 normal_check_interval 5 retry_check_interval 1 notification_interval 30 notification_period 24x7 notification_options u,w,c,r contact_groups admin-lists flap_detection_enabled 0 active_checks_enabled 0 check_command check_ping register 0 } # Machines connected to an APC ups define service { use g-apc-ups hostgroup_name ups_servers }
Example NSCA config
#################################################### # NSCA Daemon Config File # Last Modified: 25 Feb 2005 #################################################### # PORT NUMBER server_port=5667 # ALLOWED HOST ADDRESSES allowed_hosts=192.168.70.10,192.168.70.234 # Plaintext passwords! password=your-password decryption_method=1 nsca_user=nagios nsca_group=nagios debug=0 command_file=/var/log/nagios/rw/nagios.cmd alternate_dump_file=/var/log/nagios/rw/nsca.dump aggregate_writes=0 append_to_file=0 max_packet_age=30
Example to generate a passive event
#!/bin/bash # # Setup some defaults to be used by the notification scripts HOSTNAME=`hostname` NAGIOS_HOST="x.x.x.x" NSCA_CONFIG="/etc/nsca.conf" SERVICE="APC UPS Power" send_alert() { echo "$HOSTNAME $SERVICE $1 $2 " | /usr/bin/send_nsca -H $NAGIOS_HOST -c $NSCA_CONFIG &>/dev/null }
Source the above script and then call send_alert "0" "Status Msg here"
One page links to NagiosNotes: