1. Système : centos 7
2.docker 1.12.1
PrésentationElasticSearch
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.
ArchitectureNe présentez pas Filebeat
Présentation de Filebeat
DéploiementDé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
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
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.
SuiviLogstash 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!