Version 2.2.1
This commit is contained in:
@@ -24,20 +24,47 @@ def discover_nextcloud_info(section):
|
||||
def check_nextcloud_info(params, section):
|
||||
for key in section:
|
||||
if key == "nextcloud":
|
||||
levels_free_space = params["levels_free_space"]
|
||||
levels_number_of_files = params["levels_number_of_files"]
|
||||
status = section[key]["status"]
|
||||
free_space = section[key]["freespace"]
|
||||
version = section[key]["version"]
|
||||
php_version = section[key]["php_version"]
|
||||
webserver = section[key]["webserver"]
|
||||
num_files = section[key]["number_files"]
|
||||
num_shares = section[key]["number_shares"]
|
||||
|
||||
# create graph for number of files and shares
|
||||
yield(Metric("nc_num_files", num_files))
|
||||
yield(Metric("nc_num_shares", num_shares))
|
||||
|
||||
# create overall result
|
||||
summary = f"Status is {status}"
|
||||
details = f"Version is {version}\nNumber of files: {num_files}\nNumber of shares: {num_shares}\n"
|
||||
details = f"Nextcloud version: {version}\nPHP version: {php_version}\nWebserver: {webserver}\n\nNumber of files: {num_files}\nNumber of shares: {num_shares}\n\nFree space on disk: {render.bytes(free_space)}\n"
|
||||
if status == "ok":
|
||||
state = State.OK
|
||||
else:
|
||||
state = State.CRIT
|
||||
yield Result(state=state, summary=summary, details=details)
|
||||
|
||||
# Create result for free space on disk
|
||||
# Levels for free space are given in GBytes, we have to adjust this here
|
||||
warn, crit = levels_free_space
|
||||
warn = warn*1024*1024*1024
|
||||
crit = crit*1024*1024*1024
|
||||
state = getStateLower((warn, crit), free_space)
|
||||
# create graph for free space on disk
|
||||
yield(Metric("nc_free_space", free_space, levels=(warn,crit)))
|
||||
notice = f"Remaining free space on disk: {render.bytes(free_space)}"
|
||||
if state != State.OK:
|
||||
yield(Result(state=state, notice=notice))
|
||||
|
||||
# Create result for number of files
|
||||
warn, crit = levels_number_of_files
|
||||
state = getStateUpper((warn, crit), num_files)
|
||||
notice = f"Number of files: {num_files}"
|
||||
if state != State.OK:
|
||||
yield(Result(state=state, notice=notice))
|
||||
elif key == "users":
|
||||
num_users = section[key]["number"]
|
||||
num_active_last1hour = section[key]["active_last1hour"]
|
||||
@@ -82,7 +109,10 @@ def parse_nextcloud_info_section(string_table):
|
||||
}
|
||||
params_list = [
|
||||
"NC_Version",
|
||||
"NC_Freespace",
|
||||
"NC_Status",
|
||||
"NC_Webserver",
|
||||
"NC_PHP_Version",
|
||||
"NC_Num_Users",
|
||||
"NC_Num_Files",
|
||||
"NC_Num_Shares",
|
||||
@@ -102,8 +132,14 @@ def parse_nextcloud_info_section(string_table):
|
||||
value = line[1]
|
||||
if param == "NC_Version":
|
||||
parsed_data["nextcloud"]["version"] = value
|
||||
elif param == "NC_Freespace":
|
||||
parsed_data["nextcloud"]["freespace"] = float(value)
|
||||
elif param == "NC_Status":
|
||||
parsed_data["nextcloud"]["status"] = value
|
||||
elif param == "NC_Webserver":
|
||||
parsed_data["nextcloud"]["webserver"] = value
|
||||
elif param == "NC_PHP_Version":
|
||||
parsed_data["nextcloud"]["php_version"] = value
|
||||
elif param == "NC_Num_Files":
|
||||
parsed_data["nextcloud"]["number_files"] = int(value)
|
||||
elif param == "NC_Num_Shares":
|
||||
@@ -142,6 +178,8 @@ register.check_plugin(
|
||||
check_function=check_nextcloud_info,
|
||||
check_default_parameters={
|
||||
"levels_apps_with_updates_available": (1, 2),
|
||||
"levels_free_space": (8.0, 4.0),
|
||||
"levels_number_of_files": (100000, 250000),
|
||||
},
|
||||
check_ruleset_name="nextcloud_info",
|
||||
)
|
||||
|
||||
@@ -32,7 +32,7 @@ def check_nextcloud_users(item, params, section):
|
||||
last_login_human = section[item][4]
|
||||
last_login_since = section[item][5]
|
||||
free_space = quota_total_bytes - quota_used_bytes
|
||||
print(free_space)
|
||||
#print(free_space)
|
||||
levels_quota_used = params["levels_users_quota_used"]
|
||||
levels_free_space = params["levels_users_free_space"]
|
||||
if last_login_human == "never":
|
||||
|
||||
Reference in New Issue
Block a user