summaryrefslogtreecommitdiffstats
path: root/doc/plugins/generators/nagiosgen.txt
blob: 026109f2190e374dc81204e8b1c7496305e23b68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
.. -*- mode: rst -*-

.. _plugins-generators-nagiosgen:

=========
NagiosGen
=========

This page describes the installation and use of the `NagiosGen
<http://trac.mcs.anl.gov/projects/bcfg2/browser/trunk/bcfg2/src/lib/Server/Plugins/NagiosGen.py>`_
plugin.

Update /etc/bcfg2.conf, adding NagiosGen to plugins::

    plugins = SSHbase,Cfg,Pkgmgr,Rules,TCheetah,TWbase,NagiosGen

Create the 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-group.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 a nagios bcfg2 bundle /var/lib/bcfg2/Bundler/nagios.xml

.. code-block:: xml

    <Bundle name='nagios' version='2.0'>
      <ConfigFile name='/etc/nagiosgen.status'/>
      <Group name='rh'>
        <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

.. code-block:: 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.