前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ELK7.14.0日志分析系统搭建

ELK7.14.0日志分析系统搭建

作者头像
乌鸦安全
发布2021-10-14 11:26:32
1.1K0
发布2021-10-14 11:26:32
举报
文章被收录于专栏:乌鸦安全乌鸦安全

ELK介绍 在平时的工作当中,需要一个日志分析系统来分析各种各样的告警信息,而ELK可以简单满足这个需求。

ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。

官方网站:https://www.elastic.co/

Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

代码语言:javascript
复制
下载地址:https://www.elastic.co/downloads/elasticsearch

Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用。

代码语言:javascript
复制
下载地址:https://www.elastic.co/downloads/logstash

Kibana 也是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

代码语言:javascript
复制
下载地址:https://www.elastic.co/downloads/kibana

Logstash收集服务器产生的Log,并存放到ElasticSearch集群中,而Kibana则从ES集群中查询数据生成图表,再返回给Browser。

1.环境搭建

Ubuntu 16.0.4 2H4G IP为192.168.11.128

ElasticSearch: 7.14.0

Logstash: 7.14.0

Kibana: 7.14.0

Java: openjdk version "1.8"

ElasticSearch,Logstash和Kibana的版本最好一样

说明:这里为了演示ELK都安装在一台服务器上,服务器内存越大越好。

2.安装JDK

更新一下包

代码语言:javascript
复制
sudo apt update && sudo apt upgrade

查看java信息,发现没有安装java。

代码语言:javascript
复制
java -version

安装java

代码语言:javascript
复制
sudo apt install openjdk-8-jre-headless

可以看到java已安装

3.安装ElasticSearch

ElasticSearch不允许以root用户运行,因为我们当前用户是bolean,所以问题不大。

进入ElasticSearch页面查看安装包信息,选择适合ubuntu的安装包。

代码语言:javascript
复制
https://www.elastic.co/downloads/elasticsearch

下载elasticsearch并解压到当前目录

代码语言:javascript
复制
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.0-linux-x86_64.tar.gz
tar zxvf elasticsearch-7.14.0-linux-x86_64.tar.gz

需要修改elasticsearch的配置文件

Elasticsearch基于Lucene的,而Lucene底层是java实现,因此我们需要配置jvm参数。

代码语言:javascript
复制
vim jvm.options

修改默认配置:-Xms1g -Xmx1g为512m,去掉前面的注释。

编辑elasticsearch.yml

代码语言:javascript
复制
vim elasticsearch.yml

修改以下数据,取消前面的注释。

代码语言:javascript
复制
node.name: node-1   #配置当前es节点名称(默认是被注释的,并且默认有一个节点名
network.host: 0.0.0.0    #绑定的ip,默认只允许本机访问,修改为0.0.0.0后则可以远程访问
http.port: 9200
cluster.initial_master_nodes: ["node-1"]     #这个节点名称就是node.name设置的参数值

在/etc/sysctl.conf文件最后添加一行 vm.max_map_count=655360 添加完毕之后,执行命令sysctl -p。

代码语言:javascript
复制
sudo vim /etc/sysctl.conf

修改/etc/security/limits.conf文件,增加配置信息。

代码语言:javascript
复制
* soft nofile 65536
* hard nofile 65536

在elasticsearch目录下启动elasticsearch,因为在一台服务器上启动多个软件,所以可以用screen新建一个会话窗口。

代码语言:javascript
复制
sudo apt install screen
screen -S  elasticsearch
./bin/elasticsearch

访问http://192.168.11.128:9200/

4.安装kibana

查看安装包信息,选择适合ubuntu的安装包。

https://www.elastic.co/downloads/kibana

下载kibana并解压

代码语言:javascript
复制
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.14.0-linux-x86_64.tar.gz
tar zxvf kibana-7.14.0-linux-x86_64.tar.gz

修改kibana的配置文件kibana.yml

主要修改这两项,取消前面的注释。

代码语言:javascript
复制
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.11.128:9200"] #设置为你服务器的ip地址

新建一个screen会话,在kibana目录下运行kibana。

代码语言:javascript
复制
screen -S kibana
./bin/kibana

需要先运行elasticsearch才能运行成功

访问http://192.168.11.128:5601/app/home

可以看到有两个会话了,接下来还要安装一个软件。

5.安装logstash

查看logstash页面,选择适合logstash的安装包。https://www.elastic.co/downloads/logstash

下载kibana并解压

代码语言:javascript
复制
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.14.0-linux-x86_64.tar.gz
tar zxvf logstash-7.14.0-linux-x86_64.tar.gz

Logstash管道有两个最基本元素,输入和输出,和一个可选的元素,拦截器。输入插件从一个输入源中消费数据,拦截器插件按照你指定的方式修改数据,然后输出插件将数据写入到一个目的地。

在bin目录新建一个配置文件logstash.conf。配置文件以suricata日志为例,请自行安装suricata,文件内容如下。

代码语言:javascript
复制
input {
  file {
    path => ["/var/log/suricata/eve.json"]   #这里读取suricata的日志
    codec => "json"
    type => "SuricataAlert"
  }
}

output {
  elasticsearch {
    action => "index"
    hosts => ["http://192.168.11.128:9200"]    #是指服务器的ip
    index => "suricata-%{+YYYY.MM.dd}"         #建立索引,记住suricata这个名称
  }
}

新建一个screen会话,启动logstash

代码语言:javascript
复制
screen -S logstash
./logstash -f logstash.conf

成功如下所示

可以看到已经创建了三个会话

如果运行失败可以加个-t参数查看失败原因,这样不会运行,可以帮助排查错误。

代码语言:javascript
复制
./logstash -t -f logstash.conf

在2H2G的云服务器上运行logstash会显示失败,虚拟机运行没问题,初步认为这台云服务配置虚高。

如果带不动修改 jvm.options 文件。修改内容如下。

代码语言:javascript
复制
vim  jvm.options
-Xms200m
-Xmx200m

下图为logstash启动失败页面

6.导入suricata日志

点击manage

选择index patterns,然后选择create。

匹配索引,suricata就是logstash配置文件中的索引,选择下一步。

选择筛选条件,然后点击创建。

接下来点击discover

可以看到suricata日志,但是还不太直观。

下载下面三个json文件并导入。

代码语言:javascript
复制
https://aka.ms/networkwatchersuricatadashboard
https://aka.ms/networkwatchersuricatavisualization
https://aka.ms/networkwatchersuricatasavedsearch

注意导入第二个和第三个的时候需要选择之前创建的索引。

三个文件导入完成后就可以方便的查看日志了

注意查看日志需要设置好时间,不然查看不到。上述只是介绍一下简单的配置方式,方便为了演示,如需配置更复杂的功能,请参考官方说明。

参考链接

代码语言:javascript
复制
https://www.cnblogs.com/weibanggang/p/11589464.html
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乌鸦安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.环境搭建
  • 2.安装JDK
  • 3.安装ElasticSearch
  • 4.安装kibana
  • 5.安装logstash
  • 6.导入suricata日志
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档