Elastic Stack环境搭建
Elastic Stack(ELK)简介
Elastic Stack 由elasticSearch,logstash,kibana和Beats组成。
elasticsearch
elasticSearch是一个基于Apache Lucene的开源搜索引擎。它通过RESTful API来隐藏Lucene的复杂性,让全文搜索变得简单。elasticSearch负责弹性堆栈的数据存储与搜索部分。数据存储使用NoSql,搜索部分使用Apache Lucene库。
1安装elasticSearch
官网安装教程地址为:
https://www.elastic.co/guide/en/elasticsearch/reference/7.9/deb.html#deb-running-init
1.下载并安装公共签名秘钥:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
2.在Debian上安装软件包
sudo apt-get install apt-transport-https
3.将存储库定义保存到/etc/apt/sources.list.d/elastic-7.x.list
echo “deb https://artifacts.elastic.co/packages/7.x/apt stable main” | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
4.使用以下命令安装elasticSearch Debian软件包
sudo apt-get update && sudo apt-get install elasticsearch
5.使用以下命令启动或者停止elasticSearch
sudo -i service elasticsearch start
sudo -i service elasticsearch stop
6.列出elasticSearch日记账分录
sudo journalctl --unit elasticsearch
7.检查elasticSearch是否在运行
http://127.0.0.1:9200
或在浏览器中输出此地址,也会得到同样的输出
8.若需要更改elasticSearch的配置
/etc/default/elasticsearch 配置文件config,配置环境变量,包括堆大小,环境变量等
/etc/elasticsearch/elasticsearch.yml 配置文件config,关于集群中节点的配置
/var/log/elasticsearch/ 存储日志文件log
/var/lib/elasticsearch/ 存储数据文件data
/usr/share/elasticsearch/bin/ 可执行文件bin
/usr/share/elasticsearch/plugins 放置插件的地方
kibana
kibana的官方安装文档地址为
https://www.elastic.co/guide/en/kibana/7.9/deb.html#deb-repo
是一个针对elasticSearch的开源分析及可视化平台,用来搜索、查看存储在elasticSearch平台中的数据,通过各种图标进行高级数据分析及展示。
安装启动方式与elasticSearch非常相似
启动端口为5601
http://127.0.0.1:5601
logstash
官网安装地址为https://www.elastic.co/guide/en/logstash/7.9/installing-logstash.html#_apt
logstash是一种数据管道,从各种来源收集数据并将其转换为所需格式传递给elasticSearch
安装方式为:sudo apt-get update && sudo apt-get install logstash
以上安装完成之后,首先启动elasticsearch和kibana,我们先来学习最基本的elasticsearch命令
如果安装了curl并对curl有所了解,可以直接在命令行界面进行操作,
如果没有安装curl而且之前完全没有接触过,那么浏览器进入5601端口,然后点击左边菜单进入dev-tools,可以看见命令行界面,接下来可以对elasticsearch存储部分进行操作,但是还是建议了解学习一下curl的各种操作
首先需要了解curl的各种参数以及基本操作,可以参考http://www.ruanyifeng.com/blog/2019/09/curl-reference.html
了解curl的参数之前需要对计算机网络中http的请求与响应有所了解https://github.com/CyC2018/CS-Notes/blob/master/notes/HTTP.md
了解elasticsearch内部的存储形式,并开始进行CRUD实操训练http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html
安装elasticSearch-head
这个工具可以用来显示elasticSearch中集群以及存储的数据的详细信息
首先需要安装nodejs和npm
sudo apt install nodejs-legacy 安装nodejs
sudo apt install npm 安装npm
github地址为:https://github.com/mobz/elasticsearch-head
npm install
npm start
浏览器访问9100端口查看界面
会遇到的问题:跨域cors
在elasticsearch.yml文件中加入两行命令
http.cors.enabled: true
http.cors.allow-origin: “*”
重启elasticsearch
使用filebeat收集数据并向logstash中传送
我在windows下做的,linux的那个机器太卡了,不过原理是一样的
在logstash文件夹下编写一个filebeat.conf的配置文件,路径其实随便,位置要记得,之后要用到
不知道为什么我在logstash下使用-e直接编写配置命令会启动报错,改成-f从文件配置启动不会
文件内容如下:
input {
beats {
port => “5044”
}
}
output {
stdout {
codec => rubydebug
}
}
验证配置文件是否存在问题:
logstash -f filebeat.conf --config.test_and_exit
启动配置文件
logstash -f filebeat.conf
下载Filebeat之后解压即可使用。在filebeat文件夹下找到filebeat.yml并修改:
filebeat.inputs:
- type: log
# Change to true to enable this input configuration.
enabled: true
# Paths that should be crawled and fetched. Glob based paths.
paths:
#- /var/log/*.log
- E:\logstash-7.9.2\logs\logstash-tutorial-dataset.log
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
先启动logstash,再启动filebeat
filebeat -e -c filebeat.yml -d “publish”
可以看见logstash命令行界面出现输出,说明filebeat已经将收集到的数据发送给了logstash