Cómo obtener el valor máximo de tráfico diario de la base de datos zabbix
Versión 1:
Según el nombre de host encontrado y al ingresar la fecha, se genera el tráfico máximo de importación y exportación en un día
#!/bin /bash
p>#
###Script para obtener el valor máximo de tráfico diario. El script recupera los datos de la tabla historic_uint de la base de datos zabbix.
### según hostname.txt El nombre de host en el archivo.
###wuhf###
z_user="XXX"
z_passwd="XXX"
Cur_Dir=$(contraseña )
función test_file {
echo "-------------------------Comienza a buscar el host nombre- -----------------------"
if [ -e $Cur_Dir/hostname.txt ]; entonces
echo > $Cur_Dir/hostname.txt
else
toque $Cur_Dir/hostname.txt
fi
para host_ip en $(cat $Cur_Dir/hostip.txt); hacer
if /usr/local/zabbix/bin/zabbix_get -s $host_ip -k system.hostname &>/dev/null entonces p>
z_hostname=$(/usr/local/zabbix/bin/zabbix_get -s $host_ip -k system.hostname)
echo -e "\033[32mIP:$host_ip --- -----> Nombre de host: $z_hostname\033[0m"
echo "$z_hostname" >> $Cur_Dir/hostname.txt
else
echo -e "\033[31mIP: $host_ip --------> Nombre de host: Error\033[0m"
echo -e "\033[31mNombre de host no encontrado, tal vez el la red es inalcanzable o el final de zabbix_agentd no está iniciado\033[0m"
fi
done
}
function input_date {
read -p "Ingrese la fecha de inicio (como 2015-01-01):" E
hasta la fecha -d"$E" &>/dev/null;
echo -e "\033[31mEl formato de fecha que ingresó es incorrecto, ¡vuelva a ingresarlo!\033[0m"
read -p "Ingrese la fecha de inicio: " E p>
hecho
si fecha -d "$E" >& /dev/null;entonces
from_time=$(fecha -d "$E " +%s )
fi
read -p "Ingrese la fecha de finalización:" D
hasta la fecha -d"$D" &>/ dev/null; do
echo -e "\033[31mEl formato de fecha que ingresó es incorrecto, vuelva a ingresarlo. \033[0m"
read -p "Ingrese la fecha de finalización (como 2015-01-01):" D
hecho
if fecha -d "$D" >& /dev/null;entonces
end_time=$(fecha -d "$D" +%s)
fi
}
función principal() {
mysql -u$z_user -h127.0.0.1 -p$z_passwd -Dzabbix
-e "seleccione host,hostid de hosts donde host=\"$host_name\";" | grep "$host_name" &>/dev/null
if [ $ -eq 0 ]; /p>
Max_In=$(mysql -uz_user -h127.0.0.1 -pz_passwd -Dzabbix -e "seleccione from_unixtime(reloj) como FechaHora,max(round(valor/1024/1024,2)) como In_Value de History_uint
donde itemid = (seleccione itemid de los elementos
donde hostid = (seleccione hostid de los hosts
donde host=\"$host_name\") p>
y key_ como \"net.if.in%\" límite 1)
y reloj >= $from_time y reloj <= $end_time" |tail -1 |awk '{print $3}')
Max_Out=$(mysql -uz_user -h127.0.0.1 -pz_passwd -Dzabbix -e "seleccione from_unixtime(reloj) como FechaHora,max(round(valor/1024/1024,2 )) como In_Value de History_uint
donde itemid = (seleccione itemid de los elementos
donde hostid = (seleccione hostid de los hosts
donde host=\"$host_name \")
y key_ como \"net.if.out%\" límite 1)
y reloj >= $from_time y reloj <= $end_time" |tail -1 |awk '{print $3}')
echo "| $host_name | Tráfico máximo de importación: $Max_In | Tráfico máximo de exportación: $Max_Out | Rango de fechas: $E a $D |"
else
echo -e "\033[31mEl nombre de host $host_name no existe en la base de datos zabbix. Modifique el nombre de host e inténtelo de nuevo. \033[0m"
fi
}
archivo_prueba
fecha_entrada
hasta [ $from_time -lt $hora_final]
; do
echo -e "\033[31mLa fecha de inicio debe ser menor que la fecha de finalización. ¡Vuelva a ingresarla!\033[0m"
input_date
hecho
para host_name en $(cat $Cur_Dir/hostname.txt do
echo "----------------); ---------- ---------------------------------------- ------------------------------------"
principal
hecho