Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
icinga-checks
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
IML Open Source
icinga-checks
Commits
a55aed6e
Commit
a55aed6e
authored
2 years ago
by
Hahn Axel (hahn)
Browse files
Options
Downloads
Patches
Plain Diff
check_requirements v1.1 add label
parent
40d4c7ab
Branches
Branches containing commit
No related tags found
1 merge request
!57
check_requirements v1.1 add label
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
check_requirements
+58
-22
58 additions, 22 deletions
check_requirements
with
58 additions
and
22 deletions
check_requirements
+
58
−
22
View file @
a55aed6e
...
...
@@ -9,14 +9,15 @@
#
# ah=axel.hahn@unibe.ch
#
# 2023-02-13 v1.0 ah
# 2023-02-13 v1.0 ah initial version with check for processes, tcp/ udp
# 2023-02-15 v1.1 ah add label
# ======================================================================
.
"
$(
dirname
$0
)
/inc_pluginfunctions"
self_APPNAME
=
$(
basename
$0
|
tr
[
:lower:]
[
:upper:]
)
self_APPVERSION
=
1.
0
self_APPVERSION
=
1.
1
self
=
$(
basename
$0
)
...
...
@@ -24,6 +25,7 @@ typeset -i VERBOSE=0
OUT
=
typeset
-i
ADDHEADER
=
1
typeset
-i
COUNT
=
0
typeset
-i
COUNTOK
=
0
typeset
-i
COUNTERR
=
0
...
...
@@ -52,12 +54,12 @@ connections do exist.
The check returns OK if all given requirements match.
SYNTAX:
$
(
basename
$0
)
[-h] [PARAMETERS]
$
self
[-h] [PARAMETERS]
OPTIONS:
-h
or
--help show this help.
-v
or
--verbose show more data: processes and port numbers from
-h
|
--help
show this help.
-v
|
--verbose
show more data: processes and port numbers from
/etc/services; add it as first param
PARAMETERS:
...
...
@@ -68,23 +70,60 @@ PARAMETERS:
TYPE string one of tcp|udp
TARGET string target host
PORT int port number
-p|--process STRING check if a process with given regex exists
-l|--label STRING add label to divide the output in multiple sections
-p|--process STRING check if a process with given regex exists in the
output of 'ps aux'
-t|--tcp PORT check if connect on local tcp port is reachable;
This is a shortcut for -c tcp localhost
[port]
This is a shortcut for
'
-c tcp localhost
PORT'
The parameters can be repeated multiple times. Checks will be executed in
the given order.
EXAMPLE
EXAMPLE
S
$
(
basename
$0
)
-p httpd -p mysqld -t 22 -t 80 -t 443 -t 3306
$
self
-p httpd -p mysqld -t 22 -t 80 -t 443 -t 3306
Check if
- a process httpd and a process mysqld exist
- localhost listens to ports 22, 80, 443 and 3306
$self
-l "webservice" -p httpd -t 80 -t 443 -l "database" -p mysqld -t 3306
Use output with multiple sections
EOF
}
# show a label to divide the output in multiple sections
function
showLabel
(){
ADDHEADER
=
1
newline
OUT+
=
"==========
$1
"
newline
;
}
# show a line with a result
# param string status, eg. OK|ERROR
# param string type, eg. process|connection
# param string result
function
addOutput
(){
if
[
$ADDHEADER
-ne
0
]
;
then
ADDHEADER
=
0
newline
addOutput STATUS TYPE RESULT
newline
# addOutput ------ ---- ------
# newline
fi
OUT+
=
$(
printf
"%-7s %-11s %s
\n
"
"
$1
"
"
$2
"
"
$3
"
)
}
function
addVerbose
(){
if
[
$VERBOSE
-gt
0
]
;
then
newline
OUT+
=
"
$(
echo
"""
$*
"""
|
sed
's#^# > #g'
)
"
newline
fi
}
# helper function: add new line in $OUT
function
newline
(){
...
...
@@ -96,19 +135,19 @@ function newline(){
# param string regex to search for in output of "ps aux"
function
chkProcess
(){
local
label
=
"
$1
"
local
found
;
test
-z
"
$PROCESSES
"
&&
PROCESSES
=
$(
ps aux
)
COUNT+
=
1
local
found
=
$(
echo
"
$PROCESSES
"
|
grep
-v
"grep"
|
grep
-v
"
$self
"
|
grep
-E
"
$label
"
)
found
=
$(
echo
"
$PROCESSES
"
|
grep
-v
"grep"
|
grep
-v
"
$self
"
|
grep
-E
"
$label
"
)
if
[
-z
"
$found
"
]
;
then
COUNTERR+
=
1
ph.setStatus critical
OUT+
=
"ERROR
process
$label
was not found"
addOutput
"ERROR
"
"
process
"
"
$label
was not found"
else
COUNTOK+
=
1
OUT+
=
"OK process
$label
(
$(
echo
"""
$found
"""
|
wc
-l
)
x)"
test
$VERBOSE
-gt
0
&&
newline
test
$VERBOSE
-gt
0
&&
OUT+
=
"
$(
echo
"""
$found
"""
|
sed
's#^# #g'
)
"
test
$VERBOSE
-gt
0
&&
newline
addOutput
"OK"
"process"
"
$label
(
$(
echo
"""
$found
"""
|
wc
-l
)
x)"
addVerbose
"
$found
"
fi
newline
}
...
...
@@ -129,15 +168,13 @@ function chkConnection(){
else
if
(>
/dev/
$type
/
$target
/
$port
)
2>/dev/null
;
then
COUNTOK+
=
1
OUT+
=
"OK
connection
$type
to
$target
on port
$port
"
addOutput
"OK"
"
connection
"
"
$type
to
$target
on port
$port
"
else
COUNTERR+
=
1
ph.setStatus critical
OUT+
=
"ERROR
connection
$type
to
$target
on port
$port
FAILED"
addOutput
"ERROR
"
"
connection
"
"
$type
to
$target
on port
$port
FAILED"
fi
test
$VERBOSE
-gt
0
&&
newline
test
$VERBOSE
-gt
0
&&
OUT+
=
"
$(
grep
"""
$port
/
$type
"""
/etc/services |
sed
's#^# #g'
)
"
test
$VERBOSE
-gt
0
&&
newline
addVerbose
"
$(
grep
"""
$port
/
$type
"""
/etc/services
)
"
fi
newline
}
...
...
@@ -154,6 +191,7 @@ fi
# parse params
while
[[
"$#"
-gt
0
]]
;
do case
$1
in
-c
|
--connect
)
chkConnection
"
$2
"
"
$3
"
"
$4
"
;
shift
;
shift
;
shift
;
shift
;;
-l
|
--label
)
showLabel
"
$2
"
;
shift
;
shift
;;
-p
|
--process
)
chkProcess
"
$2
"
;
shift
2
;;
-h
|
--help
)
showHelp
;
exit
0
;;
-t
|
--tcp
)
chkConnection tcp localhost
"
$2
"
;
shift
;
shift
;;
...
...
@@ -162,8 +200,6 @@ while [[ "$#" -gt 0 ]]; do case $1 in
esac
;
done
ph.status
"
$COUNT
Requirement checks - errors:
$COUNTERR
"
echo
echo
"STATUS TYPE RESULT"
echo
"
$OUT
"
ph.exit
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment