【日志审计与分析】centOS7 安装ELK平台

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


实验目的

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

在这里插入图片描述

②关闭防火墙。

systemctl stop firewalld
systemctl disable firewalld

在这里插入图片描述

③添加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

在这里插入图片描述

④更新yum包

yum clean all
yum makecache

在这里插入图片描述

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

①安装Elasticsearch

yum install -y elasticsearch

在这里插入图片描述

②确认Elasticsearch的安装信息

rpm -qi elasticsearch

在这里插入图片描述

③启动Elasticsearch并设置开机启动

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

在这里插入图片描述

④查看Elasticsearch运行状态

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

在这里插入图片描述

在这里插入图片描述

⑤尝试请求

curl localhost:9200

在这里插入图片描述

⑥设置允许其他机器访问
当前只能响应本机的请求,想要其他机器也能访问的话,那么需要修改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"]

在这里插入图片描述

⑦重启Elasticsearch

systemctl stop elasticsearch
systemctl start elasticsearch

启动后稍等一会

netstat -nlpt

在这里插入图片描述

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

在这里插入图片描述

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

①安装Kibana

yum install -y kibana

在这里插入图片描述

②确认Kibana的安装信息

rpm -qi kibana

在这里插入图片描述

③启动Kibana并设置开机启动

systemctl start kibana
systemctl enable kibana

④查看Kibana运行状态

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

在这里插入图片描述

⑤测试访问

curl localhost:5601 -L

在这里插入图片描述

⑥设置允许其他机器访问

vim /etc/kibana/kibana.yml

如下修改:

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

在这里插入图片描述

⑦重启Kibana

systemctl stop kibana
systemctl start kibana

启动后稍等一会

netstat -nlpt

在这里插入图片描述
如果可以看到0.0.0.0:5601,就可以通过外部浏览器访问Kibana服务了,至此Kibana安装配置完成。

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

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

①安装Logstash

yum install -y logstash

在这里插入图片描述

②确认Logstash的安装信息

rpm -qi logstash

在这里插入图片描述

③启动Logstash

systemctl start logstash

④查看Logstash运行状态

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

在这里插入图片描述

在这里插入图片描述

⑤启动成功后的使用: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是控制台标准输出。
在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

⑧从文件中读取信息
(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
    }
}

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

(3)启动Logstash

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

在这里插入图片描述

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"]
    }
}

在这里插入图片描述

②启动Logstash

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

③查看索引
浏览器访问 http://localhost:9200/_cat/indices?v(根据服务端IP地址改变)
在这里插入图片描述

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

④查看数据
浏览器访问 http://localhost:9200/logstash-2022.04.19-000001/_search
在这里插入图片描述

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

⑤访问http://localhost:5601/app/management,选择kibana中的index patterns:
在这里插入图片描述
create index pattern:
在这里插入图片描述

可以看到之前的一些索引:
在这里插入图片描述
选择时间戳,点击创建:
在这里插入图片描述
创建完成:

在这里插入图片描述
选择左上角的三杠中的discover,进行详细查看,可以在kibana中看到之前创建的日志信息:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值