目标:分别安装ELK组件(ElasticSearch, Kibana, Logstash, Filebeat)的安装并分别运行,其中在ElasticSearch服务机安装Elasticsearch和Kibana,在日志生成机安装Logstash和Filebeat。
组件下载
通过官网下载途径https://www.elastic.co/downloads,得知目前ELK最新版本为7.13.4,并且获得组件安装的URL,分别在ElasticSearch服务机和日志生成机安装组件,命令如下:
- 在ElasticSearch服务机运行:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.4-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.13.4-linux-x86_64.tar.gz
- 在日志生成机安装:
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.13.4-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.13.4-linux-x86_64.tar.gz
等待安装完成后,分别对四个安装包进行解压,命令如:
tar -zxvf elasticsearch-7.13.4-linux-x86_64.tar.gz
ElasticSearch配置启动
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
root用户是不能直接启动elasticsearch的,需要新建用户,然后切换用户去启动elasticsearch,如下:
创建elsearch用户组及elsearch用户
groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch
将ElasticSearch安装文件复制到新建用户的目录下
在安装目录父目录进行如下操作:
mv elasticsearch-7.13.4 /home/elsearch/elk/
(前提在用户目录下创建elk文件夹)
更改elasticsearch-7.13.4文件夹及内部文件的所属用户及组为elsearch:elsearch
此时切换到用户目录下的ElasticSearch安装文件夹的父目录下操作:
cd /home/elsearch/elk/
chown -R elsearch:elsearch elasticsearch-7.13.4
完成对ElasticSearch的启动权限配置,接下来对ElasticSearch配置文件进行配置。
进入ElasticSearch的配置文件目录,用编辑器打开配置文件
cd /elasticsearch-7.13.4/config
vim elasticsearch.yml
需要释放并修改如下标注的注释
此时,在ElasticSearch服务机上对ElasticSearch配置如下:
##集群名称
cluster.name: es-application
##节点名称
node.name: node-1
##对所有IP开放
network.host: 0.0.0.0
##HTTP端口号
http.port: 9200
##elasticsearch数据文件存放目录
path.data: /home/elsearch/ELK/elasticsearch-7.13.4/data
##elasticsearch日志文件存放目录
path.logs: /home/elsearch/ELK/elasticsearch-7.13.4/logs
完成对elasticsearch.yml的配置后,进入ElasticSearch的bin目录,切换至elsearch用户,运行组件:
cd ../bin
su elsearch
./elasticsearch
运行无报错后,可访问 服务器外网ip:9200 查看是否成功启动,成功启动网页如图所示
Kibana配置启动
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。
Kibana与ElasticSearch相同,需要用非root用户对其进行启动,但不同的是,Kibana允许root用户在启动命令后加上--allow root进行启动
将Kibana安装文件复制到新建用户的目录下
在安装目录父目录进行如下操作:
mv Kibana-7.13.4 /home/elsearch/elk/
更改kibana-7.13.4文件夹及内部文件的所属用户及组为elsearch:elsearch
此时切换到用户目录下的ElasticSearch安装文件夹的父目录下操作:
cd /home/elsearch/elk/
chown -R elsearch:elsearch kibana-7.13.4
接下来对ElasticSearch配置文件进行配置。
进入ElasticSearch的配置文件目录,用编辑器打开配置文件
cd /kibana-7.13.4/config
vim kibana.yml
对以下被注释的配置内容进行修改:(或直接添加以下配置内容)
server.port: 5605
server.host: 0.0.0.0
elasticsearch.hosts: ["http://localhost:9200"]
kibana.index: .kibana
完成编辑后,返回并进入bin目录,即可使用自建用户elsearch启动Kibana
cd ../bin
./kibana
运行无报错后,可访问 服务器外网ip:5605 查看是否成功启动,成功启动网页如图所示
Logstash配置启动
Logstash是一款开源的数据收集引擎,具备实时管道处理能力。简单来说,logstash作为数据源与数据存储分析工具之间的桥梁,结合ElasticSearch以及Kibana,能够极大方便数据的处理与分析。通过200多个插件,logstash可以接受几乎各种各样的数据。包括日志、网络请求、关系型数据库、传感器或物联网等等。
Logstash启动较为简单主要分为以下两种方式:
进入安装目录,进入bin目录下
1. 将输入输出配置写在启动命令上
./logstash -e "input { stdin {}} output { stdout {}}"
上述配置即:日志输入与输出都在控制台中进行
启动完成后,在控制台输入任意字符后回车,即可当作一条日志的输入,程序则会将该条日志内容格式化输出在控制台中
2. 将输入输出配置编写在配置文件中,在启动时引用该配置文件(推荐)
进入安装目录的config目录下,创建配置文件std.conf,并写入内容
vim std.conf
写入内容
#输入项
input {
file {
#读取目录下的所有文件
path => "/home/cpp/data/ccp.teadmin.net/logs/*"
#在文件夹中从头开始检索文件
start_position => beginning
#以 GBK 字符集读取日志文件
codec => plain {charset=>"GBK"}
}
}
#过滤器,可对输入数据进行加工操作
filter {
}
#输出项
output {
#在命令窗口中打印输出内容
stdout{
codec => rubydebug
}
#配置输出发送至ElasticSearch服务器,亦可以同时向多处输出
elasticsearch {
hosts => "localhost:9200"
}
}
完成输入输出配置文件编写后,进入bin目录对Logstash进行启动
./logstash -f ../config/std.conf
启动完成后,自动读取input中指定的文件,将内容打印在控制台中,在文件发生修改时,也会自动读取。输出效果如下:
Filebeat配置启动
Filebeat是用于转发和集中日志数据的轻量级传送程序。作为服务器上的代理安装,Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或Logstash进行索引。
进入Filebeat安装目录下,使用编辑器编辑配置文件filebeat.yml:
filebeat.inputs:
- type: log ①
paths:
- /var/log/system.log
- /var/log/wifi.log
- type: log ②
paths:
- "/var/log/apache2/*"
fields:
apache: true
fields_under_root: true
以上为两种方式配置日志文件从指定路径中输入,可以配置若干个日志输入配置
从控制台中输出:
output.console:
pretty: true
发送到ElasticSearch进行输出:
output.elasticsearch:
hosts: ["https://localhost:9200"]
index: "filebeat-%{[beat.version]}-%{+yyyy.MM.dd}"
当然,也可以发送到Logstash进行数据再加工
完成编写配置文件后,输入启动命令即可:
./filebeat -e -c filebeat_log.yml -d "publish"