aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornico <nico@magicbroccoli.de>2018-09-06 17:28:49 +0200
committernico <nico@magicbroccoli.de>2018-09-06 17:28:49 +0200
commit72acc570e66c580f08b717579a4d4879d319ff25 (patch)
treeceb9c8fae352895c426a1ec30560d856e2939211
parentf7a99afdca61f17ae30c8a73194498c7f6281ec7 (diff)
plugin description mprovements
+ added munin specific header with magic markers added + added value info to all values + added autoconf capability * sessions are now closed after use * moved allocation of url, username and password into plugin class
-rw-r--r--nextcloud_shares36
-rw-r--r--nextcloud_users33
2 files changed, 61 insertions, 8 deletions
diff --git a/nextcloud_shares b/nextcloud_shares
index cf75234..1dc63dd 100644
--- a/nextcloud_shares
+++ b/nextcloud_shares
@@ -1,13 +1,22 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
+#
+# Plugin to monitor the amount shares to and from the specified nextcloud instance
+#
+# Parameters understood:
+# config (required)
+# autoconf (optional - used by munin-config)
+#
+# Magic markers - optional - used by installation scripts and
+# munin-config:
+#
+# #%# family=manual
+# #%# capabilities=autoconf
import re
import requests
import sys
import os
-URL = os.environ['url']
-auth = (os.environ['username'], os.environ['password'])
-
class NextcloudShares:
if (sys.argv.__len__() == 2) and (sys.argv[1] == "config"):
@@ -18,13 +27,31 @@ class NextcloudShares:
print('graph_category nextcloud')
print('num_fed_shares_received.label federated shares recieved')
+ print('num_fed_shares_received.info current total of federated shares recieved')
print('num_fed_shares_sent.label federated shares sent')
+ print('num_fed_shares_received.info current total of federated shares sent')
print('num_shares.label total number of shares')
+ print('num_shares.info current over all total of shares')
print('num_shares_groups.label group shares')
+ print('num_shares_groups.info current total of group shares')
print('num_shares_link.label link shares')
+ print('num_shares_link.info current total of shares through a link')
print('num_shares_link_no_password.label link shares without a password')
+ print('num_shares_link_no_password.info current total of shares through a link without a password protection')
print('num_shares_user.label user shares')
+ print('num_shares_user.info current total of user shares')
+ elif (sys.argv.__len__() == 2) and (sys.argv[1] == 'autoconf'):
+ # check host if env variables are set
+ try:
+ if None not in {os.environ['url'], os.environ['username'], os.environ['password']}:
+ print('yes')
+ except KeyError as e:
+ print('no configuration options are missing: %s' % e)
else:
+ # read the configuration from munin environment
+ URL = os.environ['url']
+ auth = (os.environ['username'], os.environ['password'])
+
# init requests session with specific header and credentials
s = requests.Session()
s.auth = auth
@@ -33,8 +60,9 @@ class NextcloudShares:
# request data from api
r = s.get(URL)
- # if status code is successful continue
+ # if status code is successful close connection and continue
if r.status_code == 200:
+ s.close()
api_response = r.json()
shares = api_response['ocs']['data']['nextcloud']['shares']
diff --git a/nextcloud_users b/nextcloud_users
index e311a12..445a6db 100644
--- a/nextcloud_users
+++ b/nextcloud_users
@@ -1,25 +1,49 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
+#
+# Plugin to monitor the amount of users sucessfully logging in to the specified nextcloud instance
+#
+# Parameters understood:
+# config (required)
+# autoconf (optional - used by munin-config)
+#
+# Magic markers - optional - used by installation scripts and
+# munin-config:
+#
+# #%# family=manual
+# #%# capabilities=autoconf
import requests
import sys
import os
-URL = os.environ['url']
-auth = (os.environ['username'], os.environ['password'])
-
class NextcloudUsers:
if (sys.argv.__len__() == 2) and (sys.argv[1] == "config"):
print('graph_title Nextcloud User Activity')
print('graph_args --base 1024 -l 0')
+ print('graph_printf %.0lf')
print('graph_vlabel connected users')
print('graph_info graph showing the number of connected user')
print('graph_category nextcloud')
print('last5minutes.label last 5 minutes')
+ print('last5minutes.info users connected in the last 5 minutes')
print('last1hour.label last hour')
+ print('last1hour.info users connected in the last hour')
print('last24hours.label last 24 hours')
+ print('last24.hours.info users connected in the last 24 hours')
+ elif (sys.argv.__len__() == 2) and (sys.argv[1] == 'autoconf'):
+ # check host if env variables are set
+ try:
+ if None not in {os.environ['url'], os.environ['username'], os.environ['password']}:
+ print('yes')
+ except KeyError as e:
+ print('no configuration options are missing: %s' % e)
else:
+ # read the configuration from munin environment
+ URL = os.environ['url']
+ auth = (os.environ['username'], os.environ['password'])
+
# init requests session with specific header and credentials
s = requests.Session()
s.auth = auth
@@ -28,8 +52,9 @@ class NextcloudUsers:
# request data from api
r = s.get(URL)
- # if status code is successful continue
+ # if status code is successful close connection and continue
if r.status_code == 200:
+ s.close()
api_response = r.json()
users = api_response['ocs']['data']['activeUsers']