syslog-ng est un open source, version gratuite et améliorée du projet de syslogd qui a commencé il ya dix ans pour les systèmes d'exploitation de type UNIX comme Linux et. L'application peut fonctionner en mode serveur ou l'agent, et prend en charge le protocole TCP fiable (Transmission Control Protocol) du protocole.
Le projet offre aux utilisateurs un logiciel en ligne de commande qui peut être utilisé avec succès comme une solution de gestion des logs viable pour créer, recueillir, classer, filtrer, avant, ainsi que pour stocker connecter messages.Features à une des caractéristiques glanceKey inclure haute performance, de confiance transfert, une fiabilité accrue, le filtrage des messages et de tri, événement marquage et la corrélation, le soutien aux plus récentes normes de l'IETF, et une communauté grand utilisateur.
Avec le logiciel syslog-ng, les administrateurs système qualifiés seront en mesure de construire avec succès une infrastructure flexible et fiable même l'enregistrement dans des environnements hétérogènes, sans trop de tracas et dans le plus bref délai que possible.Command programme en ligne OptionsThe dispose d'une grande variété de commandement Options -LINE, parmi lesquelles on peut citer la possibilité de définir la liste des côlon dossiers distincts qui seront utilisés pour rechercher des modules, voir des informations module, mis le nom du fichier de configuration et le fichier de configuration persistante, écrire le fichier de configuration prétraité à un fichier spécifique, analyser et lire le fichier de configuration, définissez la prise de contrôle, ainsi que pour définir le nombre de travailleurs d'E / S threads.Getting commencé avec le programme syslog-ngThe est entièrement écrit en langage de programmation C et il & rsquo; s distribué comme sources archive universel (archive). Pour l'installer sur votre système GNU / Linux, la première recherche d'une construction pré-paquet binaire sur les dépôts de logiciels par défaut de votre distribution.
Si le logiciel ne est pas disponible sur votre distro, téléchargez la dernière archive tar de Softoware, l'enregistrer sur votre ordinateur, décompressez-le, ouvrir un terminal Linux et accédez à l'emplacement du fichier d'archive extraite avec le & lsquo; cd & rsquo; commande.
Ensuite, exécutez le & lsquo; ./ configurer && make & rsquo; commande d'optimiser et de compiler le programme pour votre architecture système / d'exploitation du matériel, suivi par le & lsquo; make install & rsquo; commande en tant que root ou avec sudo pour installer l'ensemble du système et le rendre disponible à tous les utilisateurs
Ce qui est nouveau dans cette version:.
- < li> Caractéristiques:
- Nouveau paramètre ajouté à Loggen:. --permanent (-T) Wich est pour l'envoi de journaux indéfiniment
- Corrections:
- A partir de maintenant, syslog-ng ne plantera pas lorsque vous utilisez une destination Riemann et aucun attribut ne est défini.
- Dans certains cas, la destination du programme réapparu lors de syslog-ng arrêt / redémarrage.
- Longueur max de paquets pour la source spoof est réglée sur 1024 (auparavant: 256).
- syslog.socket Retiré du fichier de service sur les systèmes utilisant systemd. Syslog-ng lit les messages directement à partir de la revue sur les systèmes avec systemd.
- Dans certains cas, les macros localtime liés avaient une valeur erronée (par exemple:. ANNÉE $).
- Transaction Correction de la gestion dans la destination SQL. Dans certaines circonstances, lorsque les deux choisir et insérer des commandes ont été effectuées dans une seule transaction et la sélection a échoué (par exemple .: en cas d'mssql), les messages de journal liées aux commandes d'insertion, brisés par la transaction invalide, ont été perdus.
- Correction d'un MemLeak dans le pilote de destination SQL. Le MemLeak est produite lors de l'un des échecs de transaction.
- Un certificat qui ne est pas contenue par la liste des empreintes digitales est rejeté à partir de maintenant.
- Contrôle de nom d'hôte dans le certificat de TLS est insensible à la casse à partir de maintenant.
- Fix filer sur EOF pour `unix-flux ()` sockets. Root cause de la rotation était qu'un socket unix-dgram a été créé, même en cas d'unix-flux.
Quoi de neuf dans la version 3.6.1:
- Ce est la première version de production de prêts syslog- ng OSE 3.6. Plus de 25 000 lignes de code FoF changé, avec environ 500 fichier modifié.
- Nouveaux dépendances:
- PCRE est maintenant une dépendance requis de syslog-ng, et ne est pas facultative plus.
- par défaut changé:
- le mode hiérarchique est maintenant activé ** ** par défaut. Pour le désactiver, utilisez `filetée (pas)` dans la section des options globales.
- Le versions de la bibliothèque interne `libsyslog-ng` a changé: au lieu de toujours utiliser le numéro de version actuelle, nous allons maintenant essayer de maintenir la compatibilité ABI au cours de la durée de vie d'une branche stable. Par conséquent, nous ne utilisons que les deux premières composantes de notre version de la base de la version de la bibliothèque. Un autre numéro fera partie de la SONAME aussi, mais cela ne changera que lorsque nous rompons compatibilité.
- Le SONAME est actuellement fixé à `libsyslog-ng-3.6.so.0`, et restera le même lors de versions alpha et bêta, même lorsque les changements ABI. Nous allons commencer cogner la version après la première version stable de cette branche, si nécessaire.
- Les `flush-lignes ()` Réglage maintenant par défaut * 100 *, plutôt que * 1 *, pour une vitesse accrue.
- Caractéristiques:
- Nouvelles options:
- Une nouvelle `custom-domaine ()` paramètre global a été introduit, ce qui permet à l'administrateur de remplacer le nom de domaine local utilisé par syslog-ng. Il affecte tous générée localement les messages du journal.
- Ajout d'un `usage rcptid ()` de l'option globale, qui raconte syslog-ng pour attribuer un ID de réception à chaque message reçu et généré par syslog-ng. Cet ID est disponible comme `macro $ RCPTID`, et est unique sur un hôte donné. Le compteur se enroule autour à 48 bits et ne est jamais nul.
- Nouveaux conducteurs:
- Le `pseudofichier ()` pilote de destination est un pilote très simple, visant à transmettre des messages à des fichiers spéciaux dans `/ proc` ou` / dev`. Il ouvre et ferme le fichier sur chaque message, au lieu de le garder ouvert. Il ne supporte pas les modèles dans le nom du fichier, et ne pas avoir une file d'attente (et en tant que telle, ne est pas adéquate dans les situations à fort trafic).
- Les nouvelles `nodejs ()` de pilote de source (implémenté comme une macro SCL) ajoute un pilote de source qui permet syslog-ng à accepter les messages provenant applications Node.js qui utilisent l'API de journalisation `winston`.
- Le nouveau `syslog-systemd ()` la source remplace l'ancien soutien implicite pour la même chose. Les utilisateurs qui utilisent systemd est conseillé d'utiliser soit le système `()` source ou ce nouveau quand ils veulent recevoir des journaux de systemd via le socket `/ run / systemd / journal / syslog`.
- Le nouveau pilote de source systemd-Journal () lit le Journal directement, et non via la prise de transfert syslog. Le système `()` defaults source à utiliser cette source lorsque systemd est détecté.
- objet de réécriture de groupset ajouté. Groupset permet à l'utilisateur de modifier plusieurs propriétés du message de journal à la fois. Il permet également référence à la vieille valeur de la propriété que la macro $ _.
- Caractéristiques de la [Incubateur] [incubateur]:
- Les `$ (ou)` fonction de modèle qui renvoie le premier argument non-vide est maintenant inclus dans syslog-ng lui-même.
- Le `$ (padding)` fonction de modèle, au texte de pad avec un rembourrage personnalisé à une longueur donnée est également inclus.
- Le `$ (graphite-sortie)` de fonction modèle, qui sera utilisé pour l'envoi de paramètres pour [Graphite] [graphite] a été porté au cours de l'incubateur. Le `graphite ()` destination bloc SCL est également disponible dès maintenant, pour le rendre encore plus facile de parler à graphite.
- Le `riemann ()` destination, ce qui permet d'envoyer des paramètres pour le système [Riemann] [riemann] suivi a également été portés depuis l'Incubateur.
- [graphite]: http://graphite.wikidot.com/
- [incubateur]: https://github.com/balabit/syslog-ng-incubator
- [riemann]: http://riemann.io/
- destinations filetés:
- Un certain nombre de caractéristiques ont été mis en œuvre pour toutes les destinations filetés:
- `AMQP ()`, `mongodb ()`, `redis ()`, `riemann ()`, `smtp ()` et `Stomp ()`.
- Les destinations ont obtenu le soutien pour `SEQNUM` persistance: le compteur sera préservé à travers les rechargements et redémarre .
- Une nouvelle option appelée `tentatives ()` a été mis en œuvre pour l'ensemble de ceux-ci, qui contrôle combien de fois un message livraison est rejugée devant tomber.
- Le `gaz ()` option est maintenant mis en œuvre, et travaille pour tous les pilotes de destination ci-dessus.
- La boucle de livraison de message a été optimisé pour faire moins de cycles sommeil / réveil, ce qui devrait rendre les pilotes non seulement plus rapide, mais plus de CPU sympa aussi.
- nouvelles fonctionnalités Divers:
- Le `multi-mode ligne () option` a gagné un nouveau paramètre: `préfixe suffix`, qui fonctionne de façon similaire à la` préfixe garbage` (qui est le nouveau nom de `regexp`), sauf qu'il ajoute la partie des ordures au message, au lieu de le jeter.
- Ce nouveau mode peut être utilisé pour contourner l'absence d'un délai d'attente.
- Filtres défaut à PCRE correspondant, au lieu de l'expression rationnelle POSIX précédente défaut.
- Le `system ()` la source va maintenant analyser `@ cim` marqués messages que JSON, si le module JSON est disponible au moment de l'exécution. Cela améliore inter-opération avec un autre logiciel qui utilise le Common Information Model * *.
- On peut maintenant utiliser plusieurs éléments dans la clé `()` et `exclure ()` des options de toute déclaration de valeur paires.
- Il est maintenant possible de charger non seulement un seul certificat pour l'utilisation de TLS, mais une chaîne de certificats.
- Statistiques:
- Les stats contrer pour les compteurs de programme comprend désormais l'horodatage de la dernière mise à jour.
- Une nouvelle `stats-vie ()` option globale a été introduite, qui contrôle la fréquence compteurs dynamiques sont expirés. La minuterie est pas exacte, certaines minuteries peut vivre un peu plus longtemps que le temps spécifié.
- compteurs dynamiques sont désormais nettoyés tous les `stats-vie ()` minutes (par défaut, 10 minutes) au lieu de seulement sur les recharges. Ce changement a été fait pour réduire la mémoire utilisée par les compteurs dynamiques.
- Il ya maintenant un `internal_queue_length` statistique, qui montre la longueur de la file d'attente interne. Ceci est très utile pour voir si le `interne ()` source ne est pas connecté, ou si elle ne est pas vidé assez vite (ce qui, encore une fois, indique une erreur plus grave).
- MongoDB:
- Le `mongodb ()` prend désormais en charge l'authentification pilote, même en utilisant des jeux de réplicas. Lorsque re-connecter à un autre membre de l'ensemble, le pilote sera automatiquement ré-authentifier.
- L'option `--with-libmongo-Client` du script de configuration prend désormais en charge` auto` comme une valeur, et détecte alors si vous souhaitez utiliser la version du système de la bibliothèque ou de la copie interne. Nous défaut à `auto` maintenant, qui préfère la bibliothèque du système sur la copie interne.
- Le pilote ne ajoute pas automatiquement un champ `_id` au message: le serveur va le faire automatiquement, si aucun ne est présent. Cela permet aux utilisateurs de modifier le champ à partir de leur configuration de syslog-ng.
- Une nouvelle `tentatives ()` option peut être utilisée pour dire au chauffeur combien de fois il devrait essayer d'insérer un message dans la base de données avant d'abandonner (par défaut, 3). Cela corrige le cas où un message voyou ne pourrait contenir jusqu'à toute la file d'attente, comme il a été rejugé pour toujours.
- Le pilote permet maintenant `safe-mode ()` par défaut.
- Il ya maintenant un délai d'une minute pour les opérations MongoDB. Si les temps une opération expire, il sera considéré comme ayant échoué.
- Le conducteur peut maintenant se connecter à MongoDB via les sockets Unix.
- Le `double ()` Type soupçon est désormais pris en charge par le conducteur.
- Dans la destination MongoDB, reconnecter dans un environnement de replica-set fonctionne maintenant correctement et de manière fiable.
- Pour construire syslog-ng avec la destination MongoDB, libmongo-client version 0.1.8+ est maintenant nécessaire. (La copie interne a été mis à jour en conséquence.)
- changements de destination SMTP:
- Le `smtp ()` destination prend désormais en charge un `tentatives ()` options, qui contrôle combien de fois un message livraison sera tentée avant la laisser tomber.
- Les modèles utilisés dans la destination maintenant honorer les paramètres de fuseau horaire.
- Le pilote annulerait si les options nécessaires (une des `pour ()`, `cc ()`, `bcc ()` et `partir de ()` et `sujet ()` et `corps ()`) ne sont pas définies.
- Unix Domain Sockets:
- Le `unix-dgram ()` et `unix-flux ()` sources extraient maintenant pouvoirs UNIX (PID, UID et GID de la demande d'envoi) des messages transmis, le cas échéant. Sur Linux et FreeBSD, le chemin de l'exécutable appartenant à PID est extrait aussi, avec des arguments de ligne de commande.
- Les valeurs extraites sont disponibles dans `$ {. Unix.pid}`, `$ {}. Unix.uid`, `$ {. Unix.gid}`, `$ {. Unix.exe}` et ` {$. unix.cmdline} `, respectivement.
- Le `system ()` la source va écraser la macro PID avec la valeur de `$ {. Unix.pid}`, si elle est présente.
- JSON:
- Le JSON-parser gagné un `extrait préfixe ()` option, qui peut être utilisé pour indiquer à l'analyseur de ne extraire membres JSON à partir d'une sous-arborescence spécifique de l'objet entrant.
- Exemple: `json-parser (extrait préfixe (& quot; foo.bar [5] & quot;));`
- En supposant que l'objet entrant est nommé msg, ce est équivalent au code JavaScript suivant: `msg.foo.bar [5]`
- L'expression résultant doit être un objet JSON, de sorte que syslog-ng peut extraire ses membres en logMessage paires nom-valeur.
- Ceci fonctionne également lorsque l'objet de haut niveau est un tableau, comme `extrait préfixe ()` permet l'utilisation d'un index de tableau au premier niveau d'indirection, par exemple: `json-parser (extrait préfixe (& quot [5]; & quot;)); `, qui se traduit par` msg [5] ` .
- Le `$ (format JSON)` fonction de modèle gère maintenant la `deux ()` Type soupçon.
- Correction:
- Lorsque vous envoyez des messages à stderr en mode débogage, précéder un horodatage aux messages.
- Le nouveau `macro $ RUNID` est disponible pour les modèles, qui change sa valeur chaque fois que syslog-ng est redémarré, mais pas quand rechargé.
- Un fichier de suppression Valgrind a été ajouté (disponible sous `contrib / valgrind /`), pour aider à déboguer les fuites de mémoire dans syslog-ng. Il supresses un couple de faux positifs connus, et quelques autres choses dans les bibliothèques tiers.
- Un nouvel utilitaire, `système expand`, a été ajouté, ce qui renvoie le` system () `source devait se étendre à.
- Correction de bugs:
- La fiabilité de la `usertty ()` pilote de destination a été grandement améliorée. Auparavant, certaines parties de celui-ci ne étaient pas thread-safe, ce qui pourrait entraîner un comportement étrange.
- Le traitement de secours liées drapeaux de `csvparser ()` a été modifiée: au lieu de ces drapeaux en écrasant tous les autres (même non-évacuation liés) drapeaux, si le pavillon d'établir est une évasion-drapeau, elle permet de conserver tous les non drapeaux commande de format, et mettre le nouveau. Si ce est un tel un drapeau pas, alors il va effacer tous les drapeaux, et définissez les drapeaux d'échappement précédentes, et le nouveau drapeau.
- Ce est en substance, signifie que lors de la mise drapeaux sur un `csvparser ()`, si ce est un drapeau d'échappement, ne échappe drapeaux seront touchés. Si non, alors échapper drapeaux ne seront pas affectés du tout.
- La destination SQL continue maintenant correctement $ SEQNUM comptage après un rechargement, au lieu de prendre un nouveau départ.
- Castings erreur éliminée en destination Riemann quand métrique est appliqué à un champ vide.
- A partir de maintenant, syslog-ng exclut toujours les attributs qui sont en conflit avec des propriétés dans la destination de Riemann (sinon la valeur de l'attribut serait substituer la propriété).
- Lorsque Tring pour arrêter syslog-ng tandis qu'une recharge est en cours, syslog-ng sera désormais correctement arrêté proprement.
- Rechargement une erreur d'exécution fichier de configuration contenant pas maintenant se termine dans un accident, il est capable de repli à la configuration d'origine. (Erreur d'exécution: fichier de configuration est grammaticalement valide mais contenant valeur non valide, par exemple .: mauvaise base de données nom de la colonne)
- Lorsque le nom d'hôte local ne est pas un nom de domaine complet et le résolveur locale ne parvient pas à retourner un nom de domaine complet aussi, syslog-ng ne plus se interrompt pas, mais continue à utiliser un nom d'hôte non-FQDN après l'émission d'un avertissement sur la source interne.
- En outre, syslog-ng va essayer de résoudre le FQDN plus difficile:. Lorsque plusieurs noms sont renvoyés, il va rechercher pour la première FQDN une, au lieu de se arrêter au nom principal
- Le script `update-patterndb` fonctionne désormais correctement lorsque le répertoire de travail courant contient des fichiers .pdb.
- Patterndb fixé à appliquer état, même si le contexte-id est manquant.
- Nous allons maintenant gérer correctement le temps d'aller en arrière dans patterndb: ce sera réaligner son idée de l'heure avec le système. Ceci corrige un bug où les délais d'attente ne fonctionnent pas correctement lorsque l'heure du système a été mis en arrière.
- La commande merge` de pdbtool `générera maintenant la version 4 fichiers patterndb.
- Le soutien des capacités Linux est maintenant correctement auto-détectée par le script de configuration, et est désactivé par défaut sur FreeBSD 9+, comme il se doit.
- Le fichier `()` et `réseau ()` (y compris `tcp ()` et al) sources seront désormais correctement la macro $ `source fixe.
- Le module basicfuncs a été fixé à travailler correctement sur les architectures 32 bits.
- Les statistiques de `stored` ne est plus incrémenté par divers pilotes quand ils veulent dire` processed`.
- La fonction de type hinting est maintenant plus pointilleux sur ce genre de type CONSEILS il accepte, ce qui permet une utilisation des fonctions de modèle dans - par exemple -. `$ (Format JSON)` paires
- Tous les diverses fonctions de chiffrement liées modèle maintenant vérifier que la longueur désirée de la digestion ne est pas plus grande que la digestion elle-même. Si une valeur supérieure est demandée, ils tronquer à la longueur de digestion.
- Les `$ (GeoIP)` fonction de modèle fonctionne maintenant avec `filetée (oui)` aussi.
- Le `en liste ()` filtre a été fixé à regarder tous les éléments de la liste, au lieu de seulement le dernier.
- Correction d'une affirmation lors de l'utilisation du `match ()` filter dans certaines circonstances.
- Le `system ()` source ne sera pas ajouter `/ dev / kmsg` (ou` / proc / kmsg` sur les anciens noyaux) aux sources par défaut si vous utilisez le Journal systemd, parce logs du noyau sont incluses dans la revue.
- Le système `()` source ne sera pas contenir `/ dev / kmsg` (ou` / proc / kmsg`) lors de l'exécution dans un conteneur Linux.
- Diverses corrections de fuites de mémoire autour de la base de code.
- Modifier commande message de prise de préavis pour déboguer
- Ouverture prise de contrôle désactivé lorsque syslog-ng est utilisé pour seule syntaxe de contrôle.
- Corrections pour tentatives () fonctionnalité. Réessayez compteur incrémenté par chaque message d'erreur d'écriture (y compris les erreurs de connexion réseau) qui peut conduire à message perdu.
- Divers changements:
- Nous livrons maintenant un & quot; & quot Guide collaborateurs; dans le fichier `CONTRIBUTING.md`.
Quoi de neuf dans la version 3.5.1:
- Ce est la première version stable de la série 3.5 , en ajoutant un certain nombre de caractéristiques par rapport à 3,4, à la suite de huit mois de développement. Cette version inclut tous les correctifs de la récente libération 3.4.5, et une foule de nouvelles fonctions.
- Correction de bugs:
- Une condition de concurrence dans le message de journal Code de comptage de référence qui a parfois conduit à des accidents a été fixé. [# 255]
- Une erreur d'utilisation ultérieure libre qui arrivait après un rechargement, et a causé corruption de la mémoire a également été fixé. [# 253]
- patterndb a été corrigé de ne pas créer une nouvelle instance sur reload: de cette façon, l'ancien ne est pas divulgué, et db-parser () ne oublie pas l'état de corrélation, ni son idée de l'heure au moment du rechargement. [# 257]
- Le fichier de syslog-ng.spec ne cherche pas à installer le fichier long retiré ChangeLog plus.
Ce qui est nouveau dans la version 3.5.0 Beta 3:
- Modèle échappement:
- Modèle échapper a été modifié d'une manière incompatible: auparavant, à la fois le lexer et le compilateur de modèle utilisé le caractère '' pour échapper, ce qui est source de confusion. Le compilateur de template utilise '$$' pour échapper à la char '$' et '@@' échapper '@'.
- Si une valeur non-numérique suit '@', un avertissement sera imprimé.
- Correction de bugs:
- syslog-ng devrait compiler à nouveau sur des plateformes non-Linux.
- Le flush () et fsync () les options de la destination du fichier ont été fixés, et ils devraient travailler de la même manière comme ils le font maintenant en 3.3 et 3.4.
- La bibliothèque de hiredis doit être détecté sur le défaut comprennent chemins, donc on n'a pas forcément besoin de spécifier --with-libhiredis non systèmes non Debian. Ladite option a également été faite de travailler.
- Une corruption de mémoire a été fixé dans le @ @ STRING analyseur de db-parser ().
- Hors fonctionne maintenant correctement avec valeur paires (), et ils ne obtiennent pas ignoré si la valeur est à exclure dans l'ensemble par défaut.
Ce qui est nouveau dans la version 3.3.2:.
- Stabilité et fuites de mémoire correctifs
Ce qui est nouveau dans la version 3.3.1:
- Prise en charge intégrée pour les événements MongoDB, JSON formatés, et un multi-thread architecture qui se adapte syslog-ng jusqu'à 800 000 messages dans le / seconde gamme.
Ce qui est nouveau dans la version 3.2.1:
- Ce est la première version dans la nouvelle version majeure de syslog-ng, contenant la plus longue liste de fonctionnalités depuis le début du projet syslog-ng comme message de journal corrélation et support des plugins.
Ce qui est nouveau dans la version 3.2 Alpha 2:
- Maintenant compile sur toutes les plateformes et l'unité / fonctionnelle les tests se exécutent également. (Testé: AIX, HP-UX, Solaris, FreeBSD, Linux, Tru64)
- pdbtool fixe sortie correspondance --debug-modèle pour ESTRING analyseurs.
- Correction d'une fuite de mémoire possible dans le lexer, qui se accumuler dans les cas SIGHUPs.
- Solaris fixe FLUX soutien de l'appareil.
- Transférer porté tous les correctifs de syslog-ng OSE 3.0 & 3.1
- Désactiver processus de module de comptabilité par défaut car il ne compile pas sur des plateformes non-Linux.
- Ajouté & quot; match de pdbtool --file & quot; possibilité de lire et analyser un fichier journal existant.
- Ajouté & quot; pdbtool Test & quot; de vérifier les échantillons de journaux dans le fichier patterndb.
- Ajouté & quot; dont-créer-tables & quot; drapeau pour la destination de SQL pour inhiber la création de table automatique.
- Ajouté & quot; condition () & quot; le support des expressions de réécriture, ce qui permet de sauter les règles de réécriture qui ne correspondent pas une expression de filtre.
- Ajouté & quot; - Module-chemin & quot; ligne de commande option pour contrôler où les modules sont chargés à partir de la ligne de commande.
Ce qui est nouveau dans la version 3.1 Beta 1:
- Soutien à patterndb v3
- pdbtool
- Message
- Ressaisissez données structurées
- l'intégration Macro et nom-valeur
- Nom paire valeur-
- Patterndb améliorations analyseur
- Informations sur les centres non-portables
- Nom paire valeur-
- Patterndb améliorations analyseur
- Informations sur les centres non-portables
Balises
Améliorations de performance
Améliorations de performance
Commentaires non trouvées