Latest revision |
Your text |
Line 1: |
Line 1: |
| {{DISPLAYTITLE:Monitoring /proc/user_beancounters with email}} | | {{DISPLAYTITLE:Monitoring /proc/user_beancounters with email}} |
| + | To be added locally on the VZ HN to |
| | | |
− | == Introduction ==
| + | Works as nagios-plugin with option '-f' or reports an increase of a failcnt-value by mail if run e.g. as a cronjob with option '-t'. We use it with both cases to be sure that we see a peak in case it happened between the nagios-checks. |
| | | |
− | This script gives a warning if any parameter in a virtual environment (VZ) exceeds 80% of resources.
| + | <source lang=python> |
| + | #!/usr/bin/python |
| + | # Copyright (C) 2008 Christian Benke |
| + | # Distributed under the terms of the GNU General Public License v2 |
| + | # v0.2 2008-04-04 |
| + | # Christian Benke <benkokakao gmail com> |
| | | |
− | == packages basic installation ==
| + | import string |
− | <pre>
| + | import pickle |
− | aptitude install nail gawk
| + | import sys |
− | </pre>
| + | import getopt |
| + | import re |
| | | |
− | == nail configuration == | + | veid='' |
− | Configures <code> /etc/nailrc </code> or <code> ~/.mailrc </code> files.
| + | current_data=dict() |
− | <pre>
| |
− | set smtp=smtp.server.org
| |
− | set from=nail@smtp.server.org
| |
− | set charset=iso-8859-1
| |
− | </pre>
| |
− | | |
− | == configuration ==
| |
− | | |
− | Copy the script and configure the <code> /etc/crontab </code>
| |
− | | |
− | == Script resource ==
| |
− | | |
− | <source lang=bash>
| |
− | #!/bin/bash resource.sh
| |
− | # Copyright (C) 2008 Mgual
| |
− | # Distributed under to GNU General Public License v2
| |
− | # v0.1 2008-08-13
| |
− | # Ajuntament de Benicarló
| |
− | | |
− | | |
− | | |
− | #!/bin/bash
| |
− | | |
− | | |
− | | |
− | gawk ' BEGIN {
| |
− | printf "%3s %-20s %3s %3s \n", "ID", "Parameter", "%bar", "%lim" > "/tmp/beancounters"
| |
− | }
| |
− | | |
− | /dummy/||/Version/||/uid/ { next }
| |
− | ! /:/ {
| |
− | RESOURCE=$1
| |
− | MAXHELD=$3
| |
− | BARRIER=$4
| |
− | LIMIT=$5
| |
− | }
| |
− | /:/ { gsub(/:/, "", $1)
| |
− | printf "------- %s ------- \n",$1
| |
− | VZ=$1
| |
− | RESOURCE=$2
| |
− | MAXHELD=$4
| |
− | BARRIER=$5
| |
− | LIMIT=$6
| |
− | }
| |
− | {
| |
− | #printf "R=%s M=%s B=%s L=%s ", RESOURCE, MAXHELD, BARRIER, LIMIT
| |
− | if (BARRIER>0) {
| |
− | PBARRIER=MAXHELD*100/BARRIER
| |
− | } else {
| |
− | PBARRIER=0
| |
− | }
| |
− | if (LIMIT>0) {
| |
− | PLIMIT=MAXHELD*100/LIMIT
| |
− | } else {
| |
− | PLIMIT=0
| |
− | }
| |
− | printf "%-20s %3d %3d ", RESOURCE , PBARRIER, PLIMIT
| |
− | if (PBARRIER>=80) {
| |
− | printf " Warning "
| |
− | printf "%3d %-20s %3d %3d Perill\n", VZ, RESOURCE , PBARRIER, PLIMIT >> "/tmp/beancounters"
| |
− | }
| |
− | printf "\n"
| |
− | }
| |
− | ' /proc/user_beancounters
| |
− | | |
− | echo "---------------------------------------------------" >> /tmp/beancounters
| |
− | echo "" | gawk -vVZ='ID' -vRESOURCE='Use Disc%' '
| |
− | {
| |
− | printf "%3s %-20s \n", VZ, RESOURCE >> "/tmp/beancounters"
| |
− | }
| |
− | '
| |
− | | |
− | | |
− | # Quota Disc
| |
− | | |
− | for i in $(vzlist | cut -d" " -f 8)
| |
− | do
| |
− | vzctl exec $i df -h | gawk -vVEID=$i '/^simfs/ { if ($5 > "80%") { printf "%s %s\n", VEID, $5 } }' >>/tmp/beancounters
| |
− | | |
− | done
| |
− | | |
− | echo "---------------------------------------------------" >> /tmp/beancounters
| |
− | echo "" | gawk -vVZ='ID' -vRESOURCE='IUse Disc%' '
| |
− | {
| |
− | printf "%3s %-20s \n", VZ, RESOURCE >> "/tmp/beancounters"
| |
− | }
| |
− | '
| |
− | for i in $(vzlist | cut -d" " -f 8)
| |
− | do
| |
− | vzctl exec $i df -i | gawk -vVEID=$i '/^simfs/ { if ($5 > "80%") { printf "%s %s\n", VEID, $5 } }' >>/tmp/beancounters
| |
− | | |
− | done
| |
− | | |
− | | |
− | if [[ "$(cat /tmp/beancounters | wc -l)" != "5" ]] ; then
| |
− | cat /tmp/beancounters | nail -s "Server:resource.sh Warning " user@smtp-server.org
| |
− | fi
| |