Red de conocimiento informático - Material del sitio web - Cómo obtener el valor máximo de tráfico diario de la base de datos zabbix

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

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

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\")

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