Puppet Class: profile::bird::anycast_monitoring

Defined in:
modules/profile/manifests/bird/anycast_monitoring.pp

Overview

Parameters:

  • ntp_anycast_peers (Array[Stdlib::Fqdn]) (defaults to: lookup('ntp_anycast_peers'))


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
# File 'modules/profile/manifests/bird/anycast_monitoring.pp', line 10

class profile::bird::anycast_monitoring (
    Array[Stdlib::Fqdn] $ntp_anycast_peers = lookup('ntp_anycast_peers'),
) {

    # Anycast recdns: Note use of the raw IP in the host title and ip_address -
    # otherwise the checks end up using local DNS lookups on icinga itself to
    # find the address of the DNS server being tested, which makes the process
    # and the results confusing and/or wrong.
    # For non-DNS anycast services we can probably use the real hostname and
    # host_fqdn instead, so please don't copypasta this for the next entry!

    monitoring::host { '10.3.0.1':
        ip_address => '10.3.0.1',
        critical   => true, # Page
    }

    monitoring::service { 'Recursive DNS anycast VIP':
        host           => '10.3.0.1',
        description    => 'recursive DNS anycast VIP',
        check_command  => 'check_dns!www.wikipedia.org',
        notes_url      => 'https://wikitech.wikimedia.org/wiki/Anycast_recursive_DNS#Troubleshooting',
        critical       => true, # Page
        migration_task => 'T384425',
    }

    $ntp_anycast_peers.each |Stdlib::Fqdn $ntp_anycast_peer| {
        $ntp_anycast_ip = ipresolve($ntp_anycast_peer, 4)
        monitoring::host { $ntp_anycast_peer:
            ip_address => $ntp_anycast_ip,
        }

        monitoring::service { "NTP anycast VIP ${ntp_anycast_ip}":
            host           => $ntp_anycast_peer,
            description    => "NTP anycast VIP ${ntp_anycast_ip} ${ntp_anycast_peer}",
            check_command  => 'check_ntp_peer!0.1!0.5',
            notes_url      => 'https://wikitech.wikimedia.org/wiki/NTP#Monitoring',
            migration_task => 'T385590',
        }
    }

    monitoring::host { 'syslog.anycast.wmnet':
        host_fqdn => 'syslog.anycast.wmnet',
    }

    # Wikidough.
    monitoring::host { '185.71.138.138':
        ip_address => '185.71.138.138',
    }

    monitoring::service { 'check_wikidough_doh':
        host           => '185.71.138.138',
        description    => 'Wikidough DoH Check',
        check_command  => 'check_https_url_custom_ip!wikimedia-dns.org!185.71.138.138!/',
        notes_url      => 'https://wikitech.wikimedia.org/wiki/Wikidough',
        migration_task => 'T384438',
    }

    monitoring::service { 'check_wikidough_dot':
        host           => '185.71.138.138',
        description    => 'Wikidough DoT Check',
        check_command  => 'check_tcp_ssl!185.71.138.138!853',
        notes_url      => 'https://wikitech.wikimedia.org/wiki/Wikidough',
        migration_task => 'T384438',
    }

    # Wikidough durum.
    monitoring::host { 'check.wikimedia-dns.org':
        host_fqdn => 'check.wikimedia-dns.org',
    }

    # hcaptcha proxy T409780
    monitoring::host { 'hcaptcha-proxy.anycast.wmnet':
        host_fqdn => 'hcaptcha-proxy.anycast.wmnet',
    }
}