提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
实验目的
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中看到之前创建的日志信息: