Beaver est un démon Python qui croque sur les journaux et envoie leur contenu logstash.
Installation
Utilisation PIP:
De Github:
pip installer git + git: //github.com/josegonzalez/beaver.git#egg=beaver
De PyPI:
pip installer castor == 1
Utilisation
utilisation:
castor [-h] [-r {travailleur, interactive}] [-m {bind, connectez}] [PATH -p]
& Nbsp; [- FICHIERS f [fichiers ...]] [-t TRANSPORT]
arguments optionnels:
-h, --help afficher ce message d'aide et de sortie
-r {travailleur, interactive}, {--run travailleur, interactive}
& Nbsp; travailleur de fonctionner soit en mode interactif
-m {bind, connectez}, {--mode bind, connectez}
& Nbsp; bind ou en mode connect
-p PATH, --path chemin de PATH pour les fichiers journaux
FICHIERS -f [fichiers ...], --files files [fichiers ...]
& Nbsp; filelist séparés par des espaces à regarder. Remplacements --path
& Nbsp; l'argument
-t {AMQP, redis, stdout}, {--transport AMQP, redis, stdout}
& Nbsp; log méthode de transport
Contexte
Beaver fournit une méthode légère pour l'expédition des fichiers journaux locaux à Logstash. Il fait cela en utilisant l'redis, stdin, ZeroMQ que le transport. Cela signifie que vous aurez besoin d'un redis, stdin, ZeroMQ entrée quelque part sur la route pour obtenir les événements.
Les événements sont envoyés dans le format de json_event de logstash. Les options peuvent également être définies comme des variables d'environnement.
Exemples
Exemple 1: Écoutez tous les fichiers dans le chemin par défaut / var / log sur la sortie standard:
castor
Exemple 2: Envoi de journaux dans / var / log fichiers à une liste de redis:
REDIS_URL = "redis: // localhost: 6379/0" redis castor -t
Exemple 3: Utilisez des variables d'environnement pour envoyer des journaux à partir de / var / log fichiers à une liste de redis:
REDIS_URL = "redis: // localhost: 6379/0" BEAVER_PATH = "/ var / log" BEAVER_TRANSPORT = redis castor
Exemple 4: ZeroMQ écoute sur le port 5556 (toutes les interfaces):
ZEROMQ_ADDRESS = "tcp: // *: 5556" bind -m castor
# Logstash config:
{{entrée zeromq
& Nbsp; type => 'expéditeur-entrée'
& Nbsp; mode => 'client'
& Nbsp; topologie => 'pushpull'
& Nbsp; Adresse => 'tcp: // shipperhost: 5556'
& Nbsp;}}
{{stdout sortie debug => true}}
Exemple 5: ZeroMQ connectant sur le port distant 5556 sur indexeur:
ZEROMQ_ADDRESS = "tcp: // indexeur: 5556" castor -m connecter
# Logstash config:
{{entrée zeromq
& Nbsp; type => 'expéditeur-entrée'
& Nbsp; mode => 'serveur'
& Nbsp; topologie => 'pushpull'
& Nbsp; Adresse => 'tcp: // *: 5556'
& Nbsp;}}
{{stdout sortie debug => true}}
Quoi de neuf dans cette version:
- Se assurer que les nouveaux fichiers sont ajoutés à transporte une configuration. Ferme # 96. Ferme # 101. [Jose Diaz-Gonzalez]
- Autoriser les numéros de flotteur pour update_file_mapping_time. [Jose Diaz-Gonzalez]
- Correction coulée invalide de valeurs booléennes. [Jose Diaz-Gonzalez]
- Effectuer toutes les conversions en config.py. Ferme # 99. [Jose Diaz-Gonzalez]
Quoi de neuf en version 16:
- Spécifiez une taille de file d'attente max de 100 à limiter dépassement mémoire. [Jose Diaz-Gonzalez]
- Utiliser multitraitement pour le traitement des grandes files d'attente tailles. [Jose Diaz-Gonzalez]
- Auparavant, il y avait des questions où les fichiers qui ont été mis à jour fréquemment comme vernis ou serveur journaux allaient submerger la mise en œuvre naïve de file.readlines () au sein de Beaver. Cela risque de provoquer Beaver à lire lentement portions plus en plus grandes d'un fichier avant de traiter l'une des lignes, causant Beaver prendre une éternité pour traiter les lignes du journal.
- Ce patch ajoute la possibilité d'utiliser une file d'attente de travail interne pour les lignes du journal. Chaque fois que file.readlines () est appelée, les lignes sont placés dans la file d'attente, qui est partagée avec un processus enfant. Le processus de l'enfant crée son propre moyen de transport, qui nous permet de potentiellement créer un pool de processus à l'avenir pour gérer une plus grande taille de la file.
- Notez que la limitation de file.readlines (lecture) dans trop de lignes est toujours en existence, et peut continuer à causer des problèmes pour certains fichiers journaux.
- Ajouter redis_password par défaut à la classe BeaverConfig. [Jose Diaz-Gonzalez]
- Fix manque de soulignement provoquant transports à briser. [Norman Joyner]
- Mettre en œuvre redis soutien auth. [Norman Joyner]
- Ajouter castor script d'initialisation pour le mode de démonisation. [Jose Diaz-Gonzalez]
- Utiliser enregistreur de python lors de l'utilisation StdoutTransport. [Jose Diaz-Gonzalez]
- Ajouter drapeaux courts arg pour nom d'hôte et le format. [Jose Diaz-Gonzalez]
- Ajouter la capacité de daemonize. Ferme # 79. [Jose Diaz-Gonzalez]
- Faites circuler une instance de l'enregistreur à tous les transports. [Jose Diaz-Gonzalez]
- Revert & quot; Ajout d'une Classe & quot légère de l'événement; [Jose Diaz-Gonzalez]
- Après délibération, le castor est censé être & quot; poids léger & quot ;. Permet de quitter la lourde frappe des grands garçons.
- Ce revient commettre 1619d33ef4803c3fe910cf4ff197d0dd0039d2eb.
- Ajout d'une classe Event léger. [Jose Diaz-Gonzalez]
- seule responsabilité de cette classe sera le traitement d'une ligne donnée comme un événement. Ce est objectif futur sera d'agir comme une implémentation légère du système de filtre dans Logstash
- Supprimer exigence argparse pour Python 2.7 et au-dessus. [Jose Diaz-Gonzalez]
Quoi de neuf en version 13:
- certaines variables d'environnement fixe. [Jose Diaz-Gonzalez]
- SSH Tunnel Support. [Jose Diaz-Gonzalez]
- Ce code devrait nous permettre de créer un tunnel ssh entre deux serveurs distincts aux fins de l'envoi et la réception de données.
- Ce est utile dans certains cas où vous auriez besoin de la liste blanche dans la configuration de votre pare-feu ou iptables, comme lors de l'exécution dans deux régions différentes sur AWS.
- Permettre lag de connexion initiale. Utile lors de l'attente pour un proxy SSH pour se connecter. [Jose Diaz-Gonzalez]
- Correction d'un problème où certains défauts de configuration étaient d'une valeur incorrecte. [Jose Diaz-Gonzalez]
- permettent de spécifier hôte via drapeau. Ferme # 70. [Jose Diaz-Gonzalez]
Exigences :
- Python
Commentaires non trouvées