ELK日志分析系统

ELK介绍

应用/需求前景

(1)业务发展越来越庞大,服务器越来越多;
(2)各种访问日志、应用日志、错误日志量越来越多,导致运维人员无法很好的去管理日志;
(3)开发人员排查问题,需要到服务器上查日志,不方便;
(4)运营人员需要一些数据,需要我们运维到服务器上分析日志。

为什么要用ELK

如果我们查看某些服务为什么错误,可以直接使用grep等命令进行查看,可是如果我们查看规模较大,日志较多的时候,此方法效率就小了很多。现在我们对待大规模的日志,解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
一个完整的集中式日志系统,需要包含以下几个主要特点:

  • 收集:能够采集多种来源的日志数据。
  • 传输:能够稳定的把日志数据传输到中央系统。
  • 存储:如何存储日志数据。
  • 分析:可以支持 UI 分析。
  • 警告:能够提供错误报告,监控机制。
    而ELK则提供一整套的解决方案,并且都是开源软件,之间相互配合,完美衔接,高效的满足了很多场合的应用。
ELK简介

ELK是3个开源软件的缩写,分别为Elasticsearch 、 Logstash和Kibana , 它们都是开源软件。不过现在还新增了一个Beats,它是一个轻量级的日志收集处理工具(Agent),Beats占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具,目前由于原本的ELK Stack成员中加入了Beats工具所以已改名为Elastic Stack。
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据3大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,Client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往Elasticsearch上去。
Kibana也是一个开源和免费的工具,Kibana可以为 Logstash和 ElasticSearch提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
Beats在这里是一个轻量级日志采集器,其实Beats家族有6个成员,早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、CPU、io等资源消耗比较高。相比 Logstash,Beats所占系统的CPU和内存几乎可以忽略不计。

基础环境配置

环境准备

规划3个节点,其中1个作为主节点,2个作为数据节点:
在这里插入图片描述

修改主机名

使用hostnamectl命令修改3个主机名,以做区分:
elk-1节点:
[root@localhost ~]# hostnamectl set-hostname elk-1
// 修改完后ctrl+d退出后重新连接
[root@elk-1 ~]#
elk-2节点:
[root@localhost ~]# hostnamectl set-hostname elk-2
[root@elk-2 ~]#
elk-3节点:
[root@localhost ~]# hostnamectl set-hostname elk-3
[root@elk-3 ~]#

配置hosts文件

3个节点配置相同(以elk-1节点为例),命令如下:
elk-1节点:
[root@elk-1 ~]# vi /etc/hosts
[root@elk-1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.31.157 elk-1
192.168.31.161 elk-2
192.168.31.162 elk-3

安装JDK

部署ELK环境需要jdk1.8以上的JDK版本软件环境,我们使用opnejdk1.8,3节点全部安装(以elk-1节点为例),命令如下:
elk-1节点:
[root@elk-1 ~]# yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
……
[root@elk-1 ~]# java -version
openjdk version “1.8.0_242”
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)

Elasticserach安装

安装Elasticserach

将提供的rpm包上传至3台节点的/root/目录下,或者上传至一节点后使用scp进行拷贝,之后使用rpm命令进行安装,3节点全部安装:
软件包下载链接:https://mirrors.tuna.tsinghua.edu.cn/elasticstack/6.x/yum/6.0.0/elasticsearch-6.0.0.rpm
scp复制命令:
[root@elk-1 ~]# scp elasticsearch-6.0.0.rpm elk-3:/root/
The authenticity of host ‘elk-3 (192.168.31.162)’ can’t be established.
ECDSA key fingerprint is f3:72:41:05:79💿52:9b:a6:98:f0:5b:e8:5f:26:3d.
Are you sure you want to continue connecting (yes/no)? y
// 第一次连接会询问你确定连接?第二次连接就会只让你输入密码。
Please type ‘yes’ or ‘no’: yes
Warning: Permanently added ‘elk-3,192.168.31.162’ (ECDSA) to the list of known hosts.
root@elk-3’s password:
// 连接的机器的密码,就是elk-3这台机器root登入的密码。
elasticsearch-6.0.0.rpm 100% 298 0.3KB/s 00:00
elk-3节点查看是否复制过去:
[root@elk-3 ~]# ls
anaconda-ks.cfg elasticsearch-6.0.0.rpm
elk-1节点:
[root@elk-1 ~]# rpm -ivh elasticsearch-6.0.0.rpm
// 参数含义:i表示安装,v表示显示安装过程,h表示显示进度
warning: elasticsearch-6.0.0.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Preparing… ################################# [100%]
Creating elasticsearch group… OK
Creating elasticsearch user… OK
Updating / installing…
1:elasticsearch-0:6.0.0-1 ################################# [100%]
###NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
###You can start elasticsearch service by executing
sudo systemctl start elasticsearch.service
elk-2节点:
[root@elk-2 ~]# rpm -ivh elasticsearch-6.0.0.rpm
warning: elasticsearch-6.0.0.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Preparing… ################################# [100%]
Creating elasticsearch group… OK
Creating elasticsearch user… OK
Updating / installing…
1:elasticsearch-0:6.0.0-1 ################################# [100%]
###NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
###You can start elasticsearch service by executing
sudo systemctl start elasticsearch.service
elk-3节点:
[root@elk-3 ~]# rpm -ivh elasticsearch-6.0.0.rpm
warning: elasticsearch-6.0.0.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Preparing… ################################# [100%]
Creating elasticsearch group… OK
Creating elasticsearch user… OK
Updating / installing…
1:elasticsearch-0:6.0.0-1 ################################# [100%]
###NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
###You can start elasticsearch service by executing
sudo systemctl start elasticsearch.service

