summaryrefslogtreecommitdiff
path: root/manifests/defaults/commands.pp
blob: 9068c63857799b930ccca0e4bef6ec3d74e29aac (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
class nagios::defaults::commands {

  include nagios::command::smtp
  include nagios::command::imap_pop3

  # common service commands
  case $operatingsystem {
      debian,ubuntu: {
        # debian and ubuntu ship the nagios::command::smtp and
        # nagios::command::imap_pop3 commands in the nagios-plugins packages,
        # which are placed in /etc/nagios-plugins/config/mail.cfg, however they
        # are inferior to the ones provided in this module below because they do
        # not provide port options, so we just remove them
        file { '/etc/nagios-plugins/config/mail.cfg': ensure => absent; }
        nagios_command {
          check_dummy:
            command_line => '$USER1$/check_dummy $ARG1$';
          check_https_cert:
            command_line => '$USER1$/check_http --ssl -C 20 -H $HOSTADDRESS$ -I $HOSTADDRESS$';
          check_http_url:
            command_line => '$USER1$/check_http -H $ARG1$ -u $ARG2$';
          check_http_url_regex:
            command_line => '$USER1$/check_http -H $ARG1$ -u $ARG2$ -e $ARG3$';
          check_https_url:
            command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$';
          check_https_url_regex:
            command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$ -e $ARG3$';
          check_mysql_db:
            command_line => '$USER1$/check_mysql -H $ARG1$ -P $ARG2$ -u $ARG3$ -p $ARG4$ -d $ARG5$';
          check_ntp_time:
            command_line => '$USER1$/check_ntp_time -H $HOSTADDRESS$ -w 0.5 -c 1';
          check_silc:
            command_line => '$USER1$/check_tcp -p 706 -H $ARG1$';
          check_sobby:
            command_line => '$USER1$/check_tcp -H $ARG1$ -p $ARG2$';
          check_jabber:
            command_line => '$USER1$/check_jabber -H $ARG1$';
        }
      }
      default: {
        nagios_command {
          check_dummy:
            command_line => '$USER1$/check_dummy $ARG1$';
          check_ping:
            command_line => '$USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$';
          check-host-alive:
            command_line => '$USER1$/check_ping -H $HOSTADDRESS$ -w 5000,100% -c 5000,100% -p 1';
          check_tcp:
            command_line => '$USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$';
          check_udp:
            command_line => '$USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$';
          check_load:
            command_line => '$USER1$/check_load --warning=$ARG1$,$ARG2$,$ARG3$ --critical=$ARG4$,$ARG5$,$ARG6$';
          check_disk:
            command_line => '$USER1$/check_disk -w $ARG1$ -c $ARG2$ -e -p $ARG3$';
          check_all_disks:
            command_line => '$USER1$/check_disk -w $ARG1$ -c $ARG2$ -e';
          check_ssh:
            command_line => '$USER1$/check_ssh $HOSTADDRESS$';
          check_ssh_port:
            command_line => '$USER1$/check_ssh -p $ARG1$ $HOSTADDRESS$';
          check_ssh_port_host:
            command_line => '$USER1$/check_ssh -p $ARG1$ $ARG2$';
          check_http:
            command_line => '$USER1$/check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$';
          check_https:
            command_line => '$USER1$/check_http --ssl -H $HOSTADDRESS$ -I $HOSTADDRESS$';
          check_https_cert:
            command_line => '$USER1$/check_http --ssl -C 20 -H $HOSTADDRESS$ -I $HOSTADDRESS$';
          check_http_url:
            command_line => '$USER1$/check_http -H $ARG1$ -u $ARG2$';
          check_http_url_regex:
            command_line => '$USER1$/check_http -H $ARG1$ -u $ARG2$ -e $ARG3$';
          check_https_url:
            command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$';
          check_https_url_regex:
            command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$ -e $ARG3$';
          check_mysql:
            command_line => '$USER1$/check_mysql -H $ARG1$ -P $ARG2$ -u $ARG3$ -p $ARG4$';
          check_mysql_db:
            command_line => '$USER1$/check_mysql -H $ARG1$ -P $ARG2$ -u $ARG3$ -p $ARG4$ -d $ARG5$';
          check_ntp_time:
            command_line => '$USER1$/check_ntp_time -H $HOSTADDRESS$ -w 0.5 -c 1';
          check_silc:
            command_line => '$USER1$/check_tcp -p 706 -H $ARG1$';
          check_sobby:
            command_line => '$USER1$/check_tcp -H $ARG1$ -p $ARG2$';
          check_jabber:
            command_line => '$USER1$/check_jabber -H $ARG1$';
          check_git:
            command_line => '$USER1$/check_tcp -H $ARG1$ -p 9418';
        }
      }
  }

    # commands for services defined by other modules

    nagios_command {
        # from apache module
        http_port:
            command_line => '$USER1$/check_http -p $ARG1$ -H $HOSTADDRESS$ -I $HOSTADDRESS$';

        check_http_port_url_content:
            command_line => '$USER1$/check_http -H $ARG1$ -p $ARG2$ -u $ARG3$ -s $ARG4$';
        check_https_port_url_content:
            command_line => '$USER1$/check_http --ssl -H $ARG1$ -p $ARG2$ -u $ARG3$ -s $ARG4$';
        check_http_url_content:
            command_line => '$USER1$/check_http -H $ARG1$ -u $ARG2$ -s $ARG3$';
        check_https_url_content:
            command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$ -s $ARG3$';

        # from bind module
        check_dig2:
           command_line => '$USER1$/check_dig -H $HOSTADDRESS$ -l $ARG1$ --record_type=$ARG2$';

        # from mysql module
        check_mysql_health:
           command_line => '$USER1$/check_mysql_health --hostname $ARG1$ --port $ARG2$ --username $ARG3$ --password $ARG4$ --mode $ARG5$ --database $ARG6$ $ARG7$ $ARG8$';

        # better check_dns
        check_dns2:
          command_line => '$USER1$/check_dns2 -c $ARG1$ A $ARG2$';

        # dnsbl checking
        check_dnsbl:
          command_line => '$USER1$/check_dnsbl -H $ARG1$';
    }

    # notification commands

    $mail_cmd_location = $operatingsystem ? {
      centos => '/bin/mail',
      default => '/usr/bin/mail'
    }

    nagios_command {
        'notify-host-by-email':
            command_line => "/usr/bin/printf \"%b\" \"***** Nagios *****\\n\\nNotification Type: \$NOTIFICATIONTYPE\$\\nHost: \\$HOSTNAME\\$\\nState: \$HOSTSTATE\$\\nAddress: \$HOSTADDRESS\$\\nInfo: \$HOSTOUTPUT\$\\n\\nDate/Time: \$LONGDATETIME\$\\n\" | ${mail_cmd_location} -s \"** \$NOTIFICATIONTYPE\$ Host Alert: \$HOSTNAME\$ is \$HOSTSTATE\$ **\" \$CONTACTEMAIL\$";
	    'notify-service-by-email':
        	command_line => "/usr/bin/printf \"%b\" \"***** Nagios *****\\n\\nNotification Type: \$NOTIFICATIONTYPE\$\\n\\nService: \$SERVICEDESC\$\\nHost: \$HOSTALIAS\$\\nAddress: \$HOSTADDRESS\$\\nState: \$SERVICESTATE\$\\n\\nDate/Time: \$LONGDATETIME\$\\n\\nAdditional Info:\\n\\n\$SERVICEOUTPUT\$\" | ${mail_cmd_location} -s \"** \$NOTIFICATIONTYPE\$ Service Alert: \$HOSTALIAS\$/\$SERVICEDESC\$ is \$SERVICESTATE\$ **\" \$CONTACTEMAIL\$";
	}

}