Implementación de análisis de registro empresarial EFK

Prefacio

1. Introducción a efk

Elasticsearch es un motor de búsqueda escalable, distribuido y en tiempo real que permite la búsqueda estructurada de texto completo. Generalmente se usa para indexar y buscar grandes cantidades de datos de registro, y también se puede usar para buscar muchos tipos diferentes de documentos.

Beats es una poderosa herramienta para la recopilación de datos. Coloque Beats y su contenedor en el servidor juntos, o implemente Beats como una función, y luego podrá procesar los datos de forma centralizada en Elastisearch. Si necesita un rendimiento de procesamiento más potente, Beats también puede enviar los datos a Logstash para su conversión y análisis.

Los productos principales de Kibana están equipados con una serie de funciones clásicas: gráfico de barras, gráfico de líneas, gráfico circular, gráfico de rayos solares, etc. No solo eso, también puede usar la sintaxis Vega para diseñar sus propios gráficos de visualización. Todos ellos utilizan todas las capacidades de agregación de Elasticsearch.

Elasticsearch generalmente se implementa junto con Kibana. Kibana es un poderoso panel de visualización de datos de Elasticsearch. Kibana le permite explorar los datos de registro de Elasticsearch a través de una interfaz web.
Inserte la descripción de la imagen aquí

2. Arreglo específico

Inserte la descripción de la imagen aquí

Versión del software

Inserte la descripción de la imagen aquí

Primero optimice la configuración del servidor

将ulimit 值添加到/etc/profile文件中(适用于有root权限登录的系统)
为了每次系统重新启动时,都可以获取更大的ulimit值,将ulimit 加入到/etc/profile 文件底部。
echo ulimit -n 65535 >>/etc/profile
source /etc/profile #加载修改后的profile
ulimit -n #显示65535,修改完毕!
更改主机名,配置域名解析,安装环境编译包,查看Java版本
node1和node2的配置相同,这里就不重复介绍了

Sincronizar el reloj en la nube ahli

ntpdate time1.aliyun.com

2.2.1, configurar el entorno de elasticsearch

[root@SERVER 10 ~]# hostnamectl set-hostname node1
[root@SERVER 10 ~]# su
修改hosts
[root@node1 ~]# vim /etc/hosts
192.168.100.10   node2
192.168.100.9   node1
~
[root@node1 ~]# scp /etc/hosts root@192.168.100.10:/etc/hosts

Prueba de comunicación del nodo

[root@node1 ~]#
[root@node1 ~]# ping node2
PING node2 (192.168.100.10) 56(84) bytes of data.
64 bytes from node2 (192.168.100.11): icmp_seq=1 ttl=64 time=0.753 ms
查看JAVA插件
[root@node1 ~]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
关闭防火墙
systemctl stop firewalld
setenforce 0
iptables -F

instalar software

rpm -ivh elasticsearch-5.5.0.rpm
加载系统服务
[root@node2 opt]# systemctl daemon-reload  
[root@node2 opt]# systemctl enable elasticsearch.service
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.serviceto /usr/lib/systemd/system/elasticsearch.service.
[root@node2 opt]#

Archivo de configuración

备份
cp /etc/elasticsearch/elasticsearch.yml  /etc/elasticsearch/elasticsearch.yml.bak

修改配置文件
vim /etc/elasticsearch/elasticsearch.yml
[root@node2 opt]# grep -v "^#" /etc/elasticsearch/elasticsearch.yml
cluster.name: sha
node.name: node2
path.data: /path/elk_data
path.logs: /var/log/elasticsearch/
bootstrap.memory_lock: flase
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]
[root@node2 opt]#

[root@node1 opt]# grep -v "^#" /etc/elasticsearch/elasticsearch.yml
cluster.name: sha
node.name: node1
path.data: /path/elk_data
path.logs: /var/log/elasticsearch/
bootstrap.memory_lock: flase
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]
[root@node1 opt]#

Crear ruta de archivo de registro

[root@node1 opt]# mkdir -p /data/elk_data

Agregar permiso al propietario del grupo

[root@node1 opt]# chown elasticsearch:elasticsearch /data/elk_data/


[root@node2 opt]# systemctl start elasticsearch.service

Servicio de sistema de carga

[root@node2 opt]# systemctl daemon-reload  
[root@node2 opt]# systemctl enable elasticsearch.service
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.serviceto /usr/lib/systemd/system/elasticsearch.service.

[root@server-9 log]# netstat -ntap | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      8720/java
[root@SERVER 10 opt]# netstat -ntap | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      17219/java
[root@SERVER 10 opt]#

2.2.2 Utilice el navegador del host para visitar: direcciones de nodo1 y nodo2

访问节点测试,查看参数
#直接访问
192.168.100.9:9200
192.168.100.10:9200
#查看node1和node2的健康信息
192.168.100.9:9200/_cluster/health?pretty
192.168.100.10:9200/_cluster/health?pretty

#查看集群状态信息
192.168.100.9:9200/_cluster/state?pretty
192.168.100.10:9200/_cluster/state?pretty

