syslog-ng es un código abierto, versión gratuita y mejorada del proyecto syslogd que comenzó hace diez años para los sistemas operativos Linux y UNIX. La aplicación puede funcionar en modo de servidor o agente, y es compatible con el protocolo TCP fiable protocolo (Transmission Control Protocol).
El proyecto ofrece a los usuarios un software de línea de comandos que se puede utilizar con éxito como una solución viable de gestión de registros para crear, recopilar, clasificar, filtrar, hacia adelante, así como para almacenar log messages.Features en una serie de características glanceKey incluir un alto rendimiento, de confianza transferencia, mayor fiabilidad, el filtrado de mensajes y la clasificación, el etiquetado y correlación de eventos, soporte para los últimos estándares del IETF, y una comunidad de usuarios grande.
Con el software de syslog-ng, los administradores de sistemas expertos serán capaces de construir con éxito una infraestructura flexible y fiable de registro, incluso en entornos heterogéneos, sin mucho problema y en el tiempo más corto como possible.Command línea programa optionsThe cuenta con una amplia variedad de comandos Opciones -line, entre las que podemos mencionar la posibilidad de configurar la lista de carpetas separadas de colon que se usarán para buscar módulos, ver la información del módulo, establezca el nombre del archivo de configuración y el archivo de configuración persistente, escribir el archivo de configuración del preprocesado a un archivo específico, analizar y leer el fichero de configuración, ajuste la toma de control, así como para establecer el número de trabajadores de E / S threads.Getting comenzó con el programa de syslog-ngThe está escrita completamente en el lenguaje de programación C y rsquo; s distribuido como un archivo de fuentes universales (tarball). Para instalarlo en su sistema GNU / Linux, primera búsqueda de un pre-construir el paquete binario en los repositorios de software por defecto de tu distribución.
Si el software no está disponible en su distro, descargue la última archivo tar de Softoware, guárdelo en su ordenador, descomprimirlo, abrir una terminal Linux y navegue hasta la ubicación del archivo de almacenamiento se extrae con el & lsquo; cd y rsquo; comandos.
A continuación, ejecute el y lsquo; ./ configure && make y rsquo; comando para optimizar y compilar el programa para su sistema de arquitectura / operativo hardware, seguido por el y lsquo; make install y rsquo; comando como root o con sudo para instalar el sistema de ancho y ponerla a disposición de todos los usuarios
¿Qué hay de nuevo en esta versión:.
- < li> Características:
- Nuevo parámetro añadido a Loggen:. --permanent (-T) Cual es para el envío de registros de forma indefinida
- Correcciones:
- A partir de ahora, syslog-ng no se colgará cuando se usa un destino de Riemann y sin atributos se establecen.
- En algunos casos destino programa regeneran durante syslog-ng stop / restart.
- Max longitud de paquete para la fuente de la parodia se establece en 1024 (antes: 256).
- syslog.socket Fuera del archivo de servicio en sistemas que utilizan systemd. Syslog-ng lee los mensajes directamente desde la revista en sistemas con systemd.
- En algunos casos, las macros localtime relacionados tenían un valor incorrecto (por ejemplo:. AÑO $).
- Transacción manejo fijo en destino de SQL. En algunas circunstancias, cuando ambos seleccione e introduzca los comandos se ejecutan dentro de una sola transacción y el selectivo fallado (por ejemplo .: en caso de mssql), los mensajes de registro relacionados con los comandos de inserción, rotas por la transacción no válida, se perdieron.
- Se ha corregido un memleak en conductor destino de SQL. El memleak ocurrió durante uno de los fracasos de transacción.
- Un certificado que no está contenida en la lista de las huellas dactilares se rechaza a partir de ahora.
- cheque de host en el certificado TLS es sensible a mayúsculas a partir de ahora.
- hilado Fix en EOF para `unix-stream ()` sockets. Causa raíz del hilado era que un socket unix-dgram se creó incluso en caso de unix-stream.
¿Cuál es nuevo en la versión 3.6.1:
- Esta es la primera producción de la versión preparada de syslog- ng OSE 3.6. Más de 25.000 líneas de código fof cambiaron, con cerca de 500 archivo modificado.
- Las nuevas dependencias:
- PCRE es ahora una dependencia necesaria de syslog-ng, y no es opcional ya.
- impagos Modificados:
- Modo compacto está ahora ** ** habilitado de forma predeterminada. Para desactivarlo, usar `roscada (no)` en la sección de opciones globales.
- El control de versiones de la 'biblioteca interna-libsyslog ng` ha cambiado: en lugar de utilizar siempre el número de la versión actual, ahora vamos a tratar de mantener la compatibilidad ABI durante la vida de una rama estable. Por lo tanto, utilizamos sólo los dos primeros componentes de nuestra versión que la base de la versión de la biblioteca. Otro número será parte de la SONAME también, pero eso sólo cambiará cuando rompemos la compatibilidad.
- El SONAME se fija actualmente a `libsyslog-ng-3.6.so.0`, y seguirá siendo el mismo durante versiones alfa y beta, incluso cuando cambia la ABI. Vamos a empezar a golpear la versión después de la primera versión estable de esta rama, si es necesario.
- El `flush-líneas ()` establecer ahora defecto * 100 *, en lugar de * 1 *, para aumentar la velocidad.
- Características:
- Nuevas opciones:
- Una nueva `dominio personalizado ()` configuración global se introdujo, lo que permite al administrador reemplazar el nombre de dominio local utilizado por syslog-ng. Afecta a todas las genera localmente los mensajes de registro.
- Se ha añadido una `uso rcptid ()` opción global, que le dice a syslog-ng para asignar un ID de recepción de cada mensaje recibido y generado por syslog-ng. Esta ID está disponible como el `macro $ RCPTID`, y es único en un huésped dado. El contador se envuelve alrededor de 48 bits y nunca es cero.
- Los nuevos conductores:
- El pseudofile () `` controlador de destino es un piloto muy simple, orientada a entregar mensajes a los archivos especiales en `/ proc` o` / dev`. Se abre y se cierra el archivo en cada mensaje, en lugar de mantenerla abierta. No es compatible con las plantillas en el nombre del archivo, y no tiene una cola (y, como tal, no es adecuada en situaciones de alto tráfico).
- Las nuevas `nodejs ()` driver de código (implementado como una macro SCL) agrega un controlador de código que permite a syslog-ng para aceptar mensajes de aplicaciones Node.js que utilizan la API de registro `winston`.
- El nuevo `syslog systemd ()` fuente sustituye a la anterior apoyo implícito a la misma cosa. Los usuarios que utilizan systemd se les recomienda usar ya sea el `sistema ()` fuente, o esta nueva cuando quieren recibir los registros de systemd a través de la `/ run / systemd / revista / socket syslog`.
- El nuevo controlador de código systemd-revista () lee el Diario directamente, no a través de la toma de reenvío syslog. El `system ()` defaults de origen a utilizar esta fuente cuando se detecta systemd.
- groupset Añadido objeto de reescritura. Groupset permite al usuario modificar varias propiedades de los mensajes de registro a la vez. También permite hacer referencia al antiguo valor de la propiedad como el $ _ macro.
- Características del [Incubadora] [incubadora]:
- Los `$ (o)` función de plantilla que devuelve el primer argumento no vacío se incluye ahora en syslog-ng en sí.
- El `$ (relleno)` función de plantilla, al texto de la almohadilla con el relleno personalizado a una longitud dada también se incluye.
- El `$ (grafito-output)` función de plantilla, que se utilizará para el envío de métricas para [Grafito] [grafito] fue portado desde la Incubadora. El `grafito ()` bloque SCL destino también está disponible ahora, para que sea aún más fácil hablar con grafito.
- El `riemann ()` destino, que permite el envío de métricas para el sistema [Riemann] [riemann] monitoreo también fue portado el relevo de la Incubadora.
- [grafito]: http://graphite.wikidot.com/
- [incubadora]: https://github.com/balabit/syslog-ng-incubator
- [riemann]: http://riemann.io/
- destinos roscados:
- Una serie de características se aplicaron a todos los destinos roscados:
- `amqp ()`, `mongodb ()`, `redis ()`, `riemann ()`, `smtp ()` y `pisotón ()`.
- Los destinos consiguieron apoyo para `persistencia SEQNUM`: el contador se conserva durante las recargas y reinicios .
- Una nueva opción llamada `reintentos ()` se implementó para todos ellos, que controla cuántas veces se vuelve a intentar un parto mensaje antes de que se caiga.
- El `acelerador ()` opción ahora se implementa, y trabaja para todos los controladores de destino antes mencionados.
- El bucle de entrega de mensajes se ha optimizado para hacer menos ciclos de sueño / despertar, lo que debería hacer que los controladores no sólo es más rápido, pero más CPU amable también.
- Otras nuevas funcionalidades:
- El multi-línea-mode () `opción ganó un nuevo setting:` prefijo-suffix`, que funciona de manera similar a la `prefijo-garbage` (que es el nuevo nombre de` regexp`), excepto que agrega la parte de basura al mensaje, en lugar de descartarlo.
- Esta nueva modalidad se puede utilizar para evitar la ausencia de un tiempo de espera.
- Filtros por defecto a PCRE a juego, en lugar de la anterior por defecto regexp POSIX.
- El `system ()` fuente ahora analizar `@ cim` marcados mensajes como JSON, si el módulo JSON está disponible en tiempo de ejecución. Esto mejora la inter-operación con otro software que utiliza el * Modelo de información común *.
- Uno puede ahora utilizar varios elementos en la tecla `()` y `exclude ()` opciones de cualquier declaración de valor de pares.
- Ahora es posible cargar no sólo un único certificado al utilizar TLS, pero una cadena de certificados.
- Estadísticas:
- Las estadísticas de contrarrestar para los contadores PROGRAMA ahora incluye la fecha y hora de la última actualización.
- Una nueva `stats-vida ()` opción global fue introducido, que controla la frecuencia se cumplan contadores dinámicos. El temporizador no es exacto, algunos contadores de tiempo puede vivir un poco más largo que el tiempo especificado.
- contadores dinámicos ahora se limpian cada `stats-vida ()` minutos (morosos a 10 minutos), en lugar de sólo en recargas. Este cambio se hizo para reducir la memoria utilizada por contadores dinámicos.
- Existe ahora una `estadística internal_queue_length`, que muestra la longitud de la cola interna. Esto es muy útil para ver si el `interna ()` fuente no está conectado, o si no se está vaciando lo suficientemente rápido (que, de nuevo, indica un error más grave).
- MongoDB:
- El `mongodb ()` conductor ahora es compatible con la autenticación, incluso cuando se utilizan conjuntos de réplicas. Cuando se vuelve a conectar a otro miembro del conjunto, el controlador automáticamente volver a autenticarse.
- La opción `--with-libmongo-Client` del script configure ahora soporta` auto` como un valor, y detectará si se debe utilizar la versión del sistema de la biblioteca o la copia interna. Omitimos el `auto` ahora, que prefiere la biblioteca del sistema sobre la copia interna.
- El conductor no agrega automáticamente un campo `_id` al mensaje: el servidor hará que automáticamente, si no está presente. Esto permite a los usuarios modificar el campo desde dentro de su config syslog-ng.
- Una nueva `reintentos ()` opción se puede usar para decirle al conductor cuántas veces se debe tratar de insertar un mensaje en la base de datos antes de abandonar (por defecto 3). Esto soluciona el caso en que un mensaje pícaro podría soportar toda la cola, ya que fue juzgado para siempre.
- El conductor ahora permite a `safe-mode ()` por defecto.
- En la actualidad existe un tiempo de espera de un minuto para las operaciones de MongoDB. Si los tiempos de una operación fuera, se considerará que ha fallado.
- El conductor puede ahora conectarse a MongoDB vía sockets de dominio UNIX.
- El `doble ()` Tipo de pista es ahora compatible con el controlador.
- En el destino MongoDB, volver a conectar en un entorno del conjunto de réplicas ahora funciona correctamente y de forma fiable.
- Para construir syslog-ng con el destino MongoDB, libmongo-cliente de la versión 0.1.8+ ahora se requiere. (La copia interna se ha actualizado en consecuencia.)
- cambios de destino SMTP:
- El `smtp ()` destino ahora es compatible con un `reintentos de opción ()`, que controla cuántas veces se intentará una entrega de mensajes antes de que se caiga.
- Las plantillas utilizadas en el destino ahora honrar la configuración de zona horaria.
- El conductor abortará si las opciones requeridas (cualquiera de `a ()`, `cc ()`, `bcc ()` y `de ()` y `sujeto ()` y `cuerpo ()`) no se han establecido.
- Unix sockets de dominio:
- El `unix-dgram ()` y `unix-stream ()` fuentes ahora extraen credenciales UNIX (PID, UID y GID de la aplicación de envío) de los mensajes transmitidos, si los hubiere. En Linux y FreeBSD, la ruta del ejecutable que pertenece a PID se extrae también, junto con los argumentos de línea de comandos.
- Los valores extraídos están disponibles en `$ {. Unix.pid}`, `$ {}. Unix.uid`, `$ {. Unix.gid}`, `$ {. Unix.exe}` y ` $ {. unix.cmdline} `, respectivamente.
- El `system ()` fuente sobrescribirá la macro PID con el valor de '$ {. Unix.pid} `, si está presente.
- JSON:
- El json-parser ganó un `extracto prefijo ()` opción, que puede ser usado para decirle al analizador para extraer sólo los miembros JSON de un subárbol específico del objeto entrante.
- Ejemplo: `json-parser (extracto prefijo (& quot; foo.bar [5] & quot;));`
- Suponiendo que el objeto entrante se denomina msg, esto es equivalente al siguiente código javascript: `msg.foo.bar [5] '
- La expresión resultante debe ser un objeto JSON, de modo que syslog-ng puede extraer sus miembros en logMessage pares nombre-valor.
- Esto también funciona cuando el objeto de nivel superior es una matriz, como `extracto prefijo ()` permite el uso de un índice de matriz en el primer nivel indirecto, por ejemplo: `json-parser (extracto prefijo (& quot [5]; & quot;)); ', que se traduce como `msg [5]' .
- El `$ (formato JSON)` función de plantilla ahora maneja el `doble ()` Tipo de pista.
- Depuración:
- Al enviar mensajes a stderr en modo de depuración, anteponer una marca de tiempo a los mensajes.
- El nuevo `macro $ RUNID` está disponible para las plantillas, que cambia su valor cada vez que syslog-ng se reinicia, pero no cuando se vuelve a cargar.
- Se ha añadido un archivo de supresión Valgrind (disponible en `contrib / valgrind /`), para ayudar en la depuración de las fugas de memoria en syslog-ng. Se suprime un par de falsos positivos conocidos, y algunas otras cosas en las bibliotecas de terceros.
- Una nueva utilidad, `sistema expand`, se añadió, que devuelve lo que el` sistema () `fuente ampliaría a.
- Corrección de errores:
- La fiabilidad de la usertty () `` controlador destino subió drásticamente. Anteriormente, algunas partes del mismo no fueron thread-safe, lo que podría provocar un comportamiento extraño.
- El manejo de las banderas de escape relacionados de `csvparser ()` se ha cambiado: en lugar de estas banderas sobreescritura todas las demás banderas (aunque no de escape relacionados), si el pabellón que establezcan un escape de bandera, que se mantendrá todos los no banderas -Escape, y establecer una nueva. Si es un no una bandera tal, entonces será borrar todas las banderas, y establece las banderas de escape anteriores, y la nueva bandera.
- Esto, en esencia, significa que la hora de establecer las banderas en un `csvparser ()`, si se trata de una bandera de escape, sólo escapar banderas se verán afectados. Si no, entonces escapar banderas no se verán afectados en absoluto.
- El destino de SQL ahora sigue correctamente el conteo $ SeqNum después de una recarga, en lugar de empezar de nuevo.
- error eliminado en destino Riemann casting cuando métrica se aplica a un campo vacío.
- A partir de ahora, syslog-ng siempre excluye atributos que están en conflicto con las propiedades de destino Riemann (de lo contrario el valor del atributo sería reemplazar la propiedad).
- Cuando Tring para dejar de syslog-ng, mientras que la recarga está en curso, syslog-ng ahora cerrar correctamente limpiamente.
- Recarga de un error de ejecución de archivos de configuración que contiene ahora no termina en un accidente, es capaz de repliegue a la configuración inicial. (Error de ejecución: el archivo de configuración es gramaticalmente válida, pero que contiene un valor no válido, por ejemplo .: nombre de la columna de base de datos incorrecta)
- Cuando el nombre de host local no es un FQDN, y el solucionador local no logra devolver un FQDN también, syslog-ng no aborta más, pero sigue utilizando un nombre de host no FQDN después de la emisión de un aviso en la fuente interna.
- Por otra parte, syslog-ng intentará resolver el FQDN más difícil:. Cuando se devuelven varios nombres, buscará por primera FQDN uno, en lugar de detenerse en el nombre principal
- El `script update-patterndb` ahora funcionará correctamente cuando el directorio de trabajo actual contiene archivos .pdb.
- Patterndb fijado para solicitar la condición aunque contexto-ID no existe.
- Ahora vamos a manejar correctamente el tiempo de ir hacia atrás en patterndb: será realinear su idea de la hora actual con el sistema. Esto corrige un error por el que los tiempos de espera no funcionaban correctamente cuando la hora del sistema se creó hacia atrás.
- El comando merge` pdbtool `ahora generar la versión 4 archivos patterndb.
- El apoyo capacidad de Linux está ahora correctamente detecta automáticamente por el script configure, y el valor predeterminado off en FreeBSD 9+, como debe ser.
- El archivo `()` y `red ()` (incluyendo `tcp ()` y otros) fuentes ahora configurar correctamente el `macro $ SOURCE`.
- El módulo basicfuncs se fijó para trabajar correctamente en arquitecturas de 32 bits.
- Los `estadísticas stored` ya no se incrementa en varios conductores cuando quieren decir` processed`.
- La característica hinting tipo es ahora más exigente con qué clase de tipo insinúa que acepta, que permite una para utilizar las funciones de plantilla en - por ejemplo -. '$ (Formato JSON) `pares
- Todas las diversas funciones de plantilla relacionadas cripto ahora comprobar que la longitud deseada de la digestión no es más grande que el propio resumen. Si se solicita un valor mayor, van a truncar a la longitud de digestión.
- Los `$ (GeoIP)` función de plantilla trabaja ahora con `hilo (yes)` también.
- El `en-list ()` filtro se fija a mirar a todos los elementos de la lista, en lugar de sólo el último.
- Se ha solucionado un afirmación cuando se utiliza el `match ()` filtro bajo ciertas circunstancias.
- El `system ()` fuente no agregará `/ dev / kmsg` (o` / proc / kmsg` en núcleos mayores) a las fuentes por defecto si el uso de la revista systemd, ya que los registros del kernel se incluyen en la revista.
- El `system ()` fuente no incluirá `/ dev / kmsg` (o` / proc / kmsg`) cuando se ejecuta dentro de un contenedor de Linux.
- Varias correcciones de fugas de memoria todo el código base.
- Mensaje de toma de control de cambios desde la convocatoria para depurar
- La apertura de toma de control desactivada cuando syslog-ng se utiliza para la única sintaxis de comprobación.
- Correcciones para reintentos (funcionalidad). Vuelva a intentar contador incrementa en cada mensaje de error de escritura (incluyendo errores de conexión de red) que puede llevar al mensaje perdido.
- Varios cambios:
- ahora enviamos a & quot; & quot Guía Colaboradores; en el archivo CONTRIBUTING.md` `.
¿Cuál es nuevo en la versión 3.5.1:
- Esta es la primera versión estable de la serie 3.5 , añadiendo una serie de características en comparación con 3.4, resultado de unos ocho meses de desarrollo. Esta versión incluye todas las revisiones de la reciente liberación 3.4.5, y una serie de nuevas características.
- Corrección de errores:
- Una condición de carrera en el mensaje de registro de código de cuenta de referencias que a veces dio lugar a accidentes fue corregido. [# 255]
- También se fijó un error de uso después de liberación que a veces sucedió después de una recarga, y causó daños en la memoria. [# 253]
- patterndb se corrigió no crear una nueva instancia de recarga: de esta manera, el viejo no se filtró, y db-parser () no se olvida de el estado de correlación, ni su idea de la hora actual de recarga. [# 257]
- El archivo-syslog ng.spec no intenta instalar el fichero de cambios largamente eliminado ya.
¿Qué hay de nuevo en la versión 3.5.0 Beta 3:
- escape Plantilla:
- Plantilla de escapar fue cambiado de una manera incompatible: con anterioridad, tanto en el léxico y el compilador plantilla utilizada el carácter '' para escapar, lo que se presta a confusión. El compilador plantilla utiliza '$$' para escapar del char '$', y '@@' escapar '@'.
- Si un valor no numérico sigue '@', una advertencia será impreso.
- Corrección de errores:
- syslog-ng debería compilar de nuevo en las plataformas no Linux.
- El flush () y fsync () Opciones del destino del archivo se fijaron, y deben trabajar de la misma manera ahora como lo hacen en 3.3 y 3.4.
- La biblioteca hiredis debe ser detectado en el valor por defecto incluyen rutas de acceso, por lo que uno no necesariamente debe especificar --with-libhiredis sistemas no no Debian. Dicha opción también se hizo para trabajar.
- Una corrupción de memoria se fijó en el @ STRING @ analizador de db-parser ().
- No incluye ahora funciona correctamente con value-pairs (), y ellos no se tiene en cuenta si el valor de excluir en el conjunto predeterminado.
¿Qué hay de nuevo en la versión 3.3.2:.
- Estabilidad y pérdida de memoria correcciones
¿Qué hay de nuevo en la versión 3.3.1:
- Soporte integrado para eventos MongoDB, JSON formateados, y una arquitectura multi-threaded que escala syslog-ng para arriba en el / segundo rango 800.000 mensaje.
¿Qué hay de nuevo en la versión 3.2.1:
- Este es el primer lanzamiento de la nueva versión principal de syslog-ng, que contiene la lista más larga de características desde el inicio del proyecto syslog-ng como mensaje de registro de correlación y soporte para plugins.
¿Qué hay de nuevo en la versión 3.2 Alpha 2:
- Ahora compila en todas las plataformas y la unidad / funcional pruebas también se ejecutan. (Probado: AIX, HP-UX, Solaris, FreeBSD, Linux, Tru64)
- pdbtool fijo de salida partido --debug-patrón para Estring analizadores.
- Se ha corregido un posible pérdida de memoria en el analizador léxico, que se acumularía en SIGHUPs caso.
- Solaris Fijo ARROYOS soporte de dispositivos.
- Reenviar portado todas las correcciones de errores de syslog-ng OSE 3.0 y 3.1
- Proceso Desactivar módulo de contabilidad por defecto, ya que no se compila en plataformas no Linux.
- Agregado & quot; partido pdbtool --file & quot; opción de leer y analizar un archivo de registro existente.
- Agregado & quot; prueba pdbtool & quot; para comprobar las muestras de registro en el archivo patterndb.
- Agregado & quot; dont-crear-mesas & quot; bandera para el destino de SQL para inhibir la creación automática de tablas.
- Agregado & quot; la condición () & quot; apoyo a las expresiones de reescritura, lo que hace posible saltarse las reglas de reescritura que no coinciden con una expresión de filtro.
- Agregado & quot; - Módulo-path & quot; línea de comandos opción de controlar que los módulos se cargan desde la línea de comandos.
¿Qué hay de nuevo en la versión 3.1 Beta 1:
- Soporte para patterndb v3
- pdbtool
- etiquetas Mensaje
- Reescribir datos estructurados
- Integración Macro y nombre-valor
- Nombre-valor
- Mejoras analizador Patterndb
- Información sobre los centros no portátiles
- Nombre-valor
- Mejoras analizador Patterndb
- Información sobre los centros no portátiles
Mejoras de rendimiento par
Mejoras de rendimiento par
Comentarios que no se encuentran