Skip to content
Snippets Groups Projects
Commit 2173731a authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

update docs

parent a9f7f74a
No related branches found
No related tags found
1 merge request!33Update EOL help and docs
## check EOL
### Introduction
**check_eol** is a plugin for Icinga/ Nagios. It detects the end of life of an OS or a product.
You get a status "ok", "warning" or "critical" based on the limits.
The status is "unknown" if a product or the eol date was not detected.
It is customizable / extendable to detect other products that are not included in the delivered basic config.
### Syntax
```txt
./check_eol
______________________________________________________________________
CHECK EOL :: v1.5
(c) Institute for Medical Education - University of Bern
Licence: GNU GPL 3
______________________________________________________________________
Check and of support of an OS or a product.
The dates are defined in the files check_eol-*.cfg
For detailed information see docs/20_Checks/check_eol.md
USAGE
$ check_eol [-c CRITICAL] [-w WARING] PRODUCT VERSION
PARAMETERS
PRODUCT set a product; known product keys are listed below
centos
debian
mariadb
mysql
node
php
postgres
ruby
ubuntu
VERSION set a version.
Autodetection:
There is a special handling vor version "detect".
You can set "os" as product to detect the (linux) distribution.
See examples below.
OPTIONS
-c set critical limit; default 90
-w set warning limit; default 365
EXAMPLES
check_eol php 8.1
check_eol -w 100 -c 30 php 8.1
check_eol os detect
check_eol php detect
```
#### Parameters
PRODUCT set a product; known product keys are listed below
VERSION set a version.
Autodetection:
There is a special handling vor version "detect".
You can set "os" as product to detect the (linux) distribution.
See examples below.
#### Options
-c set critical limit; default 90
-w set warning limit; default 365
### Examples
``check_eol php 7.4``
Show end of life for given php version 7.4
``check_eol -w 100 -c 30 php 7.4``
Add custom critical and warning limits
``check_eol os detect``
Show end of life for current linux os. The distribution and the major version will be detected.
``check_eol php detect``
Show the end of life for the detected php version
### Extend/ customize
The check is build to be customizable. You can add
* add your own end of life dates
* write a version detection for other products
The related files are in 2 subdirectories with check_eol prefix:
```
> ls -1 check_eol-data/ check_eol-versiondetect/
check_eol-data/:
databases.cfg
os.cfg
program-languages.cfg
check_eol-versiondetect/:
autodetect-mysqlany*
autodetect-os*
detect-mariadb*
detect-mysql*
detect-node*
detect-php*
detect-postgres*
detect-ruby*
```
#### End of life dates
The dates are defined in the files *check_eol-*.cfg*.
Those contain lines with parsed information that must start at the begin of line:
* ``[Key]:[version]:[Date as YYYY-MM-DD]:[COMMENT]``
* Key: name of the product in lowercase, i.e. "php", "centos"
* Version: version number, i.e. a major version i.e. "12" for Node or "7.4" for PHP
* Date as YYYY-MM-DD
* Comment: this is optional
* ``[Key]:METADATA for a product (can be multiline)``
* This type is completely optional. You can use it to show general (version indepenendent) product infos. It will be shown as additional text for each version of a product
Al other lines, like empty lines, lines starting with special characters are ignored. I use the hash to mark comments.
Snippet:
# --------------------------------------------
centos:The CentOS Project
centos:website https://www.centos.org/
# --------------------------------------------
centos:6:2020-11-30
centos:7:2024-06-30
centos:8:2029-05-31
Example output:
$ check_eol centos 7
OK [centos 7] ends on 2024-06-30 ... 1586 days left
The CentOS Project
website https://www.centos.org/
Limit Info: warn below 365 days; critical below 90 days
#### Files
* check_eol-data/os.cfg - contains eol dates for debian, centos, ubuntu
* check_eol-data/check_eol-databases.cfg - Mariadb, PostgreSql
* check_eol-data/check_eol-program-languages.cfg - Php, NodeJS
You can add your custom products and dates - it just must match *check_eol-*.cfg*. You should use a custom file name that does not conflict with delivered files.
Suggestion: *check_eol-data/custom-[my category].cfg*
#### Version detection
If you use ``check_eol [product] [version]`` with an already known version in your monitoring check then the search for an eol date is done directly in the *cfg files (see above).
If you wan to let detect the version use the keyword *detect* next to a product i.e. ``check_eol php detect``.
What happens is is uses a detection for the version number. Therefor it calls a script named *check_eol-versiondetect/detect-[PRODUCT]* - in our example for php ist is *check_eol-versiondetect/detect-php*.
The scripts *check_eol-versiondetect/detect-[PRODUCT]* must return just a major version - or major and minor version without any other text.
You can add your own scripts for other non existing products. The only rule is: it must output the version only. Your [PRODUCT] and the returned version will be scanned in *check_eol-*.cfg* to perform the eol check.
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
"author": "Axel Hahn", "author": "Axel Hahn",
"tagline": "Icinga checks written in Bash", "tagline": "Icinga checks written in Bash",
"ignore": { "ignore": {
"files": ["20_Checks/zz_template_check_.md"], "files": ["zz_template_check_.md"],
"folders": ["99_Not_Ready"] "folders": ["99_Not_Ready"]
}, },
"html": { "html": {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment