Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37486054
en ru br
Репозитории ALT
S:6.0.22-alt1
D:1.4.1-alt1.svn.4403
5.1: 1.8.18-alt0.M51.1
4.1: 1.6.4-alt0.1.svn.7369.M41.1
4.0: 1.8-alt0.svn.8618.M40.1
3.0:
+backports:1.1.7-alt0.M30.1
www.altlinux.org/Changes

Группа :: Мониторинг
Пакет: zabbix

 Главная   Изменения   Спек   Патчи   Исходники   Загрузить   Gear   Bugs and FR  Repocop 

#!/bin/bash
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# Author: Chris Regenye (SysInfrastructure)
# Date: 4/12/2006
# Info: Script to convert the syntax of zabbix items in the database from early
# beta1.1/alpha1.1/1.0 builds to make them compatable with post 1.1beta5
#
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
outfile="newitems"
tempfile="itemextractions"
databasename="zabbix"
databasehost="localhost"
databaseuser="youruser"
databasepassword="yourpassword"
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

# Update database with item information from file
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
function db_update {
while read itemid status key
do
echo "update items set status = \"$status\", key_=\"$key\" where itemid = \"$itemid\"" | mysql -u $databaseuser -h $databasehost --password="$databasepassword" $databasename
done < $1
}

# Get item info from db for host
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
function db_fetch {
host=$1
hosti=$(echo "select hostid from hosts where host= \"$host\"" | mysql -u $databaseuser -h $databasehost --password="$databasepassword" $databasename)
hostid=$(echo $hosti| awk '{print $2}')
backupfile="$host.$hostid.backup"
echo "select i.itemid, i.status, i.key_ from items i, hosts h where h.host = \"$host\" and i.hostid = h.hostid" | mysql -u $databaseuser -h $databasehost --password="$databasepassword" $databasename > $tempfile
}

# restore items from backup file
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
function restore_files {
db_fetch $2
echo " Restore Mode: Host = \"$host\""
[ ! "$hostid" ] && echo && echo " Host parameter is absent or does not exist in database" && error_out
[ ! -f $backupfile ] && echo && echo " Backup file for not found !!!" && error_out
db_update $backupfile
}

# Generate output and backup files
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
function generate_files {
db_fetch $1
echo " Update Mode: Host = \"$host\""
[ ! "$hostid" ] && echo && echo " Host parameter is absent or does not exist in database" && error_out
cp /dev/null $outfile
cp /dev/null $backupfile
while read itemid status key
do
keyitem=$(echo $key | awk -F"\\\[|\\\]" '{print $1}')
keyvalue=$(echo $key | awk -F"\\\[|\\\]" '{print $2}')

[ $itemid = "itemid" ] && continue # bail on header line
output=$key # default, don't change key
[ $keyitem = "diskfree" ] && output="vfs.fs.size[$keyvalue, free]"
[ $keyitem = "disktotal" ] && output="vfs.fs.size[$keyvalue, total]"
[ $keyitem = "diskused" ] && output="vfs.fs.size[$keyvalue, used]"
[ $keyitem = "memory" ] && output="vm.memory.size[$keyvalue]"
[ $keyitem = "inodefree" ] && output="vfs.fs.inode[$keyvalue, free]"
[ $keyitem = "inodetotal" ] && output="vfs.fs.inode[$keyvalue, total]"
[ $keyitem = "filesize" ] && output="vfs.file.size[$keyvalue]"
[ $keyitem = "cksum" ] && output="vfs.file.cksum[$keyvalue]"
[ $keyitem = "swap" ] && [ $keyvalue = "total" ] && output="system.swap.size[,$keyvalue]"
[ $keyitem = "swap" ] && [ $keyvalue = "free" ] && output="system.swap.size[,$keyvalue]"
[ $keyitem = "swap" ] && [ $keyvalue = "in" ] && output="system.swap.$keyvalue"
[ $keyitem = "swap" ] && [ $keyvalue = "out" ] && output="system.swap.$keyvalue"
[ $keyitem = "proc_cnt" ] && output="proc.num[$keyvalue]"
[ $keyitem = "check_service_perf" ] && output="net.tcp.service.perf[$keyvalue]"
[ $keyitem = "check_service" ] && output="net.tcp.service[$keyvalue]"
[ $keyitem = "check_port" ] && output="net.tcp.port[$keyvalue]"
[ $keyitem = "netloadin1" ] && output="net.if.in[$keyvalue]"
[ $keyitem = "netloadout1" ] && output="net.if.out[$keyvalue]"
[ $keyitem = "kern" ] && output="kernel.$keyvalue"
[ $keyitem = "version" ] && output="agent.$keyitem"
[ $keyitem = "ping" ] && output="agent.$keyitem"
[ $keyitem = "system" ] && output="$keyitem.$keyvalue"
[ $keyitem = "system" ] && [ $keyvalue = "users" ] && output="system.users.num"
[ $keyitem = "system" ] && [ $keyvalue = "switches" ] && output="system.cpu.switches"
[ $keyitem = "system" ] && [ $keyvalue = "proccount" ] && output="proc.num"
[ $keyitem = "system" ] && [ $keyvalue = "procrunning" ] && output="proc.num[,,running]"
[ $keyitem = "system" ] && [ $keyvalue = "procload" ] && output="system.cpu.load[,avg1]"
[ $keyitem = "system" ] && [ $keyvalue = "procload5" ] && output="system.cpu.load[,avg5]"
[ $keyitem = "system" ] && [ $keyvalue = "procload15" ] && output="system.cpu.load[,avg15]"

echo $itemid" "$status" "$output >> $outfile
echo $itemid" "$status" "$key >> $backupfile

done < $tempfile
db_update $outfile
}

# Error encountered, describe syntax
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
function error_out {
echo
echo " Usage: $0 {HOST} | {restore HOST}"
echo " Where HOST is the hostname as defined in zabbix."
[ -f $tempfile" ] && rm $tempfile
[ -f $outfile" ] && rm $outfile
echo; echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= "; echo; echo; echo
exit
}


# Main
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
echo; echo; echo; echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= "; echo
[ $1 = "restore" ] && restore_files $1 $2 || generate_files $1
[ -f $tempfile" ] && rm $tempfile
[ -f $outfile" ] && rm $outfile
echo; echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= "; echo; echo; echo''
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin