Как определяется значение используемой памяти в файле check_snmp_mem.pl? - PullRequest
0 голосов
/ 31 октября 2018

Я настраивал icinga2 для получения информации об использовании памяти от одного клиента linux, используя скрипт на check_snmp_mem .pl. Любая идея, как используемая память получена в этом сценарии?

Вот свободный вывод команды

# free
              total        used        free      shared  buff/cache   available
Mem:         500016       59160       89564        3036      351292      408972
Swap:       1048572        4092     1044480

где в качестве данных производительности, показанных на информационной панели icinga, указывается

    Label   Value        Max             Warning     Critical
ram_used    137,700.00   500,016.00     470,015.00   490,016.00
swap_used   4,092.00     1,048,572.00   524,286.00   838,858.00

1 Ответ

0 голосов
/ 31 октября 2018

Просматривая исходный код, он упоминает ram_used, например, в этой строке:

  $n_output .= " | ram_used=" . ($$resultat{$nets_ram_total}-$$resultat{$nets_ram_free}-$$resultat{$nets_ram_cache}).";";

Это настоятельно указывает на то, что ram_used рассчитывается как разница между общей и свободной оперативной памятью, используемой для кэширования. Эти значения извлекаются с помощью следующих идентификаторов SNMP:

my $nets_ram_free   = "1.3.6.1.4.1.2021.4.6.0";  # Real memory free
my $nets_ram_total  = "1.3.6.1.4.1.2021.4.5.0";  # Real memory total
my $nets_ram_cache      = "1.3.6.1.4.1.2021.4.15.0"; # Real memory cached

Я не знаю, как они соотносятся с выводом free. Разница в свободной памяти, сообщаемая free и Icinga, составляет 48136, так что, возможно, вы можете найти это число где-нибудь.

...