root / plugins / coturn / coturn_sessions @ e22acbdd
Historique | Voir | Annoter | Télécharger (2,49 ko)
| 1 | 0fbb8011 | Sebastian Liechti | #!/bin/sh |
|---|---|---|---|
| 2 | |||
| 3 | set -e |
||
| 4 | |||
| 5 | : << =cut |
||
| 6 | |||
| 7 | =head1 NAME |
||
| 8 | |||
| 9 | e22acbdd | Sebastian L | coturn_sessions - Simple plugin to monitor sessions on coturn server |
| 10 | 0fbb8011 | Sebastian Liechti | |
| 11 | =head1 CONFIGURATION |
||
| 12 | |||
| 13 | This plugin requires a password set in /etc/turnserver.conf for telnet |
||
| 14 | cli access. A telnet client has to be installed. Optionally you can |
||
| 15 | specify the port of the cli interface. |
||
| 16 | |||
| 17 | [coturn_sessions] |
||
| 18 | e22acbdd | Sebastian L | env.password VERYSECUREPASSWORD |
| 19 | 0fbb8011 | Sebastian Liechti | env.port PORT |
| 20 | |||
| 21 | =head1 AUTHOR |
||
| 22 | |||
| 23 | e22acbdd | Sebastian L | Copyright (C) 2020 Sebastian L. (https://momou.ch) |
| 24 | 0fbb8011 | Sebastian Liechti | |
| 25 | =head1 LICENSE |
||
| 26 | |||
| 27 | GPLv2 |
||
| 28 | |||
| 29 | =head1 MAGIC MARKERS |
||
| 30 | |||
| 31 | #%# family=manual |
||
| 32 | #%# capabilities=autoconf |
||
| 33 | |||
| 34 | =cut |
||
| 35 | |||
| 36 | . "$MUNIN_LIBDIR/plugins/plugin.sh" |
||
| 37 | |||
| 38 | cliport=${port:-5766}
|
||
| 39 | e22acbdd | Sebastian L | clipassword=${password:-}
|
| 40 | 0fbb8011 | Sebastian Liechti | |
| 41 | get_coturn_stats() {
|
||
| 42 | echo "open 127.0.0.1 $cliport" |
||
| 43 | sleep 1 |
||
| 44 | echo "$clipassword" |
||
| 45 | sleep 1 |
||
| 46 | for i in udp tcp dtls tls |
||
| 47 | do |
||
| 48 | echo "pu $i" |
||
| 49 | sleep 1 |
||
| 50 | done |
||
| 51 | } |
||
| 52 | |||
| 53 | pick_line() {
|
||
| 54 | local result |
||
| 55 | result=$(echo "$1" | sed -n "$2"p ) |
||
| 56 | echo "${result:-"U"}"
|
||
| 57 | } |
||
| 58 | |||
| 59 | |||
| 60 | case $1 in |
||
| 61 | autoconf) |
||
| 62 | if [ -x /usr/bin/turnserver ]; then |
||
| 63 | if [ -z "$(command -v telnet)" ]; then |
||
| 64 | echo "no (telnet not found)" |
||
| 65 | exit 0 |
||
| 66 | else |
||
| 67 | echo "yes" |
||
| 68 | exit 0 |
||
| 69 | fi |
||
| 70 | else |
||
| 71 | echo "no (/usr/bin/turnserver not found)" |
||
| 72 | exit 0 |
||
| 73 | fi |
||
| 74 | ;; |
||
| 75 | config) |
||
| 76 | |||
| 77 | echo "graph_title Sessions on coturn server" |
||
| 78 | echo "graph_vlabel turn sessions by protocols" |
||
| 79 | echo "graph_info This graph shows active sessions sorted by different protocols on the coturn server." |
||
| 80 | echo "graph_args --base 1000 --lower-limit 0" |
||
| 81 | echo "udp_sessions.label udp sessions" |
||
| 82 | echo "udp_sessions.draw AREASTACK" |
||
| 83 | echo "udp_sessions.info Current number of udp sessions" |
||
| 84 | echo "udp_sessions.min 0" |
||
| 85 | echo "tcp_sessions.label tcp sessions" |
||
| 86 | echo "tcp_sessions.draw AREASTACK" |
||
| 87 | echo "tcp_sessions.info Current number of tcp sessions" |
||
| 88 | echo "tcp_sessions.min 0" |
||
| 89 | echo "dtls_sessions.label dtls sessions" |
||
| 90 | echo "dtls_sessions.draw AREASTACK" |
||
| 91 | echo "dtls_sessions.info Current number of dtls sessions" |
||
| 92 | echo "dtls_sessions.min 0" |
||
| 93 | echo "tls_sessions.label tls sessions" |
||
| 94 | echo "tls_sessions.draw AREASTACK" |
||
| 95 | echo "tls_sessions.info Current number of tls sessions" |
||
| 96 | echo "tls_sessions.min 0" |
||
| 97 | |||
| 98 | exit 0 |
||
| 99 | ;; |
||
| 100 | |||
| 101 | esac |
||
| 102 | |||
| 103 | SESSIONS=$(get_coturn_stats | telnet 2> /dev/null | grep "Total sessions: " | sed 's/ Total sessions: //') |
||
| 104 | |||
| 105 | echo "udp_sessions.value $(pick_line "$SESSIONS" 1)" |
||
| 106 | echo "tcp_sessions.value $(pick_line "$SESSIONS" 2)" |
||
| 107 | echo "dtls_sessions.value $(pick_line "$SESSIONS" 3)" |
||
| 108 | echo "tls_sessions.value $(pick_line "$SESSIONS" 4)" |
