OK, thenks for your help. I solved the trouble using the $hostname fact in
front of services definitions.

But I have another question about this:

Is it possible to define the directory where the file are created in the
nagios server?

Now the files are stored in the /etc/nagios.


2011/4/26 Cedric Jeanneret <[email protected]>

> Hello,
>
> Maybe have a look at our nagios module:
> https://github.com/camptocamp/puppet-nagios
>
> Your problem is that resources with same name are exported from multiple
> hosts, and that make puppet crash with duplicated definition (as it's
> exported resources, the error message is different ;) ).
> You should name your nagios resources with the fqdn embedded so that it
> will be really unique across the DB.
>
> Cheers,
>
> C.
>
> On Tue, 26 Apr 2011 01:29:03 -0700 (PDT)
> Fransua33 <[email protected]> wrote:
>
> > Hi everyone,
> >
> > I'm trying to automate the nagios configuration of new host through
> > Puppet. For this I define a nagios module with the generic
> > configuration of my Nagios host definition.  The module look like
> > this:
> >
> > class nagios {
> >       $packagelist=["nagios"]
> >
> >       package { $packagelist:
> >               ensure => "installed"
> >       }
> >
> >       $servicelist=["nagios", "httpd"]
> >
> >       service { $servicelist:
> >               ensure          => "running",
> >               hasstatus       => "true",
> >               hasrestart      => "true"
> >       }
> >
> >       # collect resources and populate /etc/nagios/nagios_*.cfg
> >       Nagios_host <<| |>>
> >       Nagios_service <<| |>>
> >       Nagios_hostextinfo <<| |>>
> >
> >       class target {
> >               @@nagios_host { $fqdn:
> >                       ensure          => "present",
> >                       use             =>
> "ingacceso_$operatingsystem-server",
> >                       alias           => $hostname,
> >                       address         => $ipaddress,
> >                       contacts        =>
> "farconada,henry,fsariego,jfdiez"
> >               }
> >
> >               @@nagios_hostextinfo { $fqdn:
> >                       ensure  => "present",
> >                       icon_image_alt  => $operatingsystem,
> >                       icon_image      => "$operatingsystem.png"
> >               }
> >
> >               @@nagios_service { "Host - Carga CPU":
> >                       use             => "ingacceso_generic-service",
> >                       host_name       => "$fqdn",
> >                       check_command   => "check_nrpe!check_load"
> >               }
> >
> >               @@nagios_service { "Host - CPU":
> >                         use             => "ingacceso_generic-
> > service",
> >                         host_name       => "$fqdn",
> >                         check_command   => "check_nrpe!check_cpu"
> >                 }
> >
> >               @@nagios_service { "Host - Ping":
> >                         use             => "ingacceso_generic-
> > service",
> >                         host_name       => "$fqdn",
> >                         check_command   => "check_ping!400.0,20%!
> > 900.0,60%"
> >                 }
> >
> >               @@nagios_service { "Host - /":
> >                         use             => "ingacceso_generic-
> > service",
> >                         host_name       => "$fqdn",
> >                         check_command   => "check_nrpe!check_raiz"
> >                 }
> >
> >               @@nagios_service { "Host - /boot":
> >                         use             => "ingacceso_generic-
> > service",
> >                         host_name       => "$fqdn",
> >                         check_command   => "check_nrpe!check_boot"
> >                 }
> >
> >               @@nagios_service { "Host - Memoria":
> >                         use             => "ingacceso_generic-
> > service",
> >                         host_name       => "$fqdn",
> >                         check_command   => "check_nrpe!check_memoria"
> >                 }
> >
> >               @@nagios_service { "Host - Swap":
> >                         use             => "ingacceso_generic-
> > service",
> >                         host_name       => "$fqdn",
> >                         check_command   => "check_nrpe!check_swap"
> >                 }
> >
> >               @@nagios_service { "Host - Numero Procesos":
> >                         use             => "ingacceso_generic-
> > service",
> >                         host_name       => "$fqdn",
> >                         check_command   => "check_nrpe!
> > check_total_procs"
> >                 }
> >
> >
> >               @@nagios_service { "Host - Interfaces de Red":
> >                         use             => "ingacceso_generic-
> > service",
> >                         host_name       => "$fqdn",
> >                         check_command   => "check_nrpe!
> > check_interfaces_net"
> >                 }
> >       }
> > }
> >
> > After this, I include this module in the template.pp:
> >
> > node basenode {
> >       case $operatingsystem {
> >               centos: { include centos }
> >               default: { include centos }
> >       }
> >       include baseapps, sshd, administradores, nagiosclient
> >       include nagios::target
> > }
> > node default inherits basenode {}
> > node webserver inherits basenode {
> >       include apache
> > }
> > node dbserver inherits basenode {
> >       include mysql
> > }
> > node mailserver inherits basenode {
> >       include postfix
> > }
> > node nagiosserver {
> >       case $operatingsystem {
> >                 centos: { include centos }
> >                 default: { include centos }
> >         }
> >         include baseapps, sshd, administradores, nagiosclient
> >       include nagios
> > }
> >
> > Also I define my nodes in the node.pp file:
> >
> > node 'masterpuppet.example.int' inherits basenode {}
> > node 'web.example.int' inherits webserver {
> >       apache::virtual_host { "test1.example.int":
> >               ip      => "172.16.73.201"
> >       }
> >       apache::virtual_host { "test2.example.int":
> >                 ip      => "172.16.73.201"
> >         }
> > }
> > node 'db.example.int' inherits dbserver {}
> > node 'mail.example.int' inherits mailserver {}
> > node 'nagios.example.int' inherits nagiosserver {}
> >
> > I verified that my store configs work well in my MySQL Database but in
> > the reports of my Nagios host I can see this error:
> >
> > --- !ruby/object:Puppet::Transaction::Report
> >   configuration_version:
> >   host: nagios.example.int
> >   kind: apply
> >   logs:
> >     - !ruby/object:Puppet::Util::Log
> >       level: !ruby/sym err
> >       message: "Could not retrieve catalog from remote server: Error
> > 400 on SERVER: Exported resource Nagios_service[Host - /] cannot
> > override local resource on node nagios.example.int"
> >       source: Puppet
> >       tags:
> >         - err
> >       time: 2011-04-26 09:39:55.848399 +02:00
> >     - !ruby/object:Puppet::Util::Log
> >       level: !ruby/sym notice
> >       message: Using cached catalog
> >       source: Puppet
> >       tags:
> >         - notice
> >       time: 2011-04-26 09:39:55.928445 +02:00
> >     - !ruby/object:Puppet::Util::Log
> >       level: !ruby/sym err
> >       message: Could not retrieve catalog; skipping run
> >       source: Puppet
> >       tags:
> >         - err
> >       time: 2011-04-26 09:39:55.928687 +02:00
> >   metrics: {}
> >   puppet_version: 2.6.6
> >   report_format: 2
> >   resource_statuses: {}
> >   status: failed
> >   time: 2011-04-26 09
> >
> > and the files nagios_*.cfg don't appear in my Nagios config.
> >
> > Can somebody help me with this troubleshoot?
> >
> > Ref:
> http://blog.gurski.org/index.php/2010/01/28/automatic-monitoring-with-puppet-and-nagios/
> >
>
>
> --
> Cédric Jeanneret                 |  System Administrator
> 021 619 10 32                    |  Camptocamp SA
> [email protected]  |  PSE-A / EPFL
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to