Sistema de análisis de registros ELK
- 1. Introducción
- 2. Introducción a Elasticsearch
- Tres, introducción a Logstash
- Cuatro, introducción a Kibana
- 5. Implementar el sistema de análisis de registros ELK
-
- 1. Descripción de los requisitos
- 2. Lista de equipos
- 3. Topología experimental
- 4. Prepare el entorno de instalación
- Configurar el servidor del nodo 1 ES
-
- 1. Apague el cortafuegos y las funciones de seguridad.
- 2. Modifique el archivo de configuración del nombre de host.
- 3. Monte el paquete de recursos de forma remota
- 4. Instale el paquete de software
- 5. Servicios del sistema de carga
- 6. Servicio de arranque automático en el arranque
- 7. Realice una copia de seguridad de los archivos de configuración
- 8. Modifique el archivo de configuración principal de elasticsearch.
- 9. Cree una ruta de almacenamiento de la base de datos
- 10. Ruta de almacenamiento de la base de datos autorizada
- 11. Active el servicio de búsqueda elástica
- 12. Ver el estado del servicio portuario
- 13. Instale el entorno de compilación
- 14. Descomprima el paquete de software del nodo nodo
- 15. Nodo de colocación
- 16. Compile e instale
- Instalar el marco de front-end de phantomjs
- Instalar la herramienta de visualización de datos elasticsearch-head
-
- 1. Descomprima el paquete elasticsearch-head
- 2. Instale la herramienta de visualización de datos elasticsearch-head
- 3. Modifique el archivo de configuración principal de elasticsearch.
- 4. Active el servicio de búsqueda elástica.
- 5. Iniciar la operación en segundo plano
- 6. Ver el estado del puerto de servicio
- La configuración del servidor ES nodo 2 es la misma que la del nodo 1, repita las operaciones anteriores.
- Use el navegador para ingresar la URL 192.168.142.152:9100 y conéctese a la dirección de otro nodo para verificar el estado de salud del clúster
- Crear índice
- Configurar el servidor Apache, instalar logstash, recopilar registros
- Regrese al nodo1 e instale kibana
- Acoplamiento con todos los archivos de registro de Apache del host Apache (operando en el servidor Apache)
- Probar la pantalla de información de registro de Apache
1. Introducción
Servidor de registro
提高安全性
集中存放日志
defecto
对日志的分析困难
Análisis estructural
AppServer (cliente) -Logtash / Agent (recopilación y salida de registros) -> ElasticSerach / Cluster (base de datos de índice) -> Kibana (herramienta de visualización de registros) Servidor -> Navegador
Topología de resultado simple
Sistema de análisis de registros ELK
Elasticsearch
是实时全文搜索和分析引擎
Logstash
是一个用来搜集、分析、过滤日志的工具
Kibana
是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据
Pasos de procesamiento de registros
将日志进行集中化管理
将日志格式化( Logstash )并输出到Elasticsearch
对格式化后的数据进行索引和存储( Elasticsearch )
前端数据的展示( Kibana )
2. Introducción a Elasticsearch
1. Descripción general de Elasticsearch
提供了一个分布式多用户能力的全文搜索引擎
2. El concepto de Elasticsearch
接近实时
集群
节点
索引:
索引(库)–>类型(表)–>文档(记录)
分片和副本
Tres, introducción a Logstash
1. Introducción a Logstash
一款强大的数据处理工具,可以实现数据传输、格式处理、格式化输出
数据输入、数据加工(如过滤,改写等)以及数据输出
2. Los componentes principales de LogStash
Shipper
Indexer
Broker
Search and Storage
Web Interface
Cuatro, introducción a Kibana
1, Kibana
一个针对Elasticsearch的开源分析及可视化平台
搜索、查看存储在Elasticsearch索引中的数据
通过各种图表进行高级数据分析及展示
2. Funciones principales de Kibana
Elasticsearch无缝之集成
整合数据,复杂数据分析
让更多团队成员受益
接口灵活,分享更容易
配置简单,可视化多数据源
简单数据导出
5. Implementar el sistema de análisis de registros ELK
1. Descripción de los requisitos
配置ELK日志分析群集
使用Logstash收集日志
使用Kibana查看分析日志
2. Lista de equipos
主机 操作系统 主机名/IP地址 主要软件
服务器 CentOS7-x86 node1/192.168.45.128 Elasticsearch、kibana
服务器 CentOS7-x86 node2/192.168.45.129 Elasticsearch
服务器 CentOS7-x86 apache/192.168.45.133 Logstatsh
3. Topología experimental
4. Prepare el entorno de instalación
关闭防火墙和Selinux
Node1、Node2节点内存分配4G,Apache节点分配1G内存
通过VMware虛拟网络Vmnet8连接
Configurar el servidor del nodo 1 ES
1. Apague el cortafuegos y las funciones de seguridad.
systemctl stop firewalld.service
setenforce 0
2. Modifique el archivo de configuración del nombre de host.
vim /etc/hosts
192.168.142.152 node1
192.168.142.153 node2
3. Monte el paquete de recursos de forma remota
mount.cifs //192.168.142.1/elk /mnt
4. Instale el paquete de software
cd /mnt
rpm -ivh elasticsearch-5.5.0.rpm
5. Servicios del sistema de carga
systemctl daemon-reload
6. Servicio de arranque automático en el arranque
systemctl enable elasticsearch.service
7. Realice una copia de seguridad de los archivos de configuración
cd /etc/elasticsearch/
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
8. Modifique el archivo de configuración principal de elasticsearch.
vim /etc/elasticsearch/elasticsearch.yml
#第17行,取消注释并修改集群名称
cluster.name: my-elk-cluster
#第23行,取消注释修改节点名字
node.name: node1
#第33行,取消注释修改数据存放路径
path.data: /data/elk_data
#第37行,取消注释修改日志存放路径
path.logs: /var/log/elasticsearch/
#第43行,取消注释并修改,取消在不启动时锁定内存
bootstrap.memory_lock: false
#第55行,取消注释并修改地址,放入所有的地址(0.0.0.0代表所有地址)
network.host: 0.0.0.0
#第59行,取消注释,放开服务端口
http.port: 9200
#第68行,取消注释修改节点名称
discovery.zen.ping.unicast.hosts: ["node1", "node2"]
9. Cree una ruta de almacenamiento de la base de datos
mkdir -p /data/elk_data
10. Ruta de almacenamiento de la base de datos autorizada
chown elasticsearch:elasticsearch /data/elk_data/
11. Active el servicio de búsqueda elástica
systemctl start elasticsearch.service
12. Ver el estado del servicio portuario
netstat -ntap | grep 9200
tcp6 0 0 :::9200 :::* LISTEN 96970/java
13. Instale el entorno de compilación
yum install gcc gcc-c++ make -y
14. Descomprima el paquete de software del nodo nodo
cd /mnt
tar zxvf node-v8.2.1.tar.gz -C /opt
15. Nodo de colocación
cd /opt/node-v8.2.1/
./configure
16. Compile e instale
make && make install
Instalar el marco de front-end de phantomjs
1. Descomprime el paquete phantomjs
cd /mnt
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src
2. Cambie de directorio para ver el comando phantomjs
cd /usr/local/src/phantomjs-2.1.1-linux-x86_64//bin
ls
phantomjs
3. Copie el directorio en el directorio del sistema.
cp phantomjs /usr/local/bin/
Instalar la herramienta de visualización de datos elasticsearch-head
1. Descomprima el paquete elasticsearch-head
cd /mnt
tar zxvf elasticsearch-head.tar.gz -C /usr/local/src
2. Instale la herramienta de visualización de datos elasticsearch-head
cd /usr/local/src/elasticsearch-head/
npm install
3. Modifique el archivo de configuración principal de elasticsearch.
vim /etc/elasticsearch/elasticsearch.yml
#末行添加以下内容
http.cors.enabled: true
http.cors.allow-origin: "*"
4. Active el servicio de búsqueda elástica.
systemctl restart elasticsearch.service
5. Iniciar la operación en segundo plano
npm run start &
6. Ver el estado del puerto de servicio
netstat -ntap | grep 9100
tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN 50105/grunt
[root@node1 elasticsearch-head]# netstat -ntap | grep 9200
tcp6 0 0 :::9200 :::* LISTEN
La configuración del servidor ES nodo 2 es la misma que la del nodo 1, repita las operaciones anteriores.
Use el navegador para ingresar la URL 192.168.142.152:9100 y conéctese a la dirección de otro nodo para verificar el estado de salud del clúster
Crear índice
¡Regrese a la descripción general para ver el índice creado!
Configurar el servidor Apache, instalar logstash, recopilar registros
#安装Apache服务
yum install -y httpd
#远程挂载资源包
mount.cifs //192.168.142.1/elk /mnt
#切换到挂载点
cd /mnt
#安装logstash
rpm -ivh logstash-5.5.1.rpm
#开机自启动logstash服务
systemctl enable logstash.service
#启动logstash服务
systemctl start logstash.service
#建立命令软链接到系统
ln -s /usr/share/logstash/bin/logstash /usr/local/bin
#切换日志目录
cd /var/log
#授予他人读取权限
chmod o+r messages
#查看权限
ll
#切入logstash配置目录
cd /etc/logstash/conf.d/
#编辑文件
vim system.conf
#写入以下内容,用以收集系统日志
input {
file{
path => "/var/log/messages"
type => "system"
start_position => "beginning"
}
}
output {
elasticsearch {
#地址指向node1节点
hosts => ["192.168.142.152:9200"]
index => "system-%{+YYYY.MM.dd}"
}
}
#重启服务
systemctl restart logstash.service
Regrese al nodo1 e instale kibana
#切入挂载点
cd /mnt
#安装kibana
rpm -ivh kibana-5.5.1-x86_64.rpm
#切入kibana目录
cd /etc/kibana/
#备份kibana.yml文件
cp kibana.yml kibana.yml.bak
#修改kibana.yml文件
vim kibana.yml
#取消第2行的注释,放开5601端口
server.port: 5601
#取消第7行的注释并修改地址,放入所有的地址(0.0.0.0代表所有地址)
server.host: "0.0.0.0"
#取消第21行的注释并指向node1节点的url
elasticsearch.url: "http://192.168.142.152:9200"
#取消第30行注释,放开kibana首页
kibana.index: ".kibana"
#启动kibana服务
systemctl start kibana.service
Pruebe kibana para mostrar los datos de registro, use un navegador para acceder a 192.168.142.152:5601
Acoplamiento con todos los archivos de registro de Apache del host Apache (operando en el servidor Apache)
#编辑Apache日志配置文件
vim apache_log.conf
input {
file{
path => "/etc/httpd/logs/access_log"
type => "access"
start_position => "beginning"
}
file{
path => "/etc/httpd/logs/error_log"
type => "error"
start_position => "beginning"
}
}
output {
if [type] == "access" {
elasticsearch {
hosts => ["192.168.142.152:9200"]
index => "apache_access-%{+YYYY.MM.dd}"
}
}
if [type] == "error" {
elasticsearch {
hosts => ["192.168.142.152:9200"]
index => "apache_error-%{+YYYY.MM.dd}"
}
}
}
#重启服务,稍等片刻!
logstash -f apache_log.conf