|
Packit Service |
a2ae7a |
(*
|
|
Packit Service |
a2ae7a |
Module: Nrpe
|
|
Packit Service |
a2ae7a |
Parses nagios-nrpe configuration files.
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
Author: Marc Fournier <marc.fournier@camptocamp.com>
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
About: License
|
|
Packit Service |
a2ae7a |
This file is licensed under the LGPL v2+, like the rest of Augeas.
|
|
Packit Service |
a2ae7a |
*)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
module Nrpe =
|
|
Packit Service |
a2ae7a |
autoload xfm
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let eol = Util.eol
|
|
Packit Service |
a2ae7a |
let eq = Sep.equal
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* View: word *)
|
|
Packit Service |
a2ae7a |
let word = /[^=\n\t ]+/
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* View: item_re *)
|
|
Packit Service |
a2ae7a |
let item_re = /[^#=\n\t\/ ]+/ - (/command\[[^]\/\n]+\]/ | "include" | "include_dir")
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* View: command
|
|
Packit Service |
a2ae7a |
nrpe.cfg usually has many entries defining commands to run
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
> command[check_foo]=/path/to/nagios/plugin -w 123 -c 456
|
|
Packit Service |
a2ae7a |
> command[check_bar]=/path/to/another/nagios/plugin --option
|
|
Packit Service |
a2ae7a |
*)
|
|
Packit Service |
a2ae7a |
let command =
|
|
Packit Service |
a2ae7a |
let obrkt = del /\[/ "[" in
|
|
Packit Service |
a2ae7a |
let cbrkt = del /\]/ "]" in
|
|
Packit Service |
a2ae7a |
[ key "command" .
|
|
Packit Service |
a2ae7a |
[ obrkt . key /[^]\/\n]+/ . cbrkt . eq
|
|
Packit Service |
a2ae7a |
. store /[^\n]+/ . del /\n/ "\n" ]
|
|
Packit Service |
a2ae7a |
]
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* View: item
|
|
Packit Service |
a2ae7a |
regular entries
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
> allow_bash_command_substitution=0
|
|
Packit Service |
a2ae7a |
*)
|
|
Packit Service |
a2ae7a |
let item = [ key item_re . eq . store word . eol ]
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* View: include
|
|
Packit Service |
a2ae7a |
An include entry.
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
nrpe.cfg can include more than one file or directory of files
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
> include=/path/to/file1.cfg
|
|
Packit Service |
a2ae7a |
> include=/path/to/file2.cfg
|
|
Packit Service |
a2ae7a |
*)
|
|
Packit Service |
a2ae7a |
let include = [ key "include" .
|
|
Packit Service |
a2ae7a |
[ label "file" . eq . store word . eol ]
|
|
Packit Service |
a2ae7a |
]
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* View: include_dir
|
|
Packit Service |
a2ae7a |
> include_dir=/path/to/dir/
|
|
Packit Service |
a2ae7a |
*)
|
|
Packit Service |
a2ae7a |
let include_dir = [ key "include_dir" .
|
|
Packit Service |
a2ae7a |
[ label "dir" . eq . store word . eol ]
|
|
Packit Service |
a2ae7a |
]
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* View: comment
|
|
Packit Service |
a2ae7a |
Nrpe comments must start at beginning of line *)
|
|
Packit Service |
a2ae7a |
let comment = Util.comment_generic /#[ \t]*/ "# "
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* blank lines and empty comments *)
|
|
Packit Service |
a2ae7a |
let empty = Util.empty
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* View: lns
|
|
Packit Service |
a2ae7a |
The Nrpe lens *)
|
|
Packit Service |
a2ae7a |
let lns = ( command | include | include_dir | item | comment | empty ) *
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* View: filter
|
|
Packit Service |
a2ae7a |
File filter *)
|
|
Packit Service |
a2ae7a |
let filter = incl "/etc/nrpe.cfg" .
|
|
Packit Service |
a2ae7a |
incl "/etc/nagios/nrpe.cfg"
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let xfm = transform lns (filter)
|
|
Packit Service |
a2ae7a |
|