mirror of
https://github.com/munin-monitoring/contrib.git
synced 2018-11-08 00:59:34 +01:00
Save with UNIX line breaks
This commit is contained in:
parent
73e23cb7ba
commit
81fd4c97c3
@ -1,153 +1,153 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Munin plugin to monitor oracle connections w/o DBD::Oracle, or perl for that
|
||||
# matter ;-)
|
||||
#
|
||||
# Author: Kevin Kunkel (kunkel.kevin@gmail.com) on December 11, 2007
|
||||
# (Based off the perl munin plugin by Joan Carles Soler)
|
||||
#
|
||||
# Licenced under GPL v2.
|
||||
#
|
||||
# Usage:
|
||||
#
|
||||
# If required, give username, password and/or oracle server
|
||||
# host through environment variables.
|
||||
#
|
||||
# Parameters:
|
||||
# autoconf
|
||||
# config (required)
|
||||
#
|
||||
# Config variables:
|
||||
#
|
||||
# ORACLE_SID - Which database to use. Defaults to orcl
|
||||
# oracle_user - A oracle user account with read permission to
|
||||
# the v$session view. Defaults to
|
||||
# 'oracle'. Anyway, Munin must be told which user
|
||||
# this plugin should be run as.
|
||||
# oracle_pass - The corresponding password, if
|
||||
# applicable. Default to undef.
|
||||
#
|
||||
# SHOW_ORACLE_USERS - If set to 1 show usernames and num. of connections.
|
||||
# Default is not show users (0).
|
||||
# Magic markers
|
||||
#%# family=auto
|
||||
#%# capabilities=autoconf
|
||||
|
||||
|
||||
# Hard-code environment variables here
|
||||
|
||||
#oracle_user=
|
||||
#oracle_pass=
|
||||
#ORACLE_SID=
|
||||
#ORACLE_HOME=
|
||||
#SHOW_ORACLE_USERS=
|
||||
|
||||
# End variable hard-code
|
||||
|
||||
|
||||
|
||||
if [ -z "$ORACLE_HOME" ] ; then
|
||||
# Adjust to your oratab locations
|
||||
for oratab in /var/opt/oracle/oratab /etc/oratab
|
||||
do
|
||||
[ ! -f $oratab ] && continue
|
||||
IFS=:
|
||||
while read SID HOME STARTUP;
|
||||
do
|
||||
if [ "$SID" = "*" ]
|
||||
then
|
||||
ORACLE_HOME=$HOME
|
||||
break
|
||||
fi
|
||||
done < $oratab
|
||||
[ -n "$ORACLE_HOME" ] && break
|
||||
break
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -z "$ORACLE_SID" ]
|
||||
then
|
||||
ORACLE_SID="orcl"
|
||||
fi
|
||||
|
||||
if [ -z "$oracle_user" ]
|
||||
then
|
||||
oracle_user="oracle"
|
||||
fi
|
||||
|
||||
if [ -z "$SHOW_ORACLE_USERS" ]
|
||||
then
|
||||
SHOW_ORACLE_USERS=0
|
||||
else
|
||||
if [ $SHOW_ORACLE_USERS -ne 1 ]
|
||||
then
|
||||
SHOW_ORACLE_USERS=0
|
||||
fi
|
||||
fi
|
||||
|
||||
PATH=$PATH:$ORACLE_HOME/bin
|
||||
export ORACLE_HOME PATH ORACLE_SID
|
||||
|
||||
if [ "$1" = "autoconf" ]
|
||||
then
|
||||
echo yes
|
||||
exit 0
|
||||
fi
|
||||
if [ "$1" = "config" ]
|
||||
then
|
||||
WARN_CRIT=`sqlplus -s ${oracle_user}/${oracle_pass}@$ORACLE_SID << EOF | \
|
||||
grep -v '^$' | awk '{print $1 * 0.7 " " $1 * 0.8 }'
|
||||
set pagesize 0
|
||||
select value from v\\$parameter where name = 'sessions';
|
||||
EOF`
|
||||
echo "graph_title Oracle active connections to $ORACLE_SID"
|
||||
echo "graph_args -l 0 --base 1000"
|
||||
echo "graph_vlabel Connections"
|
||||
echo "graph_category Oracle"
|
||||
echo "graph_info Shows active oracle connections to $ORACLE_SID"
|
||||
echo "graph_scale no"
|
||||
if [ $SHOW_ORACLE_USERS -eq 1 ]
|
||||
then
|
||||
sqlplus -s ${oracle_user}/${oracle_pass}@$ORACLE_SID << EOF | \
|
||||
grep -v '^$' | awk '{ print $1 ".label " $1 " active connections"
|
||||
print $1 ".info " $1 " active connections"
|
||||
print $1 ".type GAUGE" }; END {
|
||||
print "total.label active connections"
|
||||
print "total.info active connections"
|
||||
print "total.type GAUGE"
|
||||
}'
|
||||
set pagesize 0
|
||||
select username, count(username) from v\$session where username is not null group by username;
|
||||
EOF
|
||||
echo $WARN_CRIT| awk '{ print "total.warning " $1 "\ntotal.critical " $2 }'
|
||||
else
|
||||
echo "connections.label active connections"
|
||||
echo "connections.info active connections"
|
||||
echo "connections.type GAUGE"
|
||||
echo $WARN_CRIT| awk '{ print "connections.warning " $1 "\nconnections.critical " $2 }'
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [ $SHOW_ORACLE_USERS -eq 1 ]
|
||||
then
|
||||
sqlplus -s ${oracle_user}/${oracle_pass}@$ORACLE_SID << EOF | \
|
||||
grep -v '^$'|awk 'BEGIN { total=0 } {
|
||||
print $1 ".value " $2
|
||||
total=total+$2 } END { print "total.value " total }'
|
||||
set pagesize 0
|
||||
select username, count(username) from v\$session where username is not null group by username;
|
||||
EOF
|
||||
else
|
||||
sqlplus -s ${oracle_user}/${oracle_pass}@$ORACLE_SID << EOF | grep -v '^$'|\
|
||||
awk '{ print "connections.value " $1 }'
|
||||
set pagesize 0
|
||||
select count(username) from v\$session where username is not null;
|
||||
EOF
|
||||
fi
|
||||
|
||||
echo "max_connections.value" "`sqlplus -s ${oracle_user}/${oracle_pass}@$ORACLE_SID << EOF | \
|
||||
grep -v '^$' | awk '{print $1 }'
|
||||
set pagesize 0
|
||||
select value from v\\$parameter where name = 'sessions';
|
||||
EOF`"
|
||||
#!/bin/bash
|
||||
#
|
||||
# Munin plugin to monitor oracle connections w/o DBD::Oracle, or perl for that
|
||||
# matter ;-)
|
||||
#
|
||||
# Author: Kevin Kunkel (kunkel.kevin@gmail.com) on December 11, 2007
|
||||
# (Based off the perl munin plugin by Joan Carles Soler)
|
||||
#
|
||||
# Licenced under GPL v2.
|
||||
#
|
||||
# Usage:
|
||||
#
|
||||
# If required, give username, password and/or oracle server
|
||||
# host through environment variables.
|
||||
#
|
||||
# Parameters:
|
||||
# autoconf
|
||||
# config (required)
|
||||
#
|
||||
# Config variables:
|
||||
#
|
||||
# ORACLE_SID - Which database to use. Defaults to orcl
|
||||
# oracle_user - A oracle user account with read permission to
|
||||
# the v$session view. Defaults to
|
||||
# 'oracle'. Anyway, Munin must be told which user
|
||||
# this plugin should be run as.
|
||||
# oracle_pass - The corresponding password, if
|
||||
# applicable. Default to undef.
|
||||
#
|
||||
# SHOW_ORACLE_USERS - If set to 1 show usernames and num. of connections.
|
||||
# Default is not show users (0).
|
||||
# Magic markers
|
||||
#%# family=auto
|
||||
#%# capabilities=autoconf
|
||||
|
||||
|
||||
# Hard-code environment variables here
|
||||
|
||||
#oracle_user=
|
||||
#oracle_pass=
|
||||
#ORACLE_SID=
|
||||
#ORACLE_HOME=
|
||||
#SHOW_ORACLE_USERS=
|
||||
|
||||
# End variable hard-code
|
||||
|
||||
|
||||
|
||||
if [ -z "$ORACLE_HOME" ] ; then
|
||||
# Adjust to your oratab locations
|
||||
for oratab in /var/opt/oracle/oratab /etc/oratab
|
||||
do
|
||||
[ ! -f $oratab ] && continue
|
||||
IFS=:
|
||||
while read SID HOME STARTUP;
|
||||
do
|
||||
if [ "$SID" = "*" ]
|
||||
then
|
||||
ORACLE_HOME=$HOME
|
||||
break
|
||||
fi
|
||||
done < $oratab
|
||||
[ -n "$ORACLE_HOME" ] && break
|
||||
break
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -z "$ORACLE_SID" ]
|
||||
then
|
||||
ORACLE_SID="orcl"
|
||||
fi
|
||||
|
||||
if [ -z "$oracle_user" ]
|
||||
then
|
||||
oracle_user="oracle"
|
||||
fi
|
||||
|
||||
if [ -z "$SHOW_ORACLE_USERS" ]
|
||||
then
|
||||
SHOW_ORACLE_USERS=0
|
||||
else
|
||||
if [ $SHOW_ORACLE_USERS -ne 1 ]
|
||||
then
|
||||
SHOW_ORACLE_USERS=0
|
||||
fi
|
||||
fi
|
||||
|
||||
PATH=$PATH:$ORACLE_HOME/bin
|
||||
export ORACLE_HOME PATH ORACLE_SID
|
||||
|
||||
if [ "$1" = "autoconf" ]
|
||||
then
|
||||
echo yes
|
||||
exit 0
|
||||
fi
|
||||
if [ "$1" = "config" ]
|
||||
then
|
||||
WARN_CRIT=`sqlplus -s ${oracle_user}/${oracle_pass}@$ORACLE_SID << EOF | \
|
||||
grep -v '^$' | awk '{print $1 * 0.7 " " $1 * 0.8 }'
|
||||
set pagesize 0
|
||||
select value from v\\$parameter where name = 'sessions';
|
||||
EOF`
|
||||
echo "graph_title Oracle active connections to $ORACLE_SID"
|
||||
echo "graph_args -l 0 --base 1000"
|
||||
echo "graph_vlabel Connections"
|
||||
echo "graph_category Oracle"
|
||||
echo "graph_info Shows active oracle connections to $ORACLE_SID"
|
||||
echo "graph_scale no"
|
||||
if [ $SHOW_ORACLE_USERS -eq 1 ]
|
||||
then
|
||||
sqlplus -s ${oracle_user}/${oracle_pass}@$ORACLE_SID << EOF | \
|
||||
grep -v '^$' | awk '{ print $1 ".label " $1 " active connections"
|
||||
print $1 ".info " $1 " active connections"
|
||||
print $1 ".type GAUGE" }; END {
|
||||
print "total.label active connections"
|
||||
print "total.info active connections"
|
||||
print "total.type GAUGE"
|
||||
}'
|
||||
set pagesize 0
|
||||
select username, count(username) from v\$session where username is not null group by username;
|
||||
EOF
|
||||
echo $WARN_CRIT| awk '{ print "total.warning " $1 "\ntotal.critical " $2 }'
|
||||
else
|
||||
echo "connections.label active connections"
|
||||
echo "connections.info active connections"
|
||||
echo "connections.type GAUGE"
|
||||
echo $WARN_CRIT| awk '{ print "connections.warning " $1 "\nconnections.critical " $2 }'
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [ $SHOW_ORACLE_USERS -eq 1 ]
|
||||
then
|
||||
sqlplus -s ${oracle_user}/${oracle_pass}@$ORACLE_SID << EOF | \
|
||||
grep -v '^$'|awk 'BEGIN { total=0 } {
|
||||
print $1 ".value " $2
|
||||
total=total+$2 } END { print "total.value " total }'
|
||||
set pagesize 0
|
||||
select username, count(username) from v\$session where username is not null group by username;
|
||||
EOF
|
||||
else
|
||||
sqlplus -s ${oracle_user}/${oracle_pass}@$ORACLE_SID << EOF | grep -v '^$'|\
|
||||
awk '{ print "connections.value " $1 }'
|
||||
set pagesize 0
|
||||
select count(username) from v\$session where username is not null;
|
||||
EOF
|
||||
fi
|
||||
|
||||
echo "max_connections.value" "`sqlplus -s ${oracle_user}/${oracle_pass}@$ORACLE_SID << EOF | \
|
||||
grep -v '^$' | awk '{print $1 }'
|
||||
set pagesize 0
|
||||
select value from v\\$parameter where name = 'sessions';
|
||||
EOF`"
|
||||
|
Loading…
Reference in New Issue
Block a user