2017-01-13 1 views
0

J'ai un serveur d'applications, où j'ai configuré le fichier (par l'intermédiaire de Chef) pour extraire les journaux et les publier dans logstash (un serveur ELK séparé), puis ES et Kibana.Filebeat traite tous les journaux au lieu des journaux d'application spécifiés

J'ai configuré le fichier filebeat pour traiter les journaux uniquement à partir de /opt/app_logs/*.log, mais il semble qu'il lit aussi les journaux d'autres emplacements, car dans le répertoire de configuration/etc/filebeat, j'ai filebeat.full. yml et d'autres fichiers yml générés automatiquement, et ils semblent avoir tous ces autres emplacements de fichiers, donc en raison d'une telle quantité de journaux, le service logstash manque de mémoire en quelques minutes avec logstash.log. Comment ne pas générer automatiquement les autres fichiers yml? J'ai essayé de supprimer ce fichier et j'ai également essayé de commenter tous les chemins/var/log des prospecteurs, mais filebeat lui-même ne démarre pas.

fichier filebeat.yml:

filebeat: 
    prospectors: [] 
    registry_file: "/var/lib/filebeat/registry" 
    config_dir: "/etc/filebeat" 
output: 
    logstash: 
    hosts: 
    - elk_host:5044 
    index: logstash-filebeat 
shipper: 
    name: serverA 
    tags: 
    - A 
logging: 
    to_files: 'true' 
    files: 
    path: "/var/log/filebeat" 
    name: filebeat_log 
    rotateeverybytes: '10485760' 
    level: info 
prospectors: 
- paths: 
    - "/opt/app_logs/*.log" 
    encoding: plain 
    input_type: log 
    ignore_older: 24h 
+0

Quelle version de Filebeat utilisez-vous? Votre configuration est incorrecte pour toutes les versions, mais connaître la version que vous ciblez peut vous aider à obtenir la bonne réponse. –

+0

@A J Désolé de répondre si tard. La version de filebeat est 1.2.3 (amd64) –

Répondre

2

Le principal problème avec votre configuration est que pour Filebeat 1.2.3 vous avez la prospectors liste définie deux fois et la seconde ne l'est pas au bon endroit. Le deuxième problème est que vous avez défini config_dir comme /etc/filebeat. config_dir est utilisé pour spécifier un répertoire supplémentaire où rechercher les fichiers de configuration. Il ne doit jamais être défini sur /etc/filebeat car c'est là que se trouve le fichier de configuration principal. Voir https://stackoverflow.com/a/39987501/503798 pour les informations d'utilisation.

Un troisième problème est que vous avez utilisé des types de chaînes dans to_files et rotateeverybytes. Ils doivent être respectivement de type booléen et entier.

Voici comment la configuration doit rechercher Filebeat 1.x.

filebeat: 
    registry_file: "/var/lib/filebeat/registry" 
    config_dir: "/etc/filebeat/conf.d" 
    prospectors: 
    - paths: 
    - "/opt/app_logs/*.log" 
    encoding: plain 
    input_type: log 
    ignore_older: 24h 
output: 
    logstash: 
    hosts: 
    - elk_host:5044 
    index: logstash-filebeat 
shipper: 
    name: serverA 
    tags: 
    - A 
logging: 
    to_files: true 
    files: 
    path: "/var/log/filebeat" 
    name: filebeat_log 
    rotateeverybytes: 10485760 
    level: info 

Je recommande fortement de mettre à jour 5.x Filebeat car il a une meilleure validation de configuration à l'aide filebeat -configtest.

+0

Merci, Cela m'a aidé! –