Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Info

The basic function of this check is to log in

...

to an IMAP or POP3 mailbox to monitor whether or not the login is possible. An extended feature is, that the check can fetch all (or just some) from the mailbox and forward them as events to the Event Console.


Table of Contents


Step-by-step guide

  1. WATO - CONFIGURATION → Host & Service Parameters → Active checks

    Setup → Services → HTTP, TCP, EMail, ... → Check Email → Add Rule

    CHECK EMAIL

    1. Service description

      1. Here you can type in a service description. Please make sure that this is unique per host and does not collide with other services.

    2. Mail Receiving

      1. Here you can select if you want to check your IMAP or POP3 login. You need your login credentials for your E-Mail Mailbox.

        Info




    3. Forward mails as events to Event Console

      1. Forwarding Method

        1. Here you can select if you want to send the events either to the EC or to a remote syslog host. If you want to send the events to the local EC, we would recommend using the spooling mechanism.
          By using the spooling mechanism, the check will store all collected eventsin one file in ~/var/mkeventd/spool.

          Code Block
          linenumberstrue
          OMD[nagnis_master]:~$ ll ~/var/mkeventd/spool/
          
          total 3600
          
          -rw-rw---- 1 nagnis_master nagnis_master 79124 Dec 7 15:36 localhost_407343_1607351778
          
          -rw-rw---- 1 nagnis_master nagnis_master 79124 Dec 7 15:37 localhost_408329_1607351841
          
          


      2. Only process mails with matching subject

        1. Use this option to not process all messages found in the inbox, but only the those whose subject matches the given regular expression. The text entered here is handled as a regular expression pattern. The pattern is matched from the beginning. Add a tailing $ to change it to a whole text match. The match is performed case sensitive. Read more about regular expression matching in Checkmk in our user official guide.

          1. You need to be aware that a subject field could contain line breaks. This is depending on your mail client and mail gateway. To find out how many line breaks you have, you could check the raw email

            Info


            1. Now you can use regex platforms like regex101.com to create a regex

              Info


            2. For advanced debuging
              1. Copy the plugin to the local path

                Code Block
                OMD[mysite]:~/lib/nagios/plugins$ cp check_mail ~/local/lib/nagios/plugins/


              2. Add a print for the subject

                Code Block
                104     for index, msg in sorted(mails.items()):
                105         subject = msg.get('Subject', 'None')
                106         print(subject)


              3. Run the script manually

                Code Block
                OMD[jph2]:~/lib/nagios/plugins$ ./check_mail --pwstore=6@17@password_1 '--fetch-protocol=IMAP' '--fetch-server=imap.strato.de' '--fetch-tls' '--fetch-port=993' '--fetch-username=mail@anastasios-thomaidis.de' '--fetch-password=*************' '--connect-timeout=10' '--forward-ec' '--match-subject=.*Incident.*\n.*assigned' 
                =?utf-8?Q?Incident_INC000000XXXX_has_bee?=
                 =?utf-8?Q?n_assigned_to_your_group_'XXXX=
                 =?utf-8?Q?XXXXX'_=XXXXX:_Comuni?=
                 =?utf-8?Q?XXXXX_-_Priority:_Low?=
                =?utf-8?Q?Incident_INC000000XXXX_has_bee?=
                 =?utf-8?Q?n_assigned_to_your_group_'XXXX=
                 =?utf-8?Q?XXXXX'_=XXXXX:_Comuni?=
                 =?utf-8?Q?XXXXX_-_Priority:_Low?=
                Forwarded 2 messages to event console | messages=2
                
                


      3. Events: Syslog facility

        1. Use this syslog facility for all created events

      4. Events: Hostname

        1. Use this hostname for all created events instead of the name of the mailserver

      5. Limit length of mail body

        1. When forwarding mails from the mailbox to the event console, the body of the mail is limited to the given number of characters.

      6. Cleanup messages

        1. The handled messages (see subject matching) can be cleaned up by either deleting them or moving them to a subfolder. By default nothing is cleaned up.

          Info




...

Code Block
title~/var/log/mkeventd.log

2020-12-07 12:51:18,078 [20] [cmk.mkeventd.EventServer] Processing message '<21>Dec 7 12:51:17 localhost Checkmk EC: Checkmk EC|Email to EC of Checkmk!'

2020-12-07 12:51:18,079 [20] [cmk.mkeventd.EventServer] Parsed message:

application: Checkmk EC

core_host:

facility: 2

host: localhost

host_in_downtime: False

ipaddress:

pid: 0

priority: 5

text: Checkmk EC|Email to EC of Checkmk!

time: 1607341877.0

...