TLDR;
Я получаю значительно более низкую пропускную способность при пересылке сообщений системного журнала с помощью rsyslog на сервере Redhat с 32 ядрами и 128Gi RAM на удаленный сервер, использующий TCP вместо системного журнала UDP в омфвд действие.
Как я могу использовать TCP для пересылки сообщений, сохраняя при этом объем входящих сообщений?
Примечание 1: pps = количество пакетов в секунду.
Примечание 2: Обратите внимание на разницу в статистике Rx и Tx.
При использовании UDP для пересылки входящих сообщений:
[~]$ ./check_network_stats.bash eth0
Rx 10088 пакетов в секунду Tx 10092 пакетов в секунду |--| Rx 7 Мбит/с Tx 7 Мбит/с
Rx 11858 пакетов в секунду Tx 11857 пакетов в секунду |--| Rx 8 Мбит/с Tx 8 Мбит/с
Rx 11503 пакетов в секунду Tx 11502 пакетов в секунду |--| Rx 8 Мбит/с Tx 8 Мбит/с
Прием 11423 пакетов в секунду Передача 11321 пакетов в секунду |--| Rx 8 Мбит/с Tx 8 Мбит/с
При использовании TCP для пересылки входящих сообщений:
[~]$ источник check_network_stats.bash eth0
Rx 10318 пакетов в секунду Tx 87 пакетов в секунду |--| Rx 7 Мбит/с Tx 0 Мбит/с
Rx 12150 пакетов в секунду Tx 162 пакетов в секунду |--| Rx 8 Мбит/с Tx 0 Мбит/с
Rx 9504 пакетов в секунду Tx 139 пакетов в секунду |--| Rx 7 Мбит/с Tx 0 Мбит/с
Rx 9774 пакетов в секунду Tx 67 пакетов в секунду |--| Rx 6 Мбит/с Tx 0 Мбит/с
Rx 12894 пакетов в секунду Tx 159 пакетов в секунду |--| Rx 9 Мбит/с Tx 0 Мбит/с
rsyslog.conf:
# файл конфигурации rsyslog
#################
#### МОДУЛИ ####
#################
модуль (загрузка = «imjournal» StateFile = «imjournal.state»)
module(load="imklog") # читает сообщения ядра (то же самое читается из journald)
module(load="immark" interval="300") # обеспечивает возможность --MARK-- сообщения
module(load="imudp" threads="4" batchSize ="128") # Обеспечивает прием системного журнала UDP
module(load="imptcp" threads="10") # Обеспечивает прием системного журнала TCP
module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat") # Использовать формат метки времени по умолчанию
###############
#### ПРАВИЛА ####
###############
набор правил (имя = "sendToLogstash") {
действие (тип = "omfwd"
имя = "action_ls"
Цель = "10.10.10.10"
Порт = "514"
Protocol="udp" # при изменении на TCP пропускная способность падает
queue.type="Фиксированныймассив"
)
}
############################
#### СЛУШАТЕЛИ ####
############################
ввод (тип = «imudp» порт = «514» набор правил = «sendToLogstash»)
ввод (тип = «imptcp» порт = «514» набор правил = «sendToLogstash»)
############################
#### ГЛОБАЛЬНЫЕ ДИРЕКТИВЫ ####
############################
отметка.* /var/log/messages
# Где разместить вспомогательные файлы
глобальный (workDirectory="/var/lib/rsyslog")