MKP 0.9.9, section mailcow_mailboxes completed
This commit is contained in:
@@ -219,18 +219,18 @@ def getMailcowInfo(headers, verify, base_url):
|
||||
|
||||
'''
|
||||
Output is as follows:
|
||||
mailbox name email address used for login
|
||||
active 1 --> active, 0 --> not active
|
||||
creation date "None" if ???
|
||||
last modified date "None" if never modified
|
||||
name display name
|
||||
number of messages
|
||||
percent in use quota used, rounded to full percents
|
||||
quota max quota in bytes
|
||||
quota used quota used in bytes
|
||||
last imap login seconds since epoch, 0 if never logged inin seconds since epoch
|
||||
last pop3 login seconds since epoch, 0 if never logged in
|
||||
last smtp login seconds since epoch, 0 if never logged in
|
||||
0 mailbox name email address used for login
|
||||
1 active 1 --> active, 0 --> not active
|
||||
2 creation date "None" if ???
|
||||
3 last modified date "None" if never modified
|
||||
4 name display name
|
||||
5 number of messages
|
||||
6 percent in use quota used, rounded to full percents
|
||||
7 quota max quota in bytes
|
||||
8 quota used quota used in bytes
|
||||
9 last imap login seconds since epoch, 0 if never logged in
|
||||
10 last pop3 login seconds since epoch, 0 if never logged in
|
||||
11 last smtp login seconds since epoch, 0 if never logged in
|
||||
|
||||
Example:
|
||||
user1@dom1.de;1;2022-04-29 14:29:34;2022-04-29 14:29:34;Sarah;2433;2;21474836480;495481374;1692520168;0;1692281537
|
||||
@@ -266,17 +266,17 @@ def doCmkOutputMailcow(version, num_domains, num_mailboxes, num_global_messages)
|
||||
|
||||
'''
|
||||
Output is as follows:
|
||||
domain_name
|
||||
active 1 --> active, 0 --> not active
|
||||
creation date "None" if ???
|
||||
last modified date "None" if never modified
|
||||
max number mailboxes
|
||||
number of mailboxes
|
||||
max number of aliases
|
||||
number of aliases
|
||||
total number of messages
|
||||
total number of bytes used in bytes
|
||||
max quota in bytes
|
||||
0 domain_name
|
||||
1 active 1 --> active, 0 --> not active
|
||||
2 creation date "None" if ???
|
||||
3 last modified date "None" if never modified
|
||||
4 max number mailboxes
|
||||
5 number of mailboxes
|
||||
6 max number of aliases
|
||||
7 number of aliases
|
||||
8 total number of messages
|
||||
9 total number of bytes used in bytes
|
||||
10 max quota in bytes
|
||||
|
||||
Example:
|
||||
dom1.de;1;2022-04-23 22:54:57;None;10;0;400;6;0;0;10737418240
|
||||
|
||||
18
local/share/check_mk/checkman/mailcow_mailboxes
Normal file
18
local/share/check_mk/checkman/mailcow_mailboxes
Normal file
@@ -0,0 +1,18 @@
|
||||
title: Mailcow: Usage per Mailbox, Quota and Number of Messages
|
||||
agents: linux
|
||||
catalog: unsorted
|
||||
license: GPL
|
||||
distribution: check_mk
|
||||
description:
|
||||
Tested with Mailcow versions 2022-07a and higher (use at your own risk with lower versions).
|
||||
Tested only with fully dockerized Mailcow instances.
|
||||
You have to provide at least the hostname/IP of your Mailcow server and an API key.
|
||||
Got to configuration settings and create a new API key (read-only access is sufficient).
|
||||
Allow API access to at least your CheckMK server IP address.
|
||||
Shows several information about a Mailcow mailbox, e.g. number of messages and quota.
|
||||
The check will raise WARN/CRIT if quota usage is above the configurable levels.
|
||||
The check will raise WARN/CRIT if number of messages is above the configurable levels.
|
||||
item:
|
||||
mailboxname
|
||||
inventory:
|
||||
one service is created for each mailbox
|
||||
@@ -57,4 +57,16 @@ metric_info["mailcow_domains_configured_mailboxes"] = {
|
||||
"title": _("Number of Configured Mailboxes"),
|
||||
"unit": "count",
|
||||
"color": "24/b",
|
||||
}
|
||||
|
||||
metric_info["mailcow_mailboxes_used_quota"] = {
|
||||
"title": _("Mailbox Quota Used"),
|
||||
"unit": "%",
|
||||
"color": "24/a",
|
||||
}
|
||||
|
||||
metric_info["mailcow_mailboxes_messages"] = {
|
||||
"title": _("Number of Messages"),
|
||||
"unit": "count",
|
||||
"color": "24/b",
|
||||
}
|
||||
@@ -22,6 +22,17 @@ perfometer_info.append({
|
||||
],
|
||||
})
|
||||
|
||||
perfometer_info.append({
|
||||
"type": "stacked",
|
||||
"perfometers": [
|
||||
{
|
||||
"type": "linear",
|
||||
"segments": ["mailcow_mailboxes_used_quota"],
|
||||
"total": 100.0,
|
||||
},
|
||||
],
|
||||
})
|
||||
|
||||
#perfometer_info.append({
|
||||
# "type": "stacked",
|
||||
# "perfometers": [
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
from cmk.gui.i18n import _
|
||||
from cmk.gui.plugins.wato import (
|
||||
CheckParameterRulespecWithItem,
|
||||
rulespec_registry,
|
||||
RulespecGroupCheckParametersApplications
|
||||
)
|
||||
from cmk.gui.valuespec import (
|
||||
Dictionary,
|
||||
ListChoice,
|
||||
TextAscii,
|
||||
Percentage,
|
||||
Tuple,
|
||||
Float,
|
||||
Integer
|
||||
)
|
||||
|
||||
def _item_spec_mailcow_mailboxes():
|
||||
return TextAscii(
|
||||
title=_("Domain")
|
||||
)
|
||||
|
||||
def _parameter_spec_mailcow_mailboxes():
|
||||
return Dictionary(
|
||||
elements=[
|
||||
("levels_mailcow_mailboxes_quota_used", Tuple(
|
||||
title=_("Mailcow mailbox quota usage for storage"),
|
||||
elements=[
|
||||
Percentage(
|
||||
title=_("Warning at"),
|
||||
default_value=65.0,
|
||||
),
|
||||
Percentage(
|
||||
title=_("Critical at"),
|
||||
default_value=85.0,
|
||||
)
|
||||
],
|
||||
)),
|
||||
("levels_mailcow_mailboxes_num_messages", Tuple(
|
||||
title=_("Number of messages in mailbox"),
|
||||
elements=[
|
||||
Integer(
|
||||
title=_("Warning at"),
|
||||
default_value=1000,
|
||||
),
|
||||
Integer(
|
||||
title=_("Critical at"),
|
||||
default_value=2500,
|
||||
)
|
||||
],
|
||||
)),
|
||||
],
|
||||
)
|
||||
|
||||
rulespec_registry.register(
|
||||
CheckParameterRulespecWithItem(
|
||||
check_group_name="mailcow_mailboxes",
|
||||
group=RulespecGroupCheckParametersApplications,
|
||||
match_type="dict",
|
||||
item_spec=_item_spec_mailcow_mailboxes,
|
||||
parameter_valuespec=_parameter_spec_mailcow_mailboxes,
|
||||
title=lambda: _("Levels for Mailcow mailboxes"),
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user