Мониторинг текущих RX и TX буферов сетевых интерфейсов в Zabbix

Однажды после перезапуска Ubuntu сервера, из-за долгого запуска большого количества сетевых интерфейсов, мой скрипт который увеличивал значения буферов, а также выполнял другие настройки, выполнился раньше времени, соответственно изменения не применились и об этой проблеме я узнал только через сутки, поэтому я решил мониторить текущие значения RX и TX буферов.

Допустим, если выполнить команду:

ethtool -g ens2f1

Мы увидим:

Ring parameters for ens2f1:
Pre-set maximums:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096
Current hardware settings:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096

Получается нам нужны 8 и 11 строки, а также нужно удалить ненужные символы, чтобы получить только числа, подумав несколько минут я придумал такое:

ethtool -g ens2f1 | awk '(NR == 8)' | sed -r 's/^.{5}//'
ethtool -g ens2f1 | awk '(NR == 11)' | sed -r 's/^.{5}//'

Первая команда отображает текущее значение RX буфера, а вторая TX.
Соответственно в конфгурации Zabbix агента я их указал так:

UserParameter=current_ens2f1_rx_buffer,ethtool -g ens2f1 | awk '(NR == 8)' | sed -r 's/^.{5}//'
UserParameter=current_ens2f1_tx_buffer,ethtool -g ens2f1 | awk '(NR == 11)' | sed -r 's/^.{5}//'

На Zabbix сервере в своем шаблоне я добавил Zabbix элементы данных с ключами current_ens2f1_rx_buffer и current_ens2f1_tx_buffer, а также создал триггеры, например с выражением:

{MyTemplate:current_ens1f0_tx_buffer.last(0)}<>4096

Соответственно триггер сработает когда значение не будет равно 4096.

Приведу еще пример:

ethtool -l ens2d1
Channel parameters for ens2d1:
Pre-set maximums:
RX:             28
TX:             28
Other:          0
Combined:       0
Current hardware settings:
RX:             16
TX:             28
Other:          0
Combined:       0

ethtool -l ens2d1 | awk '(NR == 8)' | sed -r 's/^.{5}//'
16
ethtool -l ens2d1 | awk '(NR == 9)' | sed -r 's/^.{5}//'
28

Смотрите также мою статью:
Изменение TX и RX буферов сетевых интерфейсов в Linux

Оставьте комментарий

Добавить комментарий