Les dix liant ELK ---- logstash journal filebeat Redis stockés, le ElasticSearch de vidage logstash

Réel: les journaux collectés filebeat à Redis puis par décharge logstash hôte ElasticSearch

Figure cadre:

Préparation de l'environnement:

Un hôte: ElasticSearch / Kibana Adresse IP: 192.168.7.100

B Hôte: Adresse IP logstash: 192.168.7.102

C Hôte: filebeat / nginx Adresse IP: 192.168.7.103

D Hôte: Redis Adresse IP: 192.168.7.104

1, filebeat logs nginx au système de collecte et d'accueil Redis

1.1, installez Redis service et modifier la configuration

1, Redis service d'installation

# Yum install -y Redis

2, Redis fichiers de configuration Modify, modify écouter adresse et mot de passe

[root @ web1 ~] # vim /etc/redis.conf 
bind 0.0.0.0 
requirepasswd 123456

3, démarrer le service Redis

# systemctl début Redis

1.2, modifier la configuration hôte filebeat, pour garder les journaux sur le serveur Redis

1, profils d'hôte filebeat modifiés, identifiez-vous stockés sur le serveur Redis

[Root @ filebate tmp] # vim /etc/filebeat/filebeat.yml 
filebeat.inputs: 
- du type: journal 
  Activé: à vrai 
  chemins: 
    - / var / log / messages 
  champs: 
    Host: "192.168.7.103" 
    du type: « filebeat- 7-103-syslog " 
    App:" syslog " 
- du type: log 
  Activé: à vrai 
  chemins: 
    - /var/log/nginx/access.log 
  domaines: 
    hôte:" 192.168.7.103 " 
    du type:" filebeat-nginx-accesslog-7 -103 " 
    App:" nginx " 

output.redis: 
  hôtes: [" 192.168.7.104 "] # écrire Redis adresse IP du serveur hôte 
  Port: 6379 # Redis écoute numéro de port 
  mot de passe:" 123456 "# Redis mot de passe 
  clé:"filebeat-log-7-103 « # clé personnalisée
  db: 0 # sélectionner la base de données par défaut
  délai d'attente: 5 # délai long, vous pouvez modifier un autre point

2, vue sur filebeat d'information critiques

[root @ filebate tmp] # grep -v "#" /etc/filebeat/filebeat.yml | grep "^ $" 
les filebeat.inputs: 
- Type: journal 
  permis: true 
  chemins: 
    - / var / log / messages 
  champs: 
    host: "192.168.7.103" 
    Type: "filebeat-syslog-7-103" 
    app: " syslog » 
- Type: journal 
  activé: true 
  chemins: 
    - /var/log/nginx/access.log 
  champs: 
    accueil: "" 192.168.7.103 
    Type: "filebeat-nginx-accesslog-7-103" 
    app: "nginx" 
filebeat .config.modules: 
  chemin: $ {} path.config /modules.d / * YML. 
  reload.enabled: faux 
setup.template.settings: 
  - add_host_metadata: ~ 
  - add_cloud_metadata: ~ 
output.redis: 
  hôtes: [ "192.168.7.104"] 
  Port: 6379 
  Mot de passe: "123456" 
  clé: "filebeat-log-7-103" 
  db: 0 
  délai d' attente: 5

3, démarrer le service filebeat

# Systemctl restart filebeat

2, sur un Redis de données de vérification de test hôte

1, Redis connexion client pour afficher les données, vous pouvez voir la valeur de clé correspondante est atteinte, ce qui indique que les données peuvent atteindre Redis serveur.

[root @ web1 ~] # Redis-cli -h 192.168.7.104 
192.168.7.104:6379> auth 123456 
OK 
192.168.7.104:6379> TOUCHES * 
1) "filebeat-log-7-103" 
192.168.7.104:6379>

3, la collecte de journaux REDIS serveur dans logstash

1, modifier les fichiers de configuration logstash, ouvrez une session de collecte Redis

[@ Logstash le conf.d la racine] # logstash à Vim-es.conf 
ENTRÉE { 
   Redis { 
     Host => "192.168.7.104" # Redis adresse IP hôte 
     port => "6379" port # 
     db => "0" # et la base de données correspondante filebeat 
     password => "123456" # password 
     data_type => "liste" # type de journal 
     key => "filebeat-log- 7-103" # valeur clé correspondant à la filebeat 
     CODEC => "JSON" 
   } 
} 


sortie { 
  IF [champs] [application] == "syslog type" app # {compatible avec l' hôte filebeat 
    ElasticSearch { 
      les hôtes => [ "192.168.7.100:9200"] # journal à l'ElasticSearch hôte 
      index => « logstash-syslog -7 à 103 -% {+ aAAA.MM.JJ} "
    }} 

  Application de type Même si [champs] [application] == "nginx" {# hôte et filebeat 
    ElasticSearch {
      hôtes => [ "192.168.7.100:9200"] 
      index => "logstash-nginx-accesslog-7-103 -% {+} AAAA.MM.JJ" 
    }} 
}

