¿Es una buena idea enviar registros en tiempo real (UDP) en un entorno de registro alto? ¿Hay una gran sobrecarga?

En mi opinión, no es una buena idea (nb trato con registros todo el día, ver Logsene). Puede / perderá registros. No solo por UDP, sino también por la parte en tiempo real que mencionaste. Debido a que a veces el destino simplemente no estará disponible por cualquier razón, enviar registros en tiempo real directamente desde la aplicación que genera los registros no le permitirá almacenar registros que no llegaron a su destino y volver a intentar su envío más adelante. Deberías usar un cargador de troncos. Hay muchos de ellos disponibles, algunos mejores que otros:

  • Logstash: popular, pero pesado, y sin capacidad para almacenar y volver a intentar
  • Logagent: joven, liviano, con una serie de características de nivel empresarial que incluyen almacenamiento en búfer y reintento
  • Fluentd: maduro, con almacenamiento en búfer y reintento y muchos complementos
  • Filebeat – ligero, pero un poco demasiado joven en este momento

En Sematext solíamos ser grandes usuarios de rsyslog, pero hemos cambiado a Logagent – https://github.com/sematext/loga… – debido a algunos errores de rsyslog que pueden haberse solucionado.

Bueno, usted tiene su opción: ¿desea minimizar los gastos generales o maximizar la confiabilidad?

Puede enviar sus registros a través de UDP todo el día. Eso funciona bien. Pero si lo hace, las entradas podrían perderse.

Puede enviarlos a través de TCP y asegurarse de que todos lleguen allí y que las entradas de registro estén en orden. Pero te costará un poco más.

Por mi dinero, solo usaría TCP. Los gastos generales a partir de 2016 son triviales.

Otros han comentado sobre la sabiduría de TCP sobre UDP para esta instalación y estoy de acuerdo con ellos, pero quiero agregar algunas calificaciones en escenarios de registro de alto volumen:

  1. Enviar los registros de la máquina para iniciar sesión en otra máquina es una buena idea, ya que mueve la sobrecarga de escritura al disco fuera de la plataforma de generación
  2. Si cree que los registros abrumarán la capacidad del disco para mantenerse al día, entonces UDP puede ser una mejor opción porque es mejor descartar algunos datos de registro que bloquear la fuente en una escritura TCP. O podría usar sockets TCP sin bloqueo, aunque no estoy seguro de que sea mejor que UDP: solo mueve la caída al origen en lugar del destino.