Skip to content

Latest commit

 

History

History
129 lines (103 loc) · 4.19 KB

README.md

File metadata and controls

129 lines (103 loc) · 4.19 KB

check-log

Description

Checks a log file using a regular expression.

Synopsis

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

Installation

First, build this program.

go get github.com/mackerelio/go-check-plugins
cd $(go env GOPATH)/src/github.com/mackerelio/go-check-plugins/check-log
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 .

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

Usage

Options

  -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. If specified multiple, they will be treated together with the AND operator
  -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
      --search-in-directory=DIR                  Specify the directory of files to be detected
  -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.

Encoding

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.

other