Directorio de artículos
Nota: Las versiones de elasticsearch, kibana, logstash y filebeat deben ser consistentes. elasticsearch-head facilita la visualización del estado y los datos de índice de elasticsearch a través del navegador.
Principio de funcionamiento: después de recopilar registros a través de filebeat (motor de recopilación de datos liviano), envíelos a Logstash (motor de procesamiento y recopilación de datos) para filtrado, análisis, enriquecimiento, formato unificado y otras operaciones, y almacene los registros procesados en Elasticsearch (búsqueda distribuida) Engine), y finalmente Kibana (plataforma de visualización) busca y muestra los datos indexados almacenados en Elasticsearch.
Descripción ambiental:
solicitud | Versión |
---|---|
estibador | 19.03.9 |
búsqueda elástica | 7.17.2 |
kibana | 7.17.2 |
logstash | 7.17.2 |
archivo | 7.17.2 |
cabezal de búsqueda elástico | 5.0 |
1. Extracción de imágenes
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.2
docker pull mobz/elasticsearch-head:5
docker pull docker.elastic.co/kibana/kibana:7.17.2
docker pull docker.elastic.co/logstash/logstash:7.17.2
docker pull docker.elastic.co/beats/filebeat:7.17.2
2. instalación de búsqueda elástica
- Prepare el archivo elasticsearch.yml
# 创建文件夹
mkdir /home/southgisdata/elasticsearch
# 创建 elasticsearch.yml 文件
vi /home/southgisdata/elasticsearch/elasticsearch.yml
------------------------写入---------------------------
network.host: 0.0.0.0
cluster.name: "docker-cluster"
http.cors.enabled: true
http.cors.allow-origin: "*"
#cluster.initial_master_nodes: ["node-1"]
xpack:
ml.enabled: false
monitoring.enabled: false
security.enabled: false
watcher.enabled: false
#去除以下两项的注释,则开启身份认证
#xpack.security.enabled: true
#xpack.security.transport.ssl.enabled: true
------------------------结束---------------------------
- Ejecute el contenedor elasticsearch
docker run -d --restart=always -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-v /home/southgisdata/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
--name elasticsearch docker.elastic.co/elasticsearch/elasticsearch:7.17.2
- Verifique
la verificación del navegador: visite 192.168.1.100:9200
Verificación de línea de comando: curl http://localhost:9200/_nodes/http?pretty
Nota: ¡ Si ocurre el siguiente error! ! !
El método de procesamiento es el siguiente:
- Modifique la memoria:
en el archivo /etc/sysctl.conf, finalmente agregue el siguiente contenido:
vm.max_map_count=262144
- Habilite la siguiente configuración del archivo de configuración elasticsearch.yml:
cluster.initial_master_nodes: ["node-1"]
3. instalación del cabezal de búsqueda elástico
- Ejecute el contenedor elasticsearch-head
docker run -d --restart=always -p 9100:9100 --name elasticsearch-head mobz/elasticsearch-head:5
- Modifique seller.js principalmente para permitir que los datos de índice se muestren en el lado derecho de la exploración de datos.
# 创建文件夹
mkdir -p /home/southgisdata/elasticsearch-head
# 进入文件夹下
cd /home/southgisdata/elasticsearch-head
# 拷贝 vendor.js 文件到宿主机上
docker cp elasticsearch-head:/usr/src/app/_site/vendor.js ./
# 修改 vendor.js 文件内容
sed -i '/contentType:/s/application\/x-www-form-urlencoded/application\/json;charset=UTF-8/' vendor.js
sed -i '/var inspectData = s.contentType/s/application\/x-www-form-urlencoded/application\/json;charset=UTF-8/' vendor.js
- Ejecute el contenedor elasticsearch-head nuevamente
# 删除容器
docker rm -f elasticsearch-head
# 运行容器
docker run -d --restart=always -p 9100:9100 -v /home/southgisdata/elasticsearch-head/vendor.js:/usr/src/app/_site/vendor.js --name elasticsearch-head mobz/elasticsearch-head:5
- Verificación
**Verificación del navegador:**Visite 192.168.1.100:9100
4. instalación de logstash
- Prepare los archivos de configuración logstash.yml y pipelines.yml
# 创建文件夹
mkdir -p /home/southgisdata/logstash/config
# 创建 logstash.yml 文件
vi /home/southgisdata/logstash/config/logstash.yml
------------------------写入---------------------------
config:
reload:
automatic: true
interval: 3s
xpack:
management.enabled: false
monitoring.enabled: false
------------------------结束---------------------------
# 创建 pipelines.yml 文件
vi /home/southgisdata/logstash/config/pipelines.yml
------------------------写入---------------------------
- pipeline.id: test
path.config: "/usr/share/logstash/pipeline/logstash-filebeat.conf"
------------------------结束---------------------------
- Prepare el archivo de configuración logstash-filebeat.conf
# 创建文件夹
mkdir -p /home/southgisdata/logstash/pipeline
# 创建 logstash.yml 文件
vi /home/southgisdata/logstash/pipeline/logstash-filebeat.conf
------------------------写入---------------------------
# 访问端口配置
input {
beats {
port => 5044
}
}
# 过滤条件配置
#filter{
# grok{
# match => {
# "message" => "%{COMBINEDAPACHELOG}"
# }
# }
#}
# 输出到ES配置
output {
elasticsearch {
hosts => ["http://192.168.1.100:9200"]
index => "nginx_log"
}
}
------------------------结束---------------------------
- Ejecute el contenedor logstash
docker run -d -p 5044:5044 \
-v /home/southgisdata/logstash/pipeline:/usr/share/logstash/pipeline \
-v /home/southgisdata/logstash/config:/usr/share/logstash/config \
--name logstash docker.elastic.co/logstash/logstash:7.17.2
- Verificación:
tarda unos dos minutos en iniciarse, después de eso, intente acceder a la web y podrá ver el índice de nginx_log en la interfaz web de es-head.
5. instalación de kibana
- Prepare el archivo de configuración kibana.yml
# 创建文件夹
mkdir -p /home/southgisdata/kibana
# 创建 kibana.yml 配置文件
vi /home/southgisdata/kibana/kibana.yml
------------------------写入---------------------------
server.name: kibana
# 允许所有地址访问
server.host: "0.0.0.0"
# elasticsearch的地址
elasticsearch.hosts: ["http://192.168.1.100:9200/"]
xpack.monitoring.ui.container.elasticsearch.enabled: true
------------------------写入---------------------------
- Ejecutar contenedor kibana
docker run -d --restart=always -p 5601:5601 \
-v /home/southgisdata/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \
--name kibana docker.elastic.co/kibana/kibana:7.17.2
- Verificación
Verifique elasticsearch-head y encontrará que hay varios índices más, que son generados por kibanna.
6. instalación de filebeat
- Prepare el archivo de configuración filebeat.yml
# 创建文件夹
mkdir -p /home/southgisdata/filebeat
# 创建 kibana.yml 配置文件
vi /home/southgisdata/filebeat/filebeat.yml
------------------------写入---------------------------
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/access.log #日志文件路径
output.logstash:
hosts: ["192.168.1.100:5044"] #logstash访问地址
------------------------写入---------------------------
- La ejecución del contenedor filebeat
asigna el archivo de configuración de filebeat y el registro nginx, de modo que cuando el registro nginx cambie, los archivos asignados también se sincronizarán.
docker run -d --restart=always --name filebeat \
-v /home/southgisdata/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml \
-v /usr/local/nginx/logs/access.log:/var/log/access.log \
-d docker.elastic.co/beats/filebeat:7.17.2
- Verificar
Verifique el índice de nginx_log y podrá ver los datos de registro de nginx.
7. Muestra los datos recopilados a través de kibana.