Skip to content


2.3 - 2022/01/23

CLI clean : rename severity label NONE to OK
CLI clean : removed alert state from CLI output
CLI clean : mysql: send to debug instead of log for connection error
updated certificate module : new option (name) , simplified thresholds, new attributes reported, timeout
url : check for expected pattern in response header in addition to response page
folder : new targets : permission, uid, gid

2.2 - 2021/12/19

feature: CLI output cosmetic
feature: new metrology fields (severity, alert) for human display 
feature: add --pager option to CLI to limit pagers (for tests , or cron ...)
change: previous CLI option  --pager is now --pager_enable
change: previous CLI option  --pagertest is now --pager_test
feature: module Load uses os.cpu_count to estimate alert
feature :  start_offset - new global option to delay start / spread the load on metrology servers (cron mode)
bug: cmt_severity is int ; no quote in metrology
bug: mutliline field values in elastic are now sent as single line (separator = ;)

2.1 - 2021/11/28

feat: display alert transitions ( in CLI output
feat: http_proxy and https_proxy option in global, metrology and pager entries 
feat: http_code option for metrology/pager entries (success response code)
refactor: rewrite Pager module ; per pager rate_limit ; managed/allnotifications mode
feat: pager rate_limit option by pager/in pager configuration only
feat: nopersist ARG for CLI : ignore previous run, hysteresis/delay for alerts
bug: module disks : missing include for severity handling
bug: incorrect version display (2.0 , expected 2.1beta>2.1)
bug: incorrect handling of severity_max  for severity == NOTICE
breaking: removed old alerting model (alert/warn/notice) ; severity/alert only

2.1beta - 2021/11/21

feat: alert modele rewrite : cmt_severity, cmt_alert
feat: send_rawdata new option per metrology (send multi-events events) ; default no
feat: rawdata_prefix new option (default: raw) : prefix for fields sent to metrology, for rawdata/multievent 
feat: rawdata events are named {rawdata_prefix}_{checkname}_{keyname}
feat: single_measurement new influx option ;  send all events as cmt measurement (default) or per module measurement
bug: influxdb ; better rebalance tags/fields for cardinality
bug: multiline datapoints are not sent to influx ; breaks line protocol
deprecated: old alerting model (alert/warn/notice) ; severity/alert only

2.0 - 2021/11/12

module URL : new option username/password for basic auth
module URL : new option http_code (default 200) expected in reply
module URL : new option pattern_reject for pattern which MUST NOT be present in response
module FOLDER : new option send_list to send file listing with size, date, perms, uid/gid
(beta) new module SENDFILE - sends an external json file to metrology servers
(beta) new module MYSQLDATA
new global option: business_hours (default: 08:30:00 17:30:00) for timerange, bh/nbh

2.0 beta - 2021/10/26

feature: display skipped tests
feature(beta): pagerduty (managed) mode
added : severity_max + cmt_severity (critical, error, warning, notice, none )
added option ssl_verify to http targets influx/graylog/elasticseach
bug : CLI output displays realtime results before hysteris/up/down processing(pager feature only)
bug : influxdb/batch mode when mutliple targets
bug : tags key/value in influxdb must be sent as string
removed modules section from config
removed alert_delay in module config
removed alert_max_level in module config
removed frequency in module_config

1.8.2 - 2021/07/24

bugfixe : influxdb - password variable mismatch (typo)
bugfixe : influxdb - double quote for string field values only
feature : influxdb - add send_tags option
minor : check if unknown module requested in ARGS

1.8.1 - 2021/07/18

bugfix - batch send metrology (influx) only if --report/cron
bugfix - added double quotes around tags values in Influxdb line protocol
feature - added cmt_ prefix before Influx measurement names (to avoid collision in single db usecase)
bugfix - mysql module - slave status retrieval
feature - mysql module - credentials in defaults-file only (security)
feature - mysql module - standard indicators

1.8beta - 2021/07/11 BETA

feature: module mysql

1.7 - 2021/07/11

feature: added influxdb V1/V2 metrology server support ; batch mode, V1/V2, timestamp options...

1.7beta - 2021/05/15

bugfix: module folder : filter_regexp missing when not recursive
bugfix: module folder : display name in ouputs

1.6.1 - 2021/04/18

bugfix : folder module : has_recent, has_old mismatch
feature: folder module : check valid targets
feature: send cmt_version in metrology events

1.6 - 2021/04/04

feature: ElasticSearch 6/7 remote metrology server type
feature: module folder : has_recent, has_old targets
feature: module load : alert on threshold1/5/15 in config
feature: module swap : alert on threshold percentage
feature: module memory : alert on threshold percentage
feature: module boottime : alert on threshold days
feature: module cpu : alert on threshold percentage
feature: updated CLI color output
deprecated : cmt_alert/cmt_warning/cmt_notice ; cmt_notification=1/2/3 instead

1.5 - 2021/03/28

feature: display config_file in report header
feature: tags/key-value option in global/check conf sections

1.4.0 - 2021/03/21

feature: root_required configuration for checks when root privilege is mandatory
feature: module folder: send_content option in folder module
feature: module url: timeout and http proxy options : http_proxy, https_proxy, noenv
feature: --check option for specific checkname filtering when run as CLI
feature: new module send ; pipe a result to cmt for immediate send to metrology

1.3.1 - 2021/01/10

bugfix  : module mount ; parse all modules (not disk only)
bugfix  : ansible role / copy src and modules to /opt/cmt/src
bugfix  : handle http remote conf exception
feature : added alert_max_level:none option (along with alert, warn, notice)
feature : module folder with regexp/extension option
feature : module process with seach_arg option
quality: more documentation

1.3.0 - 2021/01/02

bugfix: confd_load : ssl_verify, redirect set to False
feature: cmt_check : contains the name of the check instead of the module name (deprecated)
feature: cmt_notification = alert + warn + notice
feature: GELF fields without quote for numerical values => no more elastic index templates.
quality: code refactor/split modules ; lint

1.2.1 - 2020/12/20

bugfix: cmt.PAGER TIMEOUT
feature: Persist remote conf
feature: remoteconf type (/txt/group_node.txt vs api )

1.2.0 - 2020/12/13

aleternate conf format : 'module' top entries with checks below
refactor to

1.1.1 - 2020/12/09

bug fixe - parse error if empty remote conf
build binary for debian 8 64bits

1.1.0 - 2020/12/06

x module_certificate
x module_folder :bug in dir count ; option no_store ; handle single_file
x ARG : --cron
x nicer output (summary, humanize)
x CONF : frequency (--cron) for module and checks
x module socket

1.0.0 - 2020/11/29

x conf : conf.d on/off : global load_confd yes/no
x remote conf : send group.node as parameters (or as file.txt )  
x ARG : --debug2
x ARG : --no-pager-rate-limit
x ARG : --persist
x give persist to modules
x default homedir = /opt/cmt
x conf: enable_pager for check
x Pager events contain all alert/warn/notice messages
x hysteresis up (alert_delay in global/module/check)
x cmt_node_env [prod,form, pre,qual, test, dev]
x cmt_node_role: string
x cmt_node_location
x Pattern optionnal in module URL
x removed module_*_status checkItems (not needed any more ; use alert/warning/notice)
x module url : add "host" option (virtualhost header)


x new alert/warn/notice ; simplified ChecKItems
x class Persist()
x Secu : injection de config/parametres dans appels shell ; subprocess
x max execution time in conf
x remote conf : http://host/conf/..../  (+group_node.txt if trailing /) 
x level alert/warn/notice by framework


x  major redesign - new config with dict ; no uuid ; single MAP

1.0.0.alpha - Breaking changes

x new modules structure in config ; checks deprecated
x timerange + enable option in global/modules/check
x ARG : --devmode
x conf: global send_to_pager (timerange, default = no)
x conf: teams channel : enable 
x global : field: cmt_message ; compact status
x cli: compact display ; status only ;   ARG : compact display option (--status)
x uuid/id in conf and events ; uuid = ; id = check specific value
x check objet given to (not created by) each Chech module
x config merge more clever !
x conf_url option : remote config to be fetched and  merged into main/additional configs



x (0.9) bug : binary version find local conf.yml
x (0.9) feature : recursive folder check option (recursive: yes/no)
x (0.9) Documentation MkDocs (framzwork)
x => 2020-10-25 - PUSH GITHUB v0.9


x (0.8) refactor : split checks in separate files (2020/10/20)


x (0.7) accept missing check entries in configuration (urls, disks, ...) : MODULE_LIST
x (0.7) checks : folders
x test pyinstaller (0.7 : 10 MB)


x (0.6) abort if missing config file
x (0.6) abort if missing item 'checks' in config file
x (0.6) accept missing conf.d
x (0.6) accept missing graylog_servers_* entries in config
x (0.6) timeout when sending http/gelf to graylog + suspended if previous errors
x (0.6) timeout when sending to Teams
x (0.6) conf option : --conf filename


x (0.5) check_url : requests : verify = False, allow_redirects = False
x (0.5) check_url : requests : requests.packages.urllib3.disable_warnings()
x (0.5) check_url : with response time  cmt_url_msec (int)
x (0.5) check_url : verify options for each URL
x (0.5) option : available (process, mounts)
x (0.5) check_mounts : with available option
x (0.5) check_pings


x (0.4) check_process

x conf YAML
x cli / argparse
x send data to graylog
x send alerts to Teams
x option --report
x option --alert
x log with timestamp  (for cron.log)
x alert vs global_alert
x name group/node
x gitlab,, conf.yml.ori
x find conf.yml basedir > commit V 0.1
x requirements.txt : pyyaml, requests, psutil
x config multi-file for  ansible
x get_config_or_default()
x debug() option and function
x output to gelf over http
x added cmt_check/cmt_node/cmt_group fields
x teams alerts rate limited in configuration
x error if empty list in conf (merge + checks)
x logs : /var/log/cmt/cmt.log + logrotate (ansible)
x FullLoader > SafeLoader
x send alert for URL failed
x ansible role centos 7, centos 8
x option --list-modules
x cli print version
x cli print available modules
x nicer cli print format with  units (MB, GB, % ...)