Giuseppe Lavagetto has submitted this change and it was merged. Change subject: monitoring: convert monitor_group to monitoring::group ......................................................................
monitoring: convert monitor_group to monitoring::group Also, move decommission_monitor_host, which seems useless anyway. Change-Id: I52461750f38d8bff7da9358654bf45a5feeb44ae --- M manifests/facilities.pp M manifests/nagios.pp M manifests/network.pp M manifests/nfs.pp M manifests/role/analytics.pp M manifests/role/apertium.pp M manifests/role/cache.pp M manifests/role/coredb.pp M manifests/role/cxserver.pp M manifests/role/elasticsearch.pp M manifests/role/logstash.pp M manifests/role/lvs.pp M manifests/role/mathoid.pp M manifests/role/mediawiki.pp M manifests/role/memcached.pp M manifests/role/nova.pp M manifests/role/ocg.pp M manifests/role/openldap.pp M manifests/role/parsoid.pp M manifests/role/protoproxy.pp M manifests/role/rcstream.pp M manifests/role/redisdb.pp M manifests/role/swift.pp M manifests/search.pp M modules/icinga/manifests/groups/misc.pp A modules/monitoring/manifests/decommission_host.pp A modules/monitoring/manifests/group.pp 27 files changed, 121 insertions(+), 87 deletions(-) Approvals: Giuseppe Lavagetto: Looks good to me, approved jenkins-bot: Verified diff --git a/manifests/facilities.pp b/manifests/facilities.pp index 31be227..373b16d 100644 --- a/manifests/facilities.pp +++ b/manifests/facilities.pp @@ -105,7 +105,7 @@ } # Nagios monitoring -@monitor_group { 'pdus': +@monitoring::group { 'pdus': description => 'PDUs', } diff --git a/manifests/nagios.pp b/manifests/nagios.pp index 377435e..547c184 100644 --- a/manifests/nagios.pp +++ b/manifests/nagios.pp @@ -136,7 +136,7 @@ } } -define monitor_group ($description, $ensure=present) { +define monitoring::group ($description, $ensure=present) { # Nagios hostgroup instance nagios_hostgroup { $title: ensure => $ensure, @@ -151,29 +151,5 @@ target => "${::nagios_config_dir}/puppet_servicegroups.cfg", servicegroup_name => $title, alias => $description, - } -} -define decommission_monitor_host { - if defined(Nagios_host[$title]) { - # Override the existing resources - Nagios_host <| title == $title |> { - ensure => absent - } - Nagios_hostextinfo <| title == $title |> { - ensure => absent - } - } - else { - # Resources don't exist in Puppet. Remove from Nagios config as well. - nagios_host { $title: - host_name => $title, - ensure => absent; - - } - nagios_hostextinfo { $title: - host_name => $title, - ensure => absent; - - } } } diff --git a/manifests/network.pp b/manifests/network.pp index 3b60088..da2e937 100644 --- a/manifests/network.pp +++ b/manifests/network.pp @@ -272,11 +272,11 @@ $snmp_ro_community = $passwords::network::snmp_ro_community # Nagios monitoring - @monitor_group { 'routers': + @monitoring::group { 'routers': description => 'IP routers', } - @monitor_group { 'storage': + @monitoring::group { 'storage': description => 'Storage equipment', } diff --git a/manifests/nfs.pp b/manifests/nfs.pp index dbf3d4e..f69cb27 100644 --- a/manifests/nfs.pp +++ b/manifests/nfs.pp @@ -1,7 +1,7 @@ # nfs.pp # Virtual resource for the monitoring server -#@monitor_group { "nfs": description => "NFS" } +#@monitoring::group { "nfs": description => "NFS" } class nfs::common { package { 'nfs-common': diff --git a/manifests/role/analytics.pp b/manifests/role/analytics.pp index 3dfcf15..bd46c58 100644 --- a/manifests/role/analytics.pp +++ b/manifests/role/analytics.pp @@ -1,6 +1,6 @@ # analytics servers (RT-1985) -@monitor_group { 'analytics_eqiad': description => 'analytics servers in eqiad' } +@monitoring::group { 'analytics_eqiad': description => 'analytics servers in eqiad' } # == Class role::analytics # Base class for all analytics nodes. diff --git a/manifests/role/apertium.pp b/manifests/role/apertium.pp index 0d32aab..d189d21 100644 --- a/manifests/role/apertium.pp +++ b/manifests/role/apertium.pp @@ -1,7 +1,7 @@ # vim: set ts=4 et sw=4: # We do not have monitoring yet -#@monitor_group { 'apertium_eqiad': description => 'eqiad apertium servers' } +#@monitoring::group { 'apertium_eqiad': description => 'eqiad apertium servers' } # Skipping production for now #class role::apertium::production {} diff --git a/manifests/role/cache.pp b/manifests/role/cache.pp index 1bd8fdf..d2c4a9b 100644 --- a/manifests/role/cache.pp +++ b/manifests/role/cache.pp @@ -2,51 +2,51 @@ # cache::varnish role classes # Virtual resources for the monitoring server -@monitor_group { 'cache_text_eqiad': +@monitoring::group { 'cache_text_eqiad': description => 'eqiad text Varnish', } -@monitor_group { 'cache_text_esams': +@monitoring::group { 'cache_text_esams': description => 'esams text Varnish', } -@monitor_group { 'cache_text_ulsfo': +@monitoring::group { 'cache_text_ulsfo': description => 'ulsfo text Varnish', } -@monitor_group { 'cache_upload_eqiad': +@monitoring::group { 'cache_upload_eqiad': description => 'eqiad upload Varnish', } -@monitor_group { 'cache_upload_esams': +@monitoring::group { 'cache_upload_esams': description => 'esams upload Varnish', } -@monitor_group { 'cache_upload_ulsfo': +@monitoring::group { 'cache_upload_ulsfo': description => 'ulsfo upload Varnish', } -@monitor_group { 'cache_bits_eqiad': +@monitoring::group { 'cache_bits_eqiad': description => 'eqiad bits Varnish', } -@monitor_group { 'cache_bits_esams': +@monitoring::group { 'cache_bits_esams': description => 'esams bits Varnish', } -@monitor_group { 'cache_bits_ulsfo': +@monitoring::group { 'cache_bits_ulsfo': description => 'ulsfo bits Varnish', } -@monitor_group { 'cache_mobile_eqiad': +@monitoring::group { 'cache_mobile_eqiad': description => 'eqiad mobile Varnish', } -@monitor_group { 'cache_mobile_esams': +@monitoring::group { 'cache_mobile_esams': description => 'esams mobile Varnish', } -@monitor_group { 'cache_mobile_ulsfo': +@monitoring::group { 'cache_mobile_ulsfo': description => 'ulsfo mobile Varnish', } -@monitor_group { 'cache_parsoid_eqiad': +@monitoring::group { 'cache_parsoid_eqiad': description => 'Parsoid caches eqiad', } -@monitor_group { 'cache_misc_eqiad': +@monitoring::group { 'cache_misc_eqiad': description => 'Misc caches eqiad', } diff --git a/manifests/role/coredb.pp b/manifests/role/coredb.pp index 906c22b..33b8a13 100644 --- a/manifests/role/coredb.pp +++ b/manifests/role/coredb.pp @@ -1,7 +1,7 @@ # Virtual resource for the monitoring server -@monitor_group { 'es_eqiad': description => 'eqiad External Storage' } -@monitor_group { 'mysql_eqiad': description => 'eqiad mysql core' } -@monitor_group { 'mysql_codfw': description => 'codfw mysql core' } +@monitoring::group { 'es_eqiad': description => 'eqiad External Storage' } +@monitoring::group { 'mysql_eqiad': description => 'eqiad mysql core' } +@monitoring::group { 'mysql_codfw': description => 'codfw mysql core' } ## for describing replication topology ## hosts must be added here in addition to site.pp diff --git a/manifests/role/cxserver.pp b/manifests/role/cxserver.pp index bdc75ae..0c658ae 100644 --- a/manifests/role/cxserver.pp +++ b/manifests/role/cxserver.pp @@ -1,7 +1,7 @@ # vim: set ts=4 et sw=4: # We do not have monitoring yet -#@monitor_group { 'cxserver_eqiad': description => 'eqiad cxserver servers' } +#@monitoring::group { 'cxserver_eqiad': description => 'eqiad cxserver servers' } # Skipping production for now #class role::cxserver::production {} diff --git a/manifests/role/elasticsearch.pp b/manifests/role/elasticsearch.pp index 037fd9c..92e1f86 100644 --- a/manifests/role/elasticsearch.pp +++ b/manifests/role/elasticsearch.pp @@ -3,10 +3,10 @@ # This class sets up Elasticsearch configuration in a WMF-specific way. # -@monitor_group { 'elasticsearch_eqiad': description => 'eqiad elasticsearch servers' } -@monitor_group { 'elasticsearch_codfw': description => 'codfw elasticsearch servers' } -@monitor_group { 'elasticsearch_esams': description => 'esams elasticsearch servers' } -@monitor_group { 'elasticsearch_ulsfo': description => 'ulsfo elasticsearch servers' } +@monitoring::group { 'elasticsearch_eqiad': description => 'eqiad elasticsearch servers' } +@monitoring::group { 'elasticsearch_codfw': description => 'codfw elasticsearch servers' } +@monitoring::group { 'elasticsearch_esams': description => 'esams elasticsearch servers' } +@monitoring::group { 'elasticsearch_ulsfo': description => 'ulsfo elasticsearch servers' } class role::elasticsearch::config { # Config diff --git a/manifests/role/logstash.pp b/manifests/role/logstash.pp index 706533b..ddd377a 100644 --- a/manifests/role/logstash.pp +++ b/manifests/role/logstash.pp @@ -1,5 +1,5 @@ # vim:sw=4 ts=4 sts=4 et: -@monitor_group { 'logstash_eqiad': description => 'eqiad logstash' } +@monitoring::group { 'logstash_eqiad': description => 'eqiad logstash' } # == Class: role::logstash # diff --git a/manifests/role/lvs.pp b/manifests/role/lvs.pp index f8ae8ba..13a2cdc 100644 --- a/manifests/role/lvs.pp +++ b/manifests/role/lvs.pp @@ -1,10 +1,10 @@ # role/lvs.pp -@monitor_group { "lvs": description => "LVS" } -@monitor_group { "lvs_eqiad": description => "eqiad LVS servers" } -@monitor_group { "lvs_codfw": description => "codfw LVS servers" } -@monitor_group { "lvs_ulsfo": description => "ulsfo LVS servers" } -@monitor_group { "lvs_esams": description => "esams LVS servers" } +@monitoring::group { "lvs": description => "LVS" } +@monitoring::group { "lvs_eqiad": description => "eqiad LVS servers" } +@monitoring::group { "lvs_codfw": description => "codfw LVS servers" } +@monitoring::group { "lvs_ulsfo": description => "ulsfo LVS servers" } +@monitoring::group { "lvs_esams": description => "esams LVS servers" } class role::lvs::balancer { system::role { "role::lvs::balancer": description => "LVS balancer" } diff --git a/manifests/role/mathoid.pp b/manifests/role/mathoid.pp index 7503b7d..75de55a 100644 --- a/manifests/role/mathoid.pp +++ b/manifests/role/mathoid.pp @@ -2,7 +2,7 @@ # TODO: now that other services inhabit service cluster A, move this definition in a # better place -@monitor_group { 'sca_eqiad': description => 'Service Cluster A servers' } +@monitoring::group { 'sca_eqiad': description => 'Service Cluster A servers' } class role::mathoid::production { system::role { 'role::mathoid::production': diff --git a/manifests/role/mediawiki.pp b/manifests/role/mediawiki.pp index 57d97e8..b2ce91e 100644 --- a/manifests/role/mediawiki.pp +++ b/manifests/role/mediawiki.pp @@ -1,9 +1,9 @@ -@monitor_group { 'appserver_hhvm_eqiad': description => 'eqiad application servers (HHVM)' } -@monitor_group { 'appserver_eqiad': description => 'eqiad application servers' } -@monitor_group { 'api_appserver_eqiad': description => 'eqiad API application servers' } -@monitor_group { 'imagescaler_eqiad': description => 'eqiad image scalers' } -@monitor_group { 'jobrunner_eqiad': description => 'eqiad jobrunner application servers' } -@monitor_group { 'videoscaler_eqiad': description => 'eqiad video scaler' } +@monitoring::group { 'appserver_hhvm_eqiad': description => 'eqiad application servers (HHVM)' } +@monitoring::group { 'appserver_eqiad': description => 'eqiad application servers' } +@monitoring::group { 'api_appserver_eqiad': description => 'eqiad API application servers' } +@monitoring::group { 'imagescaler_eqiad': description => 'eqiad image scalers' } +@monitoring::group { 'jobrunner_eqiad': description => 'eqiad jobrunner application servers' } +@monitoring::group { 'videoscaler_eqiad': description => 'eqiad video scaler' } class role::mediawiki::common { include ::standard diff --git a/manifests/role/memcached.pp b/manifests/role/memcached.pp index 3209f99..33f8c77 100644 --- a/manifests/role/memcached.pp +++ b/manifests/role/memcached.pp @@ -1,7 +1,7 @@ # vim: noet # Virtual resource for monitoring server -@monitor_group { 'memcached_eqiad': +@monitoring::group { 'memcached_eqiad': description => 'eqiad memcached', } diff --git a/manifests/role/nova.pp b/manifests/role/nova.pp index 6ab881a..b0dd226 100644 --- a/manifests/role/nova.pp +++ b/manifests/role/nova.pp @@ -425,8 +425,8 @@ } # global icinga hostgroups for virt/labs hosts -@monitor_group { 'virt_eqiad': description => 'eqiad virt servers' } -@monitor_group { 'virt_esams': description => 'esams virt servers' } -@monitor_group { 'virt_codfw': description => 'codfw virt servers' } -@monitor_group { 'virt_ulsfo': description => 'ulsfo virt servers' } +@monitoring::group { 'virt_eqiad': description => 'eqiad virt servers' } +@monitoring::group { 'virt_esams': description => 'esams virt servers' } +@monitoring::group { 'virt_codfw': description => 'codfw virt servers' } +@monitoring::group { 'virt_ulsfo': description => 'ulsfo virt servers' } diff --git a/manifests/role/ocg.pp b/manifests/role/ocg.pp index cfa6dc0..f287822 100644 --- a/manifests/role/ocg.pp +++ b/manifests/role/ocg.pp @@ -3,7 +3,7 @@ # Offline content generator for the MediaWiki collection extension # Virtual resources for the monitoring server -@monitor_group { 'ocg_eqiad': description => 'offline content generator eqiad' } +@monitoring::group { 'ocg_eqiad': description => 'offline content generator eqiad' } class role::ocg::production ( $tmpfs_size = '512M', # size of tmpfs filesystem e.g. 512M diff --git a/manifests/role/openldap.pp b/manifests/role/openldap.pp index 7db01bc..968a319 100644 --- a/manifests/role/openldap.pp +++ b/manifests/role/openldap.pp @@ -1,6 +1,6 @@ # vim: set ts=4 et sw=4: -@monitor_group { "openldap_corp_mirror_${::site}": description => 'Corp OIT LDAP Mirror' } +@monitoring::group { "openldap_corp_mirror_${::site}": description => 'Corp OIT LDAP Mirror' } class role::openldap::corp { include passwords::openldap::corp diff --git a/manifests/role/parsoid.pp b/manifests/role/parsoid.pp index c1c9860..456ab5c 100644 --- a/manifests/role/parsoid.pp +++ b/manifests/role/parsoid.pp @@ -1,6 +1,6 @@ # vim: set ts=4 et sw=4: -@monitor_group { 'parsoid_eqiad': description => 'eqiad parsoid servers' } +@monitoring::group { 'parsoid_eqiad': description => 'eqiad parsoid servers' } class role::parsoid::common { package { [ diff --git a/manifests/role/protoproxy.pp b/manifests/role/protoproxy.pp index c49cef7..e8fa7af 100644 --- a/manifests/role/protoproxy.pp +++ b/manifests/role/protoproxy.pp @@ -187,7 +187,7 @@ } -@monitor_group { 'ssl_eqiad': description => 'eqiad ssl servers' } -@monitor_group { 'ssl_codfw': description => 'codfw ssl servers' } -@monitor_group { 'ssl_esams': description => 'esams ssl servers' } -@monitor_group { 'ssl_ulsfo': description => 'ulsfo ssl servers' } +@monitoring::group { 'ssl_eqiad': description => 'eqiad ssl servers' } +@monitoring::group { 'ssl_codfw': description => 'codfw ssl servers' } +@monitoring::group { 'ssl_esams': description => 'esams ssl servers' } +@monitoring::group { 'ssl_ulsfo': description => 'ulsfo ssl servers' } diff --git a/manifests/role/rcstream.pp b/manifests/role/rcstream.pp index 9ff01b2..bd8baad 100644 --- a/manifests/role/rcstream.pp +++ b/manifests/role/rcstream.pp @@ -1,4 +1,4 @@ -@monitor_group { 'rcstream_eqiad': description => 'eqiad rcstream' } +@monitoring::group { 'rcstream_eqiad': description => 'eqiad rcstream' } # == Class: role::rcstream # diff --git a/manifests/role/redisdb.pp b/manifests/role/redisdb.pp index d4db287..75ed631 100644 --- a/manifests/role/redisdb.pp +++ b/manifests/role/redisdb.pp @@ -2,7 +2,7 @@ # db::redis # Virtual resource for the monitoring server -@monitor_group { 'redis_eqiad': +@monitoring::group { 'redis_eqiad': description => 'eqiad Redis', } diff --git a/manifests/role/swift.pp b/manifests/role/swift.pp index e136030..8a94de4 100644 --- a/manifests/role/swift.pp +++ b/manifests/role/swift.pp @@ -1,4 +1,4 @@ -@monitor_group { 'swift': +@monitoring::group { 'swift': description => 'swift servers', } diff --git a/manifests/search.pp b/manifests/search.pp index f374c64..871910e 100644 --- a/manifests/search.pp +++ b/manifests/search.pp @@ -2,7 +2,7 @@ # vim: set noet : # Virtual resource for the monitoring server -@monitor_group { 'lucene': description => 'eqiad search servers' } +@monitoring::group { 'lucene': description => 'eqiad search servers' } class lucene { diff --git a/modules/icinga/manifests/groups/misc.pp b/modules/icinga/manifests/groups/misc.pp index 5fd35f4..c1eba82 100644 --- a/modules/icinga/manifests/groups/misc.pp +++ b/modules/icinga/manifests/groups/misc.pp @@ -3,24 +3,24 @@ # class icinga::groups::misc { - @monitor_group { 'misc_eqiad': + @monitoring::group { 'misc_eqiad': description => 'eqiad misc servers' } - @monitor_group { 'misc_codfw': + @monitoring::group { 'misc_codfw': description => 'codfw misc servers' } - @monitor_group { 'misc_esams': + @monitoring::group { 'misc_esams': description => 'esams misc servers' } - @monitor_group { 'misc_ulsfo': + @monitoring::group { 'misc_ulsfo': description => 'ulsfo misc servers' } # This needs to be consolited in the virt cluster probably - @monitor_group { 'labsnfs_eqiad': + @monitoring::group { 'labsnfs_eqiad': description => 'eqiad labsnfs server servers' } } diff --git a/modules/monitoring/manifests/decommission_host.pp b/modules/monitoring/manifests/decommission_host.pp new file mode 100644 index 0000000..8f16ae5 --- /dev/null +++ b/modules/monitoring/manifests/decommission_host.pp @@ -0,0 +1,25 @@ +#TODO: this should probably go away. The cleanup scripts in puppet should do this by themselves. +define decommission_monitor_host { + if defined(Nagios_host[$title]) { + # Override the existing resources + Nagios_host <| title == $title |> { + ensure => absent + } + Nagios_hostextinfo <| title == $title |> { + ensure => absent + } + } + else { + # Resources don't exist in Puppet. Remove from Nagios config as well. + nagios_host { $title: + host_name => $title, + ensure => absent; + + } + nagios_hostextinfo { $title: + host_name => $title, + ensure => absent; + + } + } +} diff --git a/modules/monitoring/manifests/group.pp b/modules/monitoring/manifests/group.pp new file mode 100644 index 0000000..d13094b --- /dev/null +++ b/modules/monitoring/manifests/group.pp @@ -0,0 +1,33 @@ +# == Define monitoring::group +# Define host groups and service groups in the monitoring system. +# Note that these will be applied by naginator and are the only +# resource we don't manage via naggen2. +# +# == Parameters +# [*description*] +# Plain-text description of the group. +# +# [*config_dir*] +# Nagios config dir, by default '/etc/nagios' +# +define monitoring::group ( + $description, + $ensure=present, + $config_dir = '/etc/nagios' + ) { + # Nagios hostgroup instance + nagios_hostgroup { $title: + ensure => $ensure, + target => "${config_dir}/puppet_hostgroups.cfg", + hostgroup_name => $title, + alias => $description, + } + + # Nagios servicegroup instance + nagios_servicegroup { $title: + ensure => $ensure, + target => "${config_dir}/puppet_servicegroups.cfg", + servicegroup_name => $title, + alias => $description, + } +} -- To view, visit https://gerrit.wikimedia.org/r/170727 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I52461750f38d8bff7da9358654bf45a5feeb44ae Gerrit-PatchSet: 3 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Giuseppe Lavagetto <glavage...@wikimedia.org> Gerrit-Reviewer: Filippo Giunchedi <fgiunch...@wikimedia.org> Gerrit-Reviewer: Giuseppe Lavagetto <glavage...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits