提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


文章目录

  • 实验目的
  • 实验环境
  • 一、前情提要
  • 二、服务节点部署
  • 1.环境准备
  • 2.Elasticsearch(实时全文搜索和分析引擎)
  • 3.Kibana(基于Web的图形界面)
  • 4.Logstash(搜集、分析、过滤日志的工具)
  • 5.数据传递



实验目的

1、基本掌握Linux下安装、删除软件的三种方法。
2、安装ELK平台必要JAVA环境,使用第2中或第3种方法安装JDK。

实验环境

linux_Centos7虚拟机两台,其中一台机器作为ELK的服务节点,另外一台作为客户节点。

一、前情提要

“ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。

Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。

Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。

Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据。

二、服务节点部署

计划在两台CentOS7机器上部署ELK,其中一台机器作为ELK的服务节点,192.168.119.140;另外一台作为客户节点,IP为192.168.119.142。其中服务节点部署Elasticsearch、Logstash和Kibana三个组件,客户节点部署Logstash。

1.环境准备

①默认root用户下操作,其他用户请在命令前添加sudo。安装JDK。

yum -y install java-1.8.0-openjdk

centos7 查找宕机日志 centos7 查看日志_数据

②关闭防火墙。

systemctl stop firewalld
systemctl disable firewalld

centos7 查找宕机日志 centos7 查看日志_elasticsearch_02

③添加ELK仓库

cat > /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=0
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

centos7 查找宕机日志 centos7 查看日志_Elastic_03

④更新yum包

yum clean all
yum makecache

centos7 查找宕机日志 centos7 查看日志_elasticsearch_04

2.Elasticsearch(实时全文搜索和分析引擎)

①安装Elasticsearch

yum install -y elasticsearch

centos7 查找宕机日志 centos7 查看日志_Elastic_05

②确认Elasticsearch的安装信息

rpm -qi elasticsearch

centos7 查找宕机日志 centos7 查看日志_日志审计与分析_06

③启动Elasticsearch并设置开机启动

systemctl daemon-reload
systemctl start elasticsearch
systemctl enable elasticsearch.service

centos7 查找宕机日志 centos7 查看日志_数据_07

④查看Elasticsearch运行状态

systemctl status elasticsearch
ps -ef | grep elasticsearch
netstat -nlpt

centos7 查找宕机日志 centos7 查看日志_centos7 查找宕机日志_08

centos7 查找宕机日志 centos7 查看日志_elasticsearch_09

⑤尝试请求

curl localhost:9200

centos7 查找宕机日志 centos7 查看日志_日志审计与分析_10

⑥设置允许其他机器访问
当前只能响应本机的请求,想要其他机器也能访问的话,那么需要修改elasticsearch的配置。

vim /etc/elasticsearch/elasticsearch.yml

如下修改:(i进入插入模式,esc退出插入模式,:wq保存并退出)

# 第7行,删掉注释
cluster.name: my-application
# 第23行,删掉注释
node.name: node-1
# 第56行,删掉注释并修改
network.host: 0.0.0.0
# 第61行,删掉注释
http.port: 9200
# 第74行,删掉注释
cluster.initial_master_nodes: ["node-1", "node-2"]

centos7 查找宕机日志 centos7 查看日志_centos7 查找宕机日志_11

⑦重启Elasticsearch

systemctl stop elasticsearch
systemctl start elasticsearch

启动后稍等一会

netstat -nlpt

centos7 查找宕机日志 centos7 查看日志_数据_12

如果可以看到:::9200,就可以通过外部浏览器访问Elasticsearch服务了,至此Elasticsearch安装配置完成。
访问网址:

centos7 查找宕机日志 centos7 查看日志_日志审计与分析_13

3.Kibana(基于Web的图形界面)

①安装Kibana

yum install -y kibana

centos7 查找宕机日志 centos7 查看日志_elasticsearch_14

②确认Kibana的安装信息

rpm -qi kibana

centos7 查找宕机日志 centos7 查看日志_elasticsearch_15

③启动Kibana并设置开机启动

systemctl start kibana
systemctl enable kibana

④查看Kibana运行状态

systemctl status kibana
ps -ef | grep kibana
netstat -nlpt

centos7 查找宕机日志 centos7 查看日志_elasticsearch_16

⑤测试访问

curl localhost:5601 -L

centos7 查找宕机日志 centos7 查看日志_日志审计与分析_17

⑥设置允许其他机器访问

vim /etc/kibana/kibana.yml

如下修改:

# 第2行,去掉注释
server.port: 5601
# 第7行,去掉注释并修改
server.host: "0.0.0.0"
# 第32行,去掉注释
elasticsearch.hosts: ["http://localhost:9200"]

centos7 查找宕机日志 centos7 查看日志_elasticsearch_18

⑦重启Kibana

systemctl stop kibana
systemctl start kibana

启动后稍等一会

netstat -nlpt

centos7 查找宕机日志 centos7 查看日志_数据_19


如果可以看到0.0.0.0:5601,就可以通过外部浏览器访问Kibana服务了,至此Kibana安装配置完成。

centos7 查找宕机日志 centos7 查看日志_日志审计与分析_20


centos7 查找宕机日志 centos7 查看日志_centos7 查找宕机日志_21

4.Logstash(搜集、分析、过滤日志的工具)

①安装Logstash

yum install -y logstash

centos7 查找宕机日志 centos7 查看日志_数据_22

②确认Logstash的安装信息

rpm -qi logstash

centos7 查找宕机日志 centos7 查看日志_日志审计与分析_23

③启动Logstash

systemctl start logstash

④查看Logstash运行状态

systemctl status logstash
ps -ef | grep logstash
netstat -nlpt

centos7 查找宕机日志 centos7 查看日志_日志审计与分析_24

centos7 查找宕机日志 centos7 查看日志_日志审计与分析_25

⑤启动成功后的使用:Logstash hello world。启动后ctrlC退出

systemctl stop logstash
/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'

输入启动命令后,耐心等待服务启动,直到出现Successfully started Logstash API endpoint。输入“hello world”回车,即可打印出输出。

注:logstash通过管道来处理数据,标准的管道包含input、filter和output。以上命令,指定了一个管道的参数,没有filter,input是控制台标准输入,output是控制台标准输出。

centos7 查找宕机日志 centos7 查看日志_数据_26

⑥管道配置写入文件
在当前用户目录,新建配置文件std.conf,内容为:
input {
stdin { }
}
output {
stdout {}
}

centos7 查找宕机日志 centos7 查看日志_日志审计与分析_27

⑦测试配置文件并启动,启动后ctrlC退出

/usr/share/logstash/bin/logstash --path.settings /etc/logstash -f ~/std.conf

centos7 查找宕机日志 centos7 查看日志_日志审计与分析_28

⑧从文件中读取信息
(1)新建/usr/local/test.log文件,内容为:

hello logstash!

(2)新建test.conf,内容为:

input {
    file {
        path => ["/usr/local/test.log"]
        sincedb_path => "/dev/null"
        start_position => "beginning"
    }
}
filter {
}
output {
    stdout {
        codec => rubydebug
    }
}

centos7 查找宕机日志 centos7 查看日志_日志审计与分析_29


centos7 查找宕机日志 centos7 查看日志_数据_30

(3)启动Logstash

/usr/share/logstash/bin/logstash --path.settings /etc/logstash -f ~/test.conf

centos7 查找宕机日志 centos7 查看日志_elasticsearch_31

5.数据传递

Logstash收集到了数据,怎样传递给Elasticsearch显示?怎样传递给Kibana显示?
①修改test.conf为:

input {
    file {
        path => ["/usr/local/test.log"]
        sincedb_path => "/dev/null"
        start_position => "beginning"
    }
}
filter {
}
output {
    elasticsearch {
        hosts => ["http://localhost:9200"]
    }
}

centos7 查找宕机日志 centos7 查看日志_elasticsearch_32

②启动Logstash

/usr/share/logstash/bin/logstash -f ~/test.conf

③查看索引

浏览器访问 http://localhost:9200/_cat/indices?v(根据服务端IP地址改变)

centos7 查找宕机日志 centos7 查看日志_数据_33

其中有个索引是logstash的,这就是我们想要查看的数据索引。

④查看数据

浏览器访问 http://localhost:9200/logstash-2022.04.19-000001/_search

centos7 查找宕机日志 centos7 查看日志_数据_34

看到了hello logstash!,说明数据已经成功传递到了Elasticsearch。链接后添加?pretty参数,可以进行格式化显示。

⑤访问http://localhost:5601/app/management,选择kibana中的index patterns:

centos7 查找宕机日志 centos7 查看日志_centos7 查找宕机日志_35


create index pattern:

centos7 查找宕机日志 centos7 查看日志_centos7 查找宕机日志_36

可以看到之前的一些索引:

centos7 查找宕机日志 centos7 查看日志_日志审计与分析_37


选择时间戳,点击创建:

centos7 查找宕机日志 centos7 查看日志_数据_38


创建完成:

centos7 查找宕机日志 centos7 查看日志_centos7 查找宕机日志_39


选择左上角的三杠中的discover,进行详细查看,可以在kibana中看到之前创建的日志信息:

centos7 查找宕机日志 centos7 查看日志_数据_40