Vérifier la grammaire comme s'il y a un problème, s'il n'y a pas de problème pour démarrer le service

[root @ logstash conf.d] # logstash -f logstash à es.conf -t 
AVERTISSEMENT: Impossible de trouver logstash.yml qui se trouve généralement dans $ LS_HOME / config ou / etc / logstash. Vous pouvez spécifier le chemin à l' aide --path.settings. En continuant en utilisant les paramètres par défaut 
Impossible de trouver la configuration log4j2 à /usr/share/logstash/config/log4j2.properties chemin. Utilisation de config par défaut qui enregistre les erreurs à la console 
[WARN] 16/03/2020 10: 05: 05,487 [LogStash :: Runner] multilocale - Ignorant le fichier 'pipelines.yml' parce que les modules ou les options de ligne de commande sont spécifiées 
Configuration OK #检查语法正确
[INFO] 16/03/2020 10: 05: 16,597 [LogStash :: Runner] runner - Utiliser le mode config.test_and_exit. Config Validation Résultat: OK. Exiting Logstash

2, redémarrez le serveur logstash

# Systemctl restart logstash

3, le nom du journal pour afficher la collection de plug-in tête, vous pouvez voir les informations extraites du journal

4. Créer un index sur la page Kibana

1, Nginx journaux pour créer un index à la page de Kibana, de la même manière le journal système peut également être créé

 2, afficher les données extraites dans le journal découvrir nginx

3, vue recueillis journal système

Combat à deux: filebeat combiné logstash Redis collectés journal et vidage hôte ElasticSearch

Figure cadre:

Préparation de l'environnement:

Il n'y a pas grand-chose à tester l'hôte, vous êtes testé sous forme autonome, l'environnement de production peut être déployé par ce qui précède

Un hôte: ElasticSearch / Kibana Adresse IP: 192.168.7.100

Hôte B: logstash-Une adresse IP: 192.168.7.102

C Hôte: filebeat / nginx Adresse IP: 192.168.7.103

D Hôte: Redis Adresse IP: 192.168.7.104

E Host: logstash-B Adresse IP: 192.168.7.101

1, installer et configurer le filebeat hôte

1, le package d'installation filebeat nécessaire ici sur le package de téléchargement de site officiel

[Root @ filebeat-1 ~] # yum install filebeat-6.8.1-x86_64.rpm -y

2, modifier le fichier de configuration filebeat, log filebeat transmis à partir de l'hôte vers le premier logstash, s'il y a de multiples hôtes filebeat pluralité logstash journal de vidage, la section configuration output.logstash peuvent écrire des hôtes différents logstash adresses IP

[root @ filebate ~] # grep -v "#" /etc/filebeat/filebeat.yml | grep "^ $" 
les filebeat.inputs: 
- Type: journal 
  permis: true 
  chemins: 
    - / var / log / messages 
  champs: 
    host: "192.168.7.103" 
    Type: "filebeat-syslog-7-103" 
    app: " syslog " 
- Type: journal 
  activé: true 
  chemins: 
    - /var/log/nginx/access.log 
  champs: 
    hôte: "192.168.7.103" #指定本机的IP地址
    Type:" filebeat-nginx-accesslog-7-103 " 
    app: "nginx" 
output.logstash: 
  hôtes: [" 192.168.7.101:5044" ] #写到指定的logstash服务器上,
  activé: true # si elle est adoptée au serveur logstash est activé par défaut 
  travail: 1 # travailleur 
  niveau_compression: 3 niveau de compression #

3, redémarrez le filebeat service

# Systemctl restart filebeat

2, l'hôte de modifier logstash-B, le journal stocké sur le serveur Redis  

1, pour créer un journal stocké REDIS profil au répertoire /etc/logstash/conf.d/, s'il y a plusieurs filebeat, logstash et Redis, peuvent être stockées séparément redis journaux d'accueil, ce qui réduit la pression logstash

[@ Logstash la racine du conf.d. 1] # CAT filebeat à logstash.conf 
ENTRÉE { 
  Beats { 
    Host => "192.168.7.101" Adresse IP de l' hôte # de logstash, s'il y a d' autres hôtes à benne basculante Redis logstash hôte , peut être écrit sur une autre adresse IP hôte logstash correspondant à la machine, l'hôte logstash équilibrage de la pression 
    port => 5044 # numéro de port 
    CODEC => "JSON" 
  } 
} 


