This page describes the installation and use of the NagiosGen plugin.
Update /etc/bcfg2.conf, adding NagiosGen to plugins
plugins = SSHbase,Cfg,Pkgmgr,Rules,TCheetah,TWbase,NagiosGen
Create NagiosGen directory
$ mkdir /var/lib/bcfg2/NagiosGen
Create default host, and group specs in:
- /var/lib/bcfg2/NagiosGen/default-host.cfg
define host{ name default check_command check-host-alive check_interval 5 check_period 24x7 contact_groups admins event_handler_enabled 1 failure_prediction_enabled 1 flap_detection_enabled 1 initial_state o max_check_attempts 10 notification_interval 0 notification_options d,u,r notification_period workhours notifications_enabled 1 process_perf_data 0 register 0 retain_nonstatus_information 1 retain_status_information 1 retry_interval 1 }
- /var/lib/bcfg2/NagiosGen/default-group.cfg
define service{ name default-service active_checks_enabled 1 passive_checks_enabled 1 obsess_over_service 0 check_freshness 0 notifications_enabled 1 event_handler_enabled 1 flap_detection_enabled 1 process_perf_data 0 retain_status_information 1 retain_nonstatus_information 1 is_volatile 0 check_period 24x7 max_check_attempts 4 check_interval 5 retry_interval 1 contact_groups admins notification_options w,u,c,r notification_interval 0 notification_period workhours }
Create group configuration files (Named identical to Bcfg2 groups) and add services, and commands specific to the hostgroup (Bcfg2 group) in
- /var/lib/bcfg2/NagiosGen/base-group.cfg
define hostgroup{ hostgroup_name base alias base notes Notes } define service{ service_description NTP check_command check_ntp! use default-service hostgroup_name base } define command{ command_name check_ssh command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$ } define service{ service_description SSH check_command check_ssh! use default-service hostgroup_name base }
- /var/lib/bcfg2/NagiosGen/web-server.cfg
define hostgroup{ hostgroup_name web-server alias Port 80 Web Servers notes UC/ANL Teragrid Web Servers Running on Port 80 } define command{ command_name check_http_80 command_line $USER1$/check_http $HOSTADDRESS$ } define service{ service_description HTTP:80 check_command check_http_80! use default-service hostgroup_name web-server }
Create NagiosGen bcfg2 bundle /var/lib/bcfg2/Bundler/nagios.xml
<Bundle name='nagios-client' version='2.0'> <Group name='rh'> <ConfigFile name='/etc/nagiosgen.status'/> <Group name='nagios-server'> <ConfigFile name='/etc/nagios/nagiosgen.cfg'/> <Package name='libtool-libs'/> <Package name='nagios'/> <Package name='nagios-www'/> <Service name='nagios'/> </Group> </Group> <Group name='debian-lenny'> <Group name='nagios-server'> <ConfigFile name='/etc/nagios3/nagiosgen.cfg' altsrc='/etc/nagios/nagiosgen.cfg'/> <Package name='nagios3'/> <Package name='nagios3-common'/> <Package name='nagios3-doc'/> <Package name='nagios-images'/> <Service name='nagios3'/> </Group> </Group> </Bundle>
Assign clients to nagios groups in /var/lib/bcfg2/Metadata/groups.xml
<Group name='nagios'> <Bundle name='nagios'/> </Group> <Group name='nagios-server'> <Bundle name='nagios'/> </Group>
Update nagios configuration file to use nagiosgen.cfg
cfg_file=/etc/nagios/nagiosgen.cfg
Note that some of these files are built on demand, each time a client in group "nagios-server" checks in with the bcfg2 server. Local nagios instances can be configured to use the NagiosGen directory in the bcfg2 repository directly.