102 lines
2.7 KiB
Bash
Executable File
102 lines
2.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
: << =cut
|
|
|
|
=head1 NAME
|
|
|
|
loolwsd - Monitor usage (open documents and active views) and memory
|
|
usage of libreoffice online
|
|
|
|
=head1 APPLICABLE SYSTEMS
|
|
|
|
LibreOffice Online or Collabora Online or Collabora Online Development
|
|
Edition
|
|
|
|
=head1 CONFIGURATION
|
|
|
|
Requires installed curl.
|
|
|
|
Set username, password of admin user and if required an url in your
|
|
munin-node configuration. Default url is
|
|
http://127.0.0.1:9980/lool/getMetrics
|
|
|
|
[loolwsd]
|
|
env.username <lool_admin>
|
|
env.password <lool_password>
|
|
env.url <lool_getmetrics_url>
|
|
|
|
You can set an administative user for loolwsd by invoking
|
|
|
|
loolconfig set-admin-password
|
|
|
|
=head1 AUTHOR
|
|
|
|
Copyright (C) 2020 Sebastian L. (https://momou.ch)
|
|
|
|
=head1 LICENSE
|
|
|
|
GPLv2
|
|
|
|
=head1 MAGIC MARKERS
|
|
|
|
#%# family=manual
|
|
#%# capabilities=autoconf
|
|
|
|
=cut
|
|
|
|
. "$MUNIN_LIBDIR/plugins/plugin.sh"
|
|
|
|
STATS_URL=${url:-"http://127.0.0.1:9980/lool/getMetrics"}
|
|
USERNAME="${username:-}"
|
|
PASSWORD="${password:-}"
|
|
|
|
case $1 in
|
|
autoconf)
|
|
if [ -x /usr/bin/loolwsd ]; then
|
|
if [ -x /usr/bin/curl ]; then
|
|
curl -s -f -m 2 -I -u "$USERNAME:$PASSWORD" "$STATS_URL" | grep -iq "Content-Type: text/plain" && echo "yes" && exit 0 || echo "no (invalid or empty response from loolwsd ($STATS_URL)" && exit 0
|
|
else
|
|
echo "no (/usr/bin/curl not found)" && exit 0
|
|
fi
|
|
else
|
|
echo "no (/usr/bin/loolwsd not found)"
|
|
exit 0
|
|
fi
|
|
;;
|
|
|
|
config)
|
|
echo "multigraph loolwsd_usage"
|
|
echo "graph_title Libreoffice Online Usage"
|
|
echo "graph_category appserver"
|
|
echo "graph_vlabel open documents / active views"
|
|
echo "graph_info This graph shows currently open documents and active views."
|
|
echo "graph_args --base 1000 --lower-limit 0"
|
|
echo "documents.label open documents"
|
|
echo "documents.info Current number of open documents"
|
|
echo "documents.min 0"
|
|
echo "active_views.label active views"
|
|
echo "active_views.info Current number of active views"
|
|
echo "active_views.min 0"
|
|
echo "multigraph loolwsd_memory"
|
|
echo "graph_title Libreoffice Online Memory Usage"
|
|
echo "graph_category appserver"
|
|
echo "graph_vlabel memory usage of libreoffice online"
|
|
echo "graph_info This graph shows currently used memory of libreoffice online."
|
|
echo "graph_args --base 1000 --lower-limit 0"
|
|
echo "memory.label used memory"
|
|
echo "memory.info Currently used memory of libreoffice online"
|
|
echo "memory.min 0"
|
|
exit 0
|
|
;;
|
|
|
|
esac
|
|
|
|
STATS=$(curl -s -f -u "$USERNAME:$PASSWORD" "$STATS_URL")
|
|
echo "multigraph loolwsd_usage"
|
|
echo "documents.value $(echo "$STATS" | grep kit_assigned_count | cut -d " " -f 2)"
|
|
echo "active_views.value $(echo "$STATS" | grep document_active_views_active_count_total | cut -d " " -f 2)"
|
|
echo "multigraph loolwsd_memory"
|
|
echo "memory.value $(echo "$STATS" | grep global_memory_used_bytes | cut -d " " -f 2)"
|