Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/charleszlu/murmur-info.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'murmur-munin.py')
-rwxr-xr-xmurmur-munin.py214
1 files changed, 0 insertions, 214 deletions
diff --git a/murmur-munin.py b/murmur-munin.py
deleted file mode 100755
index 99846cd..0000000
--- a/murmur-munin.py
+++ /dev/null
@@ -1,214 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8
-#
-# munin-murmur.py - "murmur stats (User/Bans/Uptime/Channels)" script for munin.
-# Copyright (c) 2014, Natenom / natenom@natenom.name
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the developer nor the names of its
-# contributors may be used to endorse or promote products derived
-# from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-
-#Path to Murmur.ice
-iceslice='/usr/share/Ice/slice/Murmur.ice'
-
-#Includepath for Ice, this is default for Debian
-iceincludepath="/usr/share/Ice/slice"
-
-#Murmur-Port (not needed to work, only for display purposes)
-serverport=64738
-
-#Port where ice listen
-iceport=6502
-
-#Ice Password to get read access.
-#If there is no such var in your murmur.ini, this can have any value.
-#You can use the values of icesecret, icesecretread or icesecretwrite in your murmur.ini
-icesecret="Ac8unPPK7u"
-
-#MessageSizeMax; increase this value, if you get a MemoryLimitException.
-# Also check this value in murmur.ini of your Mumble-Server.
-# This value is being interpreted in kibiBytes.
-messagesizemax="65535"
-
-#Exclude names containing these keywords from being counted as users.
-#Useful for excluding bots
-exclude_keywords=["Delay","BBUBot","PeiPeiBot"]
-
-import Ice, sys
-Ice.loadSlice("--all -I%s %s" % (iceincludepath, iceslice))
-
-props = Ice.createProperties([])
-props.setProperty("Ice.MessageSizeMax", str(messagesizemax))
-props.setProperty("Ice.ImplicitContext", "Shared")
-id = Ice.InitializationData()
-id.properties = props
-
-ice = Ice.initialize(id)
-ice.getImplicitContext().put("secret", icesecret)
-
-import Murmur
-
-if (sys.argv[1:]):
- if (sys.argv[1] == "config"):
- print 'graph_title Murmur (Port %s)' % (serverport)
- print 'graph_vlabel Count'
- print 'users.label Users'
- print 'usersnotauth.label Users (Not authenticated)'
- print 'uptime.label Uptime in days'
- print 'chancount.label Channelcount'
- print 'bancount.label Bans on server'
- print "state.label Mumble server status"
- print "version.label Mumble server version"
- sys.exit(0)
-
-
-try:
- meta = Murmur.MetaPrx.checkedCast(ice.stringToProxy("Meta:tcp -h 127.0.0.1 -p %s" % (iceport)))
-except Ice.ConnectionRefusedException:
- if (sys.argv[1:]):
- if (sys.argv[1] == "users"):
- print "users.value 0"
- ice.shutdown()
- sys.exit(1)
- elif (sys.argv[1] == "uptime"):
- print "uptime.value 0"
- ice.shutdown()
- sys.exit(1)
- elif (sys.argv[1] == "chancount"):
- print "chancount.value 0"
- ice.shutdown()
- sys.exit(1)
- elif (sys.argv[1] == "bancount"):
- print "bancount.value 0"
- ice.shutdown()
- sys.exit(1)
- elif (sys.argv[1] == "usersnotauth"):
- print "usersnotauth.value 0"
- ice.shutdown()
- sys.exit(1)
- elif (sys.argv[1] == "state"):
- print "state.value 0"
- ice.shutdown()
- sys.exit(1)
- elif (sys.argv[1] == "version"):
- print "version.value 0"
- ice.shutdown()
- sys.exit(1)
-
- print "users.value 0"
- print "uptime.value 0"
- print "chancount.value 0"
- print "bancount.value 0"
- print "usersnotauth.value 0"
- print "state.value 0"
- print "version.value 0"
- ice.shutdown()
- sys.exit(1)
-
-try:
- server=meta.getServer(1)
-except Murmur.InvalidSecretException:
- print 'Given icesecreatread password is wrong.'
- ice.shutdown()
- sys.exit(1)
-
-#count users
-users=server.getUsers()
-
-#count the number of users to exclude
-#also count not authenticated users (who are not excluded)
-excludedusers=0
-usersnotauth=0
-exluded=False
-for key in users.keys():
- for name_keyword in exclude_keywords:
- if (name_keyword in users[key].name):
- excludedusers+=1
- exluded=True
- if (users[key].userid == -1 and not exluded):
- usersnotauth+=1
- exluded=False
-
-#get the version number of the server
-mumbleversion=''
-dummy=''
-# more argument parsing for individual stats
-if (sys.argv[1:]):
- if (sys.argv[1] == "users"):
- print "users.value %i" % (len(users)-excludedusers)
- ice.shutdown()
- sys.exit(0)
- elif (sys.argv[1] == "uptime"):
- print "uptime.value %i" % (float(meta.getUptime()))
- ice.shutdown()
- sys.exit(0)
- elif (sys.argv[1] == "chancount"):
- print "chancount.value %i" % (len(server.getChannels())-1)
- ice.shutdown()
- sys.exit(0)
- elif (sys.argv[1] == "bancount"):
- print "bancount.value %i" % (len(server.getBans()))
- ice.shutdown()
- sys.exit(0)
- elif (sys.argv[1] == "usersnotauth"):
- print "usersnotauth.value %i" % (usersnotauth)
- ice.shutdown()
- sys.exit(0)
- elif (sys.argv[1] == "state"):
- print "state.value 1"
- ice.shutdown()
- sys.exit(0)
- elif (sys.argv[1] == "version"):
- print "version.value %i.%i.%i" % (meta.getVersion()[0],meta.getVersion()[1],meta.getVersion()[2])
- ice.shutdown()
- sys.exit(0)
- elif (sys.argv[1] == "useronline" and len(sys.argv) > 2):
- user_online_flag = False
- for key in users.keys():
- if(sys.argv[2].lower() == users[key].name.lower()):
- user_online_flag = True
- if (user_online_flag):
- print "useronline.value 1"
- else:
- print "useronline.value 0"
- ice.shutdown()
- sys.exit(0)
- # TODO
-
-# if no command line argument is passed in
-print "users.value %i" % (len(users)-excludedusers)
-print "uptime.value %i" % (float(meta.getUptime()))
-print "chancount.value %i" % (len(server.getChannels())-1)
-print "bancount.value %i" % (len(server.getBans()))
-print "usersnotauth.value %i" % (usersnotauth)
-print "state.value 1"
-print "version.value %i.%i.%i" % (meta.getVersion()[0],meta.getVersion()[1],meta.getVersion()[2])
-
-ice.shutdown()