sortie { 
  IF [champs] [App] == " syslog "{ 
  Redis { 
       Host =>" 192.168.7.104 "# Redis adresse du serveur stocké dans le 
       port =>" 6379 " 
       DB =>" 0 " 
       data_type =>" Liste " 
       password =>" 123456 " 
       Key =>" syslog-filebeat -7-103 « # journaux définissent clé différents, facilement distinguer 
       codec => » JSON "
  }} 

  Si [champs] [app] == "nginx" { 
  Redis {
       host => "192.168.7.104" 
       port => "6379" 
       db => "0" 
       data_type => "list" 
       password => "123456" 
       key => "filebeat-nginx-log-7-103" #定义不同的clé,方便分析
       codec => "JSON" 
  } 
} 
}

2, test d'hôte logstash

[root @ logstash-1 conf.d] # logstash -f filebeat à logstash.conf -t 
AVERTISSEMENT: Impossible de trouver logstash.yml qui se trouve généralement dans $ LS_HOME / config ou / etc / logstash. Vous pouvez spécifier le chemin à l' aide --path.settings. En continuant en utilisant les paramètres par défaut 
Impossible de trouver la configuration log4j2 à /usr/share/logstash/config/log4j2.properties chemin. Utilisation de config par défaut qui enregistre les erreurs à la console 
[WARN] 16/03/2020 11: 23: 31,687 [LogStash :: Runner] multilocale - Ignorant le fichier 'pipelines.yml' parce que les modules ou les options de ligne de commande sont spécifiées 
Configuration OK #测试配置文件正常

Service de redémarrage

# Systemctl restart logstash

3, cette fois peut être vu sur les deux hôte de valeurs clés, l'hôte a été décrit logstash journal enregistré aux Redis d'accueil

[root @ web1 ~] # Redis-cli -h 192.168.7.104 
192.168.7.104:6379> auth 123456 
OK 
192.168.7.104:6379> TOUCHES * 
1) "filebeat-nginx-log-7-103" 
2) « filebeat- syslog-7-103"

3, disposé sur le journal extraction Redis-logstash Un vidage hôte et hôte sur ElasticSearch

1, Redis créer un extrait de journal d'un hôte dans le répertoire /etc/logstash/conf.d hôte logstash

[Logstash la conf.d la racine @] logstash à CAT # es.conf 
ENTRÉE { 
   Redis { 
     Host => "192.168.7.104" # Redis hôte adresse IP 
     Port => "6379" 
     DB => "0" 
     password => "123456" 
     data_type => "Liste" 
     key => "syslog-7-103-filebeat" # écrit dans la valeur de clé correspondante filebeat 
     CODEC => "JSON" 
   } 
   Redis { 
     host => "192.168.7.104" # hôte Redis adresse IP 
     Port => "6379" 
     DB => "0" 
     password => "123456" 
     data_type => "Liste" 
     Key => "filebeat-Nginx-log-7-103"# Valeur clé pour filebeat écrite, 
     CODEC => "JSON" 
   } 
} 


sortie {
  si [champs] [application] == "syslog" {# application correspondant au type d'hôte filebeat 
    ElasticSearch { 
      les hôtes => [ "192.168.7.100:9200"] # ElasticSearch adresse IP hôte 
      index => « logstash-syslog- 7-103 - AAAA.MM.JJ% {+} " 
    }} 

  IF [champs] [application] ==" Nginx "{# application correspondant au type d'hôte filebeat 
    ElasticSearch { 
      les hôtes => [" 192.168.7.100:9200 « ] 
      index => "logstash-Nginx-la-accesslog 7-103 - AAAA.MM.JJ% {+}" 
    }} 
}

2, le test logstash fichier de configuration hôte

[root @ logstash conf.d] # logstash -f logstash à es.conf -t 
AVERTISSEMENT: Impossible de trouver logstash.yml qui se trouve généralement dans $ LS_HOME / config ou / etc / logstash. Vous pouvez spécifier le chemin à l' aide --path.settings. En continuant en utilisant les paramètres par défaut 
Impossible de trouver la configuration log4j2 à /usr/share/logstash/config/log4j2.properties chemin. Utilisation de config par défaut qui enregistre les erreurs à la console 
[WARN] 16/03/2020 11: 31: 30,943 [LogStash :: Runner] multilocale - Ignorant le fichier 'pipelines.yml' parce que les modules ou les options de ligne de commande sont spécifiées 
Configuration OK

3, redémarrer les services d'hébergement logstash

# Systemctl restart logstash

4. Vérifiez le journal du système et se connecter nginx plug-in tête

4, la création d'un Kibana d'index, affichez les informations collectées dans le journal

1, Nginx créer un index, le système d'index empathie journal

2, voir la création de l'information d'index

 

 

 

 

  

 

  

 

  

  

  

 

Je suppose que tu aimes

Origine www.cnblogs.com/struggle-1216/p/12502928.html
conseillé
Classement