TLDR;
Obțin un debit semnificativ mai mic atunci când trimit mesaje syslog cu rsyslog pe un server Redhat cu 32 de nuclee și 128Gi RAM către un server la distanță folosind TCP în loc de syslog UDP în omfwd acțiune.
Cum pot folosi TCP pentru redirecționarea mesajelor în timp ce țin pasul cu volumul mesajelor de intrare?
Nota 1: pps = pachete pe secundă
Nota 2: Rețineți diferența dintre statisticile Rx vs Tx
Când utilizați UDP pentru a redirecționa mesajele primite:
[~]$ ./check_network_stats.bash eth0
Rx 10088 pps Tx 10092 pps |--| Rx 7 Mbps Tx 7 Mbps
Rx 11858 pps Tx 11857 pps |--| Rx 8 Mbps Tx 8 Mbps
Rx 11503 pps Tx 11502 pps |--| Rx 8 Mbps Tx 8 Mbps
Rx 11423 pps Tx 11321 pps |--| Rx 8 Mbps Tx 8 Mbps
Când utilizați TCP pentru a redirecționa mesajele primite:
[~]$ sursă check_network_stats.bash eth0
Rx 10318 pps Tx 87 pps |--| Rx 7 Mbps Tx 0 Mbps
Rx 12150 pps Tx 162 pps |--| Rx 8 Mbps Tx 0 Mbps
Rx 9504 pps Tx 139 pps |--| Rx 7 Mbps Tx 0 Mbps
Rx 9774 pps Tx 67 pps |--| Rx 6 Mbps Tx 0 Mbps
Rx 12894 pps Tx 159 pps |--| Rx 9 Mbps Tx 0 Mbps
rsyslog.conf:
# fișier de configurare rsyslog
#################
#### MODULE ####
#################
module(load="imjurnal" StateFile="imjournal.state")
module(load="imklog") # citește mesajele kernel (aceleași sunt citite din journald)
module(load="immark" interval="300") # oferă capacitatea de mesaj --MARK--
module(load="imudp" threads="4" batchSize ="128") # Oferă recepție syslog UDP
module(load="imptcp" threads="10") # Oferă recepția syslog TCP
module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat") # Utilizați formatul de marcaj temporal implicit
###############
#### REGULI ####
###############
set de reguli(name="sendToLogstash") {
action(type="omfwd"
name="action_ls"
Target="10.10.10.10"
Port="514"
Protocol="udp" # când acest lucru s-a schimbat în TCP, debitul scade
queue.type="FixedArray"
)
}
##########################
#### AScultători ####
##########################
input(type="imudp" port="514" ruleset="sendToLogstash")
input(type="imptcp" port="514" ruleset="sendToLogstash")
##########################
#### DIRECTIVE GLOBALE ####
##########################
marca.* /var/log/messages
# Unde să plasați fișierele auxiliare
global(workDirectory="/var/lib/rsyslog")