2.3 Implementar el complemento elasticsearch-head (es necesario instalar tanto el nodo 1 como el nodo 2)

编译安装node组件依赖包##耗时比较长
yum install gcc gcc-c++ make -y 

[root@node1 elk]# tar xzvf node-v8.2.1.tar.gz -C /opt
[root@node1 elk]# cd /opt/node-v8.2.1/
[root@node1 node-v8.2.1]# ./configure 
[root@node1 node-v8.2.1]# make -j4       //此处根据计算机性能选择
[root@node1 node-v8.2.1]# make install

Instalar phantomjs (pantalla del marco frontal)

tar xjvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src

[root@node1 opt]# cd /usr/local/src
[root@node1 src]# ls
phantomjs-2.1.1-linux-x86_64
[root@node1 src]# cd phantomjs-2.1.1-linux-x86_64/bin
[root@node1 bin]# cp phantomjs /usr/local/bin

Instalar elasticsearch-head (admite el clúster de administración de visualización de complementos)

[root@node1 opt]# tar xzvf elasticsearch-head.tar.gz -C /usr/local/src
[root@node1 opt]# cd /usr/local/src/
[root@node1 src]# cd elasticsearch-head/
[root@node1 elasticsearch-head]# npm install

##### Modificar el archivo de configuración principal ###

[root@node2 elasticsearch-head]#  vi /etc/elasticsearch/elasticsearch.yml
   ####下面配置文件,插末尾##
http.cors.enabled: true
http.cors.allow-origin: "*"
[root@node2 elasticsearch-head]# systemctl restart elasticsearch

#### Iniciar el servidor de inicio de elasticsearch-head ####

[root@node2 elasticsearch-head]# cd /usr/local/src/elasticsearch-head/
[root@node2 elasticsearch-head]# npm run start &
[1] 65545
[root@node2 elasticsearch-head]#
> elasticsearch-head@0.0.0 start /usr/local/src/elasticsearch-head
> grunt server

Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100
[root@node2 elasticsearch-head]# netstat -lnupt | grep 9100
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      65555/grunt
[root@node2 elasticsearch-head]#  netstat -lnupt | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      65453/java

2.4 Acceder al estado del clúster de elasticsearch en la máquina física

测试9100页面
http://192.168.100.9:9100/ “可以看见群集很健康是绿色,如果是红色就报错了”

进入后连接两台9200的地址
http://192.168.100.10:9100/

创建索引的两种方式
第一种,直接在页面创建
第二种 : 命令创建

[root@node1 elasticsearch-head]# curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'{
    
    
  "_index" : "index-demo",
  "_type" : "test",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    
    
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  },
  "created" : true
}

2.5 instalación de host node1 kibana

[root@node1 opt]# rpm -ivh kibana-5.5.1-x86_64.rpm
警告:kibana-5.5.1-x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:kibana-5.5.1-1                   ################################# [100%]
[root@node1 opt]#  cd /etc/kibana/
[root@node1 kibana]# cp kibana.yml kibana.yml.bak
[root@node1 kibana]#  vi kibana.yml

在物理机上访问elasticsearch集群是否记录这个日志

2.6 Implementar filebeat (implementado en el servidor Apache)

部署apache服务,以及安装filebeat
[root@pc-8 ~]# ntpdate time1.aliyun.com
[root@pc-8 ~]# yum install httpd


[root@pc-8 opt]# ls
filebeat-5.6.3-x86_64.rpm  rh
[root@pc-8 opt]# rpm -ivh filebeat-5.6.3-x86_64.rpm
警告:filebeat-5.6.3-x86_64.rpm: 头V4 RSA/SHA512 Signature,密钥 ID d88e42b4: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:filebeat-5.6.3-1                 ################################# [100%]

2.6.1 transferencia de registros de apache a formato JASon

202 行下 插入

LogFormat "{ \
\"@timestamp\": \"%{%Y-%m-%dT%H:%M:%S%z}t\", \
\"@version\": \"1\", \
\"tags\":[\"apache\"], \
\"message\": \"%h %l %u %t \\\"%r\\\" %>s %b\", \
\"clientip\": \"%a\", \
\"duration\": %D, \
\"status\": %>s, \
\"request\": \"%U%q\", \
\"urlpath\": \"%U\", \
\"urlquery\": \"%q\", \
\"bytes\": %B, \
\"method\": \"%m\", \
\"site\": \"%{Host}i\", \
\"referer\": \"%{Referer}i\", \
\"useragent\": \"%{User-agent}i\" \
}" apache_json




2)修改CustomLog "logs/access_log" combined为CustomLog "logs/access_log" apache_json (把原来默认的combined换成apache_json,原文件大概在217行的位置)

将原来的access.log清空,并重启httpd服务

2.6.2 Modificar archivo de configuración de filebeat

[root@pc-8 filebeat]# vim /etc/filebeat/filebeat.yml

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2.7 Visite 192.168.100.9:9100 para ver el índice

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2.8 Visite 192.168.100.9:5601 para crear un índice y ver la interfaz de imagen de registro

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/BIGmustang/article/details/108692364
Recomendado
Clasificación