配置Elasticserach

配置elasticsearch的配置文件,配置文件:/etc/elasticsearch/elasticsearch.yml

  • elk-1节点:增加以下加粗字样(//为解释,这里用不到的配置文件被删除),注意IP。
    [root@elk-1 ~]# vi /etc/elasticsearch/elasticsearch.yml
    [root@elk-1 ~]# cat /etc/elasticsearch/elasticsearch.yml
    #====== Elasticsearch Configuration ==========

#NOTE: Elasticsearch comes with reasonable defaults for most settings.
#Before you set out to tweak and tune the configuration, make sure you
#understand what are you trying to accomplish and the consequences.

#The primary way of configuring a node is via this file. This template lists
#the most important settings you may want to configure for a production cluster.

#Please consult the documentation for further information on configuration options:
#https://www.elastic.co/guide/en/elasticsearch/reference/index.html

#------------------Cluster --------------------
#Use a descriptive name for your cluster:
cluster.name: ELK
//配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
#------------------------Node -----------------
#Use a descriptive name for the node:
node.name: elk-1
//节点名,默认随机指定一个name列表中名字,该列表在es的jar包中config文件夹里name.txt文件中,其中有很多作者添加的有趣名字。
node.master: true
//指定该节点是否有资格被选举成为node,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。 其他两节点为false
node.data: false
//指定该节点是否存储索引数据,默认为true。其他两节点为true
#----------------- Paths ----------------
#Path to directory where to store the data (separate multiple locations by comma):
path.data: /var/lib/elasticsearch
//索引数据存储位置(保持默认,不要开启注释)
#Path to log files:
path.logs: /var/log/elasticsearch
//设置日志文件的存储路径,默认是es根目录下的logs文件夹
#--------------- Network ------------------
#Set the bind address to a specific IP (IPv4 or IPv6):
network.host: 192.168.31.157
//设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0。
#Set a custom port for HTTP:
http.port: 9200
//启动的es对外访问的http端口,默认9200
#For more information, consult the network module documentation.
#--------------------Discovery ----------------
#Pass an initial list of hosts to perform discovery when new node is started:
#The default list of hosts is [“127.0.0.1”, “[::1]”]
#discovery.zen.ping.unicast.hosts: [“host1”, “host2”]
discovery.zen.ping.unicast.hosts: [“elk-1”,“elk-2”,“elk-3”]
//设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。

  • elk-2节点:
    [root@elk-2 ~]# vi /etc/elasticsearch/elasticsearch.yml
    [root@elk-2 ~]# cat /etc/elasticsearch/elasticsearch.yml |grep -v ^# |grep -v ^$
    cluster.name: ELK
    node.name: elk-2
    node.master: false
    node.data: true
    path.data: /var/lib/elasticsearch
    path.logs: /var/log/elasticsearch
    network.host: 192.168.31.161
    http.port: 9200
    discovery.zen.ping.unicast.hosts: [“elk-1”,“elk-2”,“elk-3”]
  • elk-3节点:
    [root@elk-2 ~]# vi /etc/elasticsearch/elasticsearch.yml
    [root@elk-2 ~]# cat /etc/elasticsearch/elasticsearch.yml |grep -v ^# |grep -v ^$
    cluster.name: ELK
    node.name: elk-3
    node.master: false
    node.data: true
    path.data: /var/lib/elasticsearch
    path.logs: /var/log/elasticsearch
    network.host: 192.168.31.162
    http.port: 9200
    discovery.zen.ping.unicast.hosts: [“elk-1”,“elk-2”,“elk-3”]
启动服务

通过命令启动es服务,启动后使用ps命令查看进程是否存在或者使用netstat命令查看是否端口启动。命令如下:(3个节点命令相同)
[root@elk-1 ~]# systemctl start elasticsearch
[root@elk-1 ~]# ps -ef |grep elasticsearch
[root@elk-1 ~]# netstat -lntp
[root@elk-1 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:
LISTEN 1446/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1994/master
tcp6 0 0 192.168.31.157:9200 ::: * LISTEN 19280/java
tcp6 0 0 192.168.31.157:9300 ::: * LISTEN 19280/java
tcp6 0 0 :::22 ::: * LISTEN 1446/sshd
tcp6 0 0 ::1:25 ::: * LISTEN 1994/master*
有以上端口或者进程存在,证明es服务启动成功。

检测集群状态

使用curl命令来检查集群状态,命令如下
elk-1节点:
[root@elk-1 ~]# curl ‘192.168.31.157:9200/_cluster/health?pretty’
在这里插入图片描述 “status” : “green”,
//为green则代表健康没问题,yellow或者red 则是集群有问题
“timed_out” : false,
//是否有超时
“number_of_nodes” : 3,
//集群中的节点数量
“number_of_data_nodes” : 2,
//集群中data节点的数量

部署Kibana

安装Kibana

通过scrt工具把kibana的rpm包上传至elk-1节点的root的目录下(其他节点不需上传)。
[root@elk-1 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/6.x/yum/6.0.0/kibana-6.0.0-x86_64.rpm
[root@elk-1 ~]# rpm -ivh kibana-6.0.0-x86_64.rpm
warning: kibana-6.0.0-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Preparing… ################################# [100%]
Updating / installing…
1:kibana-6.0.0-1 ################################# [100%]

配置Kibana

配置Kibana的配置文件,配置文件在/etc/kibana/kibana.yml,在配置文件增加或修改以下内容:
[root@elk-1 ~]# vi /etc/kibana/kibana.yml
[root@elk-1 ~]# cat /etc/kibana/kibana.yml |grep -v ^#
server.port: 5601
server.host: “192.168.31.157”
elasticsearch.url: “http://192.168.31.157:9200”

启动Kibana

[root@elk-1 ~]# systemctl start kibana
[root@elk-1 ~]# ps -ef |grep kibana
[root@elk-1 ~]# netstat -lntp |grep node
在这里插入图片描述启动成功后网页访问,可以访问到如下界面。
在这里插入图片描述

Logstash部署

安装Logstash

使用scrt工具把kibana的rpm包上传至elk-2节点的root的目录下(其他节点不需上传)。
[root@elk-2 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/6.x/yum/6.0.0/logstash-6.0.0.rpm
[root@elk-2 ~]# rpm -ivh logstash-6.0.0.0.rpm
warning: logstash-6.0.0.0.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Preparing… ################################# [100%]
Updating / installing…
1:logstash-1:6.0.0-1 ################################# [100%]
Using provided startup.options file: /etc/logstash/startup.options

配置Logstash

配置/etc/logstash/logstash.yml,修改增加如下:
[root@elk-2 ~]# vi /etc/logstash/logstash.yml
http.host: “192.168.31.161”
配置logstash收集syslog日志:
[root@elk-2 ~]# vi /etc/logstash/conf.d/syslog.conf
[root@elk-2 ~]# cat /etc/logstash/conf.d/syslog.conf
input {
syslog {
type => “systemlog”
port => 10514
}
}
output {
stdout {
codec => rubydebug
}
}
其中,input定义日志源,
type => “systemlog” 定义类型
output 定义日志输出

检测配置文件是否错误:
[root@elk-2 ~]# ln -s /usr/share/logstash/bin/logstash /usr/bin
// 创建软连接,方便使用logstash命令
[root@elk-2 ~]# logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit

  • ( 报错:OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
    在这里插入图片描述

在虚拟机的设置中,将处理器的处理器核心数量改成2,重新执行启动命令后,能够正常运行。若还是未能执行成功,可进一步将处理器数量也改成2.
————————————————
版权声明:本文为CSDN博主「李在奋斗」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_31725371/article/details/100588121)
在这里插入图片描述参数解释:

  • –path.settings : 用于指定logstash的配置文件所在的目录
  • -f : 指定需要被检测的配置文件的路径
  • –config.test_and_exit : 指定检测完之后就退出,不然就会直接启动了
    打开10514端口,编辑/etc/rsyslog.conf文件,在#### RULES ####增加一行
    . @@192.168.63.149:10514
    [root@elk-2 ~]# vi /etc/rsyslog.conf
    ####RULES ####
    . @@192.168.31.161:10514
    [root@elk-2 ~]# systemctl restart rsyslog
    [root@elk-2 ~]# ll /var/lib/logstash/
    在这里插入图片描述修改/var/lib/logstash/目录的所属组为logstash,并重启服务:
    [root@elk-2 ~]# chown -R logstash /var/lib/logstash/
启动Logstash
  • 检查配置文件没有问题后,启动Logstash服务:
    [root@elk-2 ~]# logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf
    上个窗口不要关闭,新建一个窗口,使用命令ps,查看进程:
    [root@elk-2 ~]#ps -ef |grep logstash
    logstash 21835 1 12 16:45 ? 00:03:01 /bin/java -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+DisableExplicitGC -Djava.awt.headless=true -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -Xmx1g -Xms256m -Xss2048k -Djffi.boot.library.path=/usr/share/logstash/vendor/jruby/lib/jni -Xbootclasspath/a:/usr/share/logstash/vendor/jruby/lib/jruby.jar -classpath : -Djruby.home=/usr/share/logstash/vendor/jruby -Djruby.lib=/usr/share/logstash/vendor/jruby/lib -Djruby.script=jruby -Djruby.shell=/bin/sh org.jruby.Main /usr/share/logstash/lib/bootstrap/environment.rb logstash/runner.rb --path.settings /etc/logstash
    root 21957 20367 0 17:10 pts/2 00:00:00 grep --color=auto logstash

  • 使用netstat命令,查看进程端口10514和9600端口是否已启动:
    [root@elk-2 ~]# netstat -lntp
    logstash

  • 使用netstat命令,查看进程端口10514和9600端口是否已启动:
    [root@elk-2 ~]# netstat -lntp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:22 0.0.0.0:
    LISTEN 1443/sshd
    tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2009/master
    tcp6 0 0 192.168.31.161:9200 ::: * LISTEN 19365/java
    tcp6 0 0 :::10514 ::: * LISTEN 21835/java
    tcp6 0 0 192.168.31.161:9300 ::: * LISTEN 19365/java
    tcp6 0 0 :::22 ::: * LISTEN 1443/sshd
    tcp6 0 0 ::1:25 ::: * LISTEN 2009/master
    tcp6 0 0 192.168.31.161:9600 ::: * LISTEN 21835/java*

  • 让syslog产生日志,用另一台主机登录elk-2机器,登录后退出
    [root@elk-3 ~]# ssh elk-2
    The authenticity of host ‘elk-2 (192.168.63.149)’ can’t be established.
    ECDSA key fingerprint is SHA256:0HB481ZffyMmSgEa0rqgu/i3qUY8bcZS90V3g2Nja84.
    ECDSA key fingerprint is MD5:c9:ac:7b:0c:d2:43:dc:2e:e9:2a:0b:2d:63:ce:a5:7f.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added ‘elk-2,192.168.63.149’ (ECDSA) to the list of known hosts.
    root@elk-2’s password:
    Permission denied, please try again.
    root@elk-2’s password:
    Last failed login: Tue Mar 23 14:47:21 CST 2021 from elk-3 on ssh:notty
    There was 1 failed login attempt since the last successful login.
    Last login: Tue Mar 23 10:02:53 2021 from 192.168.63.1

    [root@elk-2 ~]# logout
    Connection to elk-2 closed.
    会发现,elk2产生日志信息。

  • 此操作只是将日志输出到屏幕上,接下来,我们将日志输出给ES,修改syslog.conf文件。
    #vi /etc/logstash/conf.d/syslog.conf
    input {
    syslog {
    type => “systemlog”
    port => 10514
    }
    }
    output {
    elasticsearch {
    hosts => [“192.168.63.149:9200”]
    index => “system-syslog-%{+YYYY.MM}”
    }
    }

    接下来启动logstash服务,检查端口是否正常。
    #systemctl restart logstash
    [root@elk-2 ~]# netstat -ntpl
    让syslog产生日志,用另一台主机登录elk-2机器,登录后退出
    [root@elk-3 ~]# ssh elk-2
    root@elk-2’s password:
    Last login: Tue Mar 23 14:54:26 2021 from elk-3
    [root@elk-2 ~]# logout
    Connection to elk-2 closed.

Kibana上查看日志

之前部署Kibana完成后,还没有检索日志。现在Logstash部署完成,我们回到Kibana服务器上查看日志索引,执行命令如下:
[root@elk-1 ~]# curl ‘192.168.31.157:9200/_cat/indices?v’
在这里插入图片描述获取/删除指定索引详细信息:
[root@elk-1 ~]# curl -XGET/DELETE

Web界面配置

浏览器访问192.168.31.157:5601,到Kibana上配置索引:
在这里插入图片描述配置完成后,选择Discover,进入“Discover”页面后,如果出现以下提示,则是代表无法查找到日志信息:(更改虚拟机时间相匹配)
在这里插入图片描述如下图所示现在就正常了:
在这里插入图片描述

Logstash收集Nginx日志

安装Nginx

使用wget命令下载Nginx的rpm包并安装:
[root@elk-2 ~]#wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.16.1-1.el7.ngx.x86_64.rpm
[root@elk-2 ~]# rpm -ivh nginx-1.16.1-1.el7.ngx.x86_64.rpm

配置Logstash

elk-2上:编辑Nginx配置文件,加入如下内容:
[root@elk-2 ~]# vi /etc/logstash/conf.d/nginx.conf,
input {
file {
path => “/tmp/elk_access.log”
start_position => “beginning”
type => “nginx”
}
}
filter {
grok {
match => { “message” => “%{IPORHOST:http_host} %{IPORHOST:clientip} - %{USERNAME:remote_user} [%{HTTPDATE:timestamp}] “(?:%{WORD:http_verb} %{NOTSPACE:http_request}(?: HTTP/%{NUMBER:http_version})?|%{DATA:raw_http_request})” %{NUMBER:response} (?:%{NUMBER:bytes_read}|-) %{QS:referrer} %{QS:agent} %{QS:xforwardedfor} %{NUMBER:request_time:float}”}
}
geoip {
source => “clientip”
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
hosts => [“192.168.31.161:9200”]
index => “nginx-test-%{+YYYY.MM.dd}”
}
}

使用logstash命令检查文件是否错误:
[root@elk-2 ~]# logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/nginx.conf --config.test_and_exit
Sending Logstash’s logs to /var/log/logstash which is now configured via log4j2.properties
Configuration OK

  • 编辑监听Nginx日志配置文件,加入如下内容:
    [root@elk-2 ~]# vi /etc/nginx/conf.d/elk.conf
    server {
    listen 80;
    server_name elk.com;

         location / {
             proxy_pass      http://192.168.31.157:5601;
             proxy_set_header Host   $host;
             proxy_set_header X-Real-IP      $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         }
         access_log  /tmp/elk_access.log main2;
     }
    
  • 修改Nginx日志配置文件,增加如下内容(需注意Nginx配置文件格式,在accesslog上方添加以下内容):
    [root@elk-2 ~]#vim /etc/nginx/nginx.conf
    log_format main2 ’ $http_host $remote_addr - $remote_user [ $time_local] " $request" ’
    ’ $status $body_bytes_sent " $http_referer" ’
    ‘" $http_user_agent" " $upstream_addr" $request_time’;
    [root@elk-2 ~]# nginx -t
    在这里插入图片描述[root@elk-2 ~]#
    [root@elk-2 ~]# systemctl start nginx
    [root@elk-2 ~]# systemctl restart logstash

  • 在/etc/hosts文件和编辑C:\Windows\System32\drivers\etc\hosts文件中添加下面信息:
    192.168.31.161 elk.com
    浏览器访问,检查是否有日志产生。
    在这里插入图片描述[root@elk-1 ~]# curl ‘192.168.63.143:9200/_cat/indices?v’

Web界面配置

浏览器访问192.168.31.157:5601,到Kibana上配置索引:
在这里插入图片描述在这里插入图片描述在这里插入图片描述配置完成后,选择Discover,进入“Discover”页面后,如果出现以下提示,则是代表无法查找到日志信息:(更改虚拟机时间)
在这里插入图片描述在这里插入图片描述

使用Beats采集日志

安装Beats

[root@elk-3 ~]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.0.0-x86_64.rpm
[root@elk-3 ~]# rpm -ivh filebeat-6.0.0-x86_64.rpm

配置Beats

编辑配置文件:
[root@elk-3 ~]# vim /etc/filebeat/filebeat.yml
filebeat.prospectors:
#enabled: false //注释掉该参数
paths:
- /var/log/elasticsearch/elk.log //此处可自行改为想要监听的日志文件
output.elasticsearch:
hosts: [“192.168.31.157:9200”]
[root@elk-3 ~]# systemctl start filebeat
在elk-1主机上使用curl '192.168.31.157:9200/_cat/indices?v’命令查看是否监听到elk-3主机上的日志(出现filebeat字样表示成功)

Web界面配置

按照上一个步骤在浏览器中添加filebeat日志文件的监控。

在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值