Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib Fix typo Feb 13, 2019



Checks a log file using a regular expression.


check-log --file=/path/to/file --pattern=REGEXP --warning-over=N --critical-over=N


First, build this program.

go get
cd $(go env GOPATH)/src/
go install

Or you can use this program by installing the official Mackerel package. See Using the official check plugin pack for check monitoring - Mackerel Docs.

Next, you can execute this program :-)

check-log --file=/path/to/file --pattern=REGEXP --warning-over=N --critical-over=N

Setting for mackerel-agent

If there are no problems in the execution result, add a setting in mackerel-agent.conf .

command = ["check-log", "--file", "/path/to/file", "--pattern", "REGEXP", "--warning-over", "N", "--critical-over", "N"]



  -f, --file=FILE                                Path to log file
  -p, --pattern=PAT                              Pattern to search for. If specified multiple, they will be treated together with the AND operator
      --suppress-pattern                         Suppress pattern display
  -E, --exclude=PAT                              Pattern to exclude from matching
  -w, --warning-over=                            Trigger a warning if matched lines is over a number
  -c, --critical-over=                           Trigger a critical if matched lines is over a number
      --warning-level=N                          Warning level if pattern has a group
      --critical-level=N                         Critical level if pattern has a group
  -r, --return                                   Return matched line
  -F, --file-pattern=FILE                        Check a pattern of files, instead of one file
  -i, --icase                                    Run a case insensitive match
  -s, --state-dir=DIR                            Dir to keep state files under
      --no-state                                 Don't use state file and read whole logs
      --encoding=                                Encoding of log file
      --missing=(CRITICAL|WARNING|OK|UNKNOWN)    Exit status when log files missing (default: UNKNOWN)
      --check-first                              Check the log on the first run

Using glob

You can check multiple files by using globs (and zsh extented globs by mattn/go-zglob) in --file option. For example, --file=/tmp/some.log_* will check all of /tmp/some.log_1, /tmp/some.log_2, and so on.

And since command string in mackerel-agent.conf will be parsed by shell (in *nix /bin/sh -c, in Windows cmd /c), specifying glob like --file /tmp/some.log_* does not work as expected. It will be expanded like --file /tmp/some.log_1 /tmp/some.log_2, so it will check only /tmp/some.log_1.

Therefore, when you want to check multiple files, use --file=<glob>, not --file <glob>, or please specify command by array.


To specify encoding of the log files, you can use --encoding option. Below's list of supported encodings.

  • UTF-8
  • CP437
  • CP866
  • ISO-2022-JP
  • LATIN-1
  • ISO-8859-1
  • ISO-8859-2
  • ISO-8859-3
  • ISO-8859-4
  • ISO-8859-5
  • ISO-8859-6
  • ISO-8859-7
  • ISO-8859-8
  • ISO-8859-10
  • ISO-8859-13
  • ISO-8859-14
  • ISO-8859-15
  • ISO-8859-16
  • KOI8R
  • KOI8U
  • Macintosh
  • MacintoshCyrillic
  • Windows1250
  • Windows1251
  • Windows1252
  • Windows1253
  • Windows1254
  • Windows1255
  • Windows1256
  • Windows1257
  • Windows1258
  • Windows874
  • XUserDefined
  • Big5
  • EUC-KR
  • HZ-GB2312
  • sjis
  • CP932
  • Shift_JIS
  • EUC-JP
  • UTF-16 (detect BOM)
  • UTF-16BE
  • UTF-16LE

For more information

Please refer to the following.


You can’t perform that action at this time.