НОВЫЙ счетчик отсутствует в статистике conntrack -S

Из этого вопроса Статистика /proc/net/stat/nf_conntrack отсутствует на сервере Linux Я понял, что /proc/net/stat/nf_conntrackесть альтернатива conntrack -S.
В /proc/net/stat/nf_conntrack есть NEWсчетчик, на основе которого можно рассчитать показатель CPS (соединений в секунду). Но в conntrack -Sя не вижу такого счетчика.

Как я могу получить счетчик NEWconntrack без /proc/net/stat/nf_conntrack? Есть ли способ получить его из conntrack -S?

3
задан 14 October 2021 в 20:10
1 ответ

Часть ядра, отображающая такую ​​статистику в методе файловой системы /proc, там :

  if (v == SEQ_START_TOKEN) {
      seq_puts(seq, "entries  searched found new invalid ignore delete delete_list insert insert_failed drop early_drop icmp_error  expect_new expect_create expect_delete search_restart\n");
      return 0;
  }

  seq_printf(seq, "%08x  %08x %08x %08x %08x %08x %08x %08x "
          "%08x %08x %08x %08x %08x  %08x %08x %08x %08x\n",
         nr_conntracks,
         0,
         st->found,
         0,
         st->invalid,
         st->ignore,
         0,
         0,
         st->insert,
         st->insert_failed,
         st->drop,
         st->early_drop,
         st->error,

         st->expect_new,
         st->expect_create,
         st->expect_delete,
         st->search_restart
      );

, как видно, поляsearched(заменены другим полем в более поздних ядрах ), new. ], delete, delete_listвсегда отображают 0:ничего не передает эти поля.

Как я подозревал в своем предыдущем ответе («или, возможно, устарел» ), статистики по этому поводу нет ни для старого, ни для нового метода.

Вот коммит от 2016 года, который удалил их(вероятно, для ядра 4.9):

netfilter:conntrack:удалить статистику горячих путей пакетов

Эти счетчики находятся в горячих путях и действительно отображаются в перформансе это особенно true для «найдено» и «поиск», которые увеличиваются для каждого пакета обработанный.

Информация вида

searched=212030105
новый=623431
найдено=333613
delete=623327

не кажется слишком полезным в настоящее время:

  • на загруженных системах, найденных и просматриваемых, будет переполняться каждые несколько часов (это 32-битные целые числа), другие более загруженные каждые несколько дней.

  • для отладки есть лучшие методы, такие как iptables' trace target, журнал conntrack sysctls. В настоящее время у нас также есть перфоинструмент.

При этом удаляются счетчики статистики пути пакетов, за исключением тех, которые ожидается, что он будет равен 0 (или близок к 0 )в нормальной системе, т.е. 'insert_failed' (произошла гонка)или 'invalid' (прототрекер отклонил).

Статистика вставки сохраняется для случая ctnetlink. Найденная статистика сохраняется для проверки кортежа-is-принято, когда NAT должен определить, нужно ли выбрать другой исходный адрес.

Подписано-от-автор:Флориан Вестфаль fw@strlen.de
Подписано-off-автор:Пабло Нейра Аюсо pablo@netfilter.org

Альтернатива

Вы можете использовать инструмент conntrackd (, упакованный в Ubuntu здесь ), который можно настроить для регистрации событий, чтобы предоставлять только журналы и статистику (вместо его основного использования для прозрачного переключения между несколькими брандмауэрами в кластере высокой доступности). Ubuntu может предоставлять конфигурацию статистики по умолчанию (или в документации ). Вот пример системы, в которой работает служба conntrackd:

# conntrackd -s ct; sleep 5; conntrackd -s ct
[Fri Oct 15 08:34:08 2021] (pid=3443753) [warning] deprecated unix backlog configuration, ignoring.
cache stats:
current active connections:           65
connections created:              121807    failed:            0
connections updated:              116158    failed:            0
connections destroyed:            121742    failed:            0

traffic processed:
                   0 Bytes                         0 Pckts

[Fri Oct 15 08:34:13 2021] (pid=3443756) [warning] deprecated unix backlog configuration, ignoring.
cache stats:
current active connections:           68
connections created:              121811    failed:            0
connections updated:              116163    failed:            0
connections destroyed:            121743    failed:            0

traffic processed:
                   0 Bytes                         0 Pckts

. Инструмент сообщает, что connections created:изменился с 121807 на 121811. Я считаю, что это эквивалент поля new, удаленного из ядра.

Примечание.:traffic processed:определенно предназначен для связи брандмауэра-с-брандмауэром между двумя демонами conntrackd (, поэтому здесь всегда будет 0).

1
ответ дан 15 October 2021 в 08:01

Теги

Похожие вопросы