Maison  >  Article  >  Tutoriel système  >  Utiliser Docker pour créer une plateforme de gestion centralisée des journaux ELK+Filebeat

Utiliser Docker pour créer une plateforme de gestion centralisée des journaux ELK+Filebeat

WBOY
WBOYavant
2024-01-12 17:51:131154parcourir
Environnement actuel

1. Système : centos 7

2.docker 1.12.1

Présentation

ElasticSearch

Elasticsearch est un moteur de recherche et d'analyse distribué en temps réel qui peut être utilisé pour la recherche en texte intégral, la recherche et l'analyse structurées. Il s'agit d'un moteur de recherche basé sur le moteur de recherche plein texte Apache Lucene et écrit en langage Java.

Logstash

Logstash est un moteur de collecte de données doté de capacités de canal en temps réel. Il est principalement utilisé pour collecter et analyser les journaux et les stocker dans ElasticSearch.

Kibana

Kibana est une plateforme web basée sur le protocole open source Apache et écrite en langage JavaScript qui fournit des analyses et des visualisations pour Elasticsearch. Il peut effectuer des recherches dans l'index d'Elasticsearch, interagir avec les données et générer des tableaux et des graphiques dans différentes dimensions.

Filebeat

Filebeat est présenté en tant que collecteur de journaux, principalement pour résoudre le problème de surcharge élevée de Logstash. Comparé à Logstash, Filebeat occupe un processeur et une mémoire système presque négligeables.

Architecture

Ne présentez pas Filebeat

Utiliser Docker pour créer une plateforme de gestion centralisée des journaux ELK+Filebeat

Présentation de Filebeat

Utiliser Docker pour créer une plateforme de gestion centralisée des journaux ELK+Filebeat

Déploiement

Démarrez ElasticSearch

docker run -d -p 9200:9200 --name elasticsearch elasticsearch

Démarrer Logstash

# 1. 新建配置文件logstash.conf
input {
beats {
port => 5044
}
}

output {
stdout {
codec => rubydebug
}
elasticsearch {
#填写实际情况elasticsearch的访问IP,因为是跨容器间的访问,使用内网、公网IP,不要填写127.0.0.1|localhost
hosts => ["{$ELASTIC_IP}:9200"]

}
}

# 2.启动容器,暴露并映射端口,挂载配置文件
docker run -d --expose 5044 -p 5044:5044 --name logstash -v "$PWD":/config-dir logstash -f /config-dir/logstash.conf

Démarrez Filebeat

Adresse de téléchargement : https://www.elastic.co/downloads/beats/filebeat

# 1.下载Filebeat压缩包
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.2.2-linux-x86_64.tar.gz

# 2.解压文件
tar -xvf filebeat-5.2.2-linux-x86_64.tar.gz

# 3.新建配置文件filebeat.yml
filebeat:
prospectors:
- paths:
- /tmp/test.log #日志文件地址
input_type: log #从文件中读取
tail_files: true #以文件末尾开始读取数据
output:
logstash:
hosts: ["{$LOGSTASH_IP}:5044"] #填写logstash的访问IP

# 4.运行filebeat
./filebeat-5.2.2-linux-x86_64/filebeat -e -c filebeat.yml

Démarrez Kibana

docker run -d --name kibana -e ELASTICSEARCH_URL=http://{$ELASTIC_IP}:9200 -p 5601:5601 kibana
Test

Données de journal simulées

# 1.创建日志文件
touch /tmp/test.log

# 2.向日志文件中写入一条nginx访问日志
echo '127.0.0.1 - - [13/Mar/2017:22:57:14 +0800] "GET / HTTP/1.1" 200 3700 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36" "-"' >> /tmp/test.log

Visitez http://{$KIBANA_IP}:5601

Utiliser Docker pour créer une plateforme de gestion centralisée des journaux ELK+Filebeat

Utiliser Docker pour créer une plateforme de gestion centralisée des journaux ELK+Filebeat

Résumé

Cet article décrit principalement le processus étape par étape de création d'ELK et le rôle que Filebeat y joue.

Voici juste une démonstration pour vous. Lors du déploiement dans un environnement de production, vous devez utiliser des volumes de données pour la persistance des données. Les problèmes de mémoire du conteneur doivent également être pris en compte. S'ils ne sont pas limités, Elasticsearch et logstash seront probablement gourmands en mémoire. faites tomber tout votre serveur.

Bien sûr, les facteurs de sécurité ne peuvent être ignorés, tels que la sécurité de la transmission, l'exposition minimisée des autorisations de port, les paramètres du pare-feu, etc.

Suivi

Logstash analyse les formats de journaux, tels que JAVA, nginx, nodejs et autres journaux

 ;

Syntaxe de recherche commune pour elasticsearch ;

Créez des graphiques visuels via Kibana ;

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer