云计算上机实验二


这一篇博文是在服务器上做的
虚拟机上的markdown格式下载

1.ELK简介

(1) ELasticSearch:Elasticsearch是一个高度可伸缩的开源全文搜索和分析引擎。它允许用户快速和接近实时地存储、搜索和分析大量数据。
(2) Logstash:Logstash是一个开源的服务器端数据处理管道,可以同时从多个数据源获取数据,并对其进行转换、过滤、增强等,然后将其发送到其地方。
(3) Beats:Beats是用于单用途数据托运人的平台,它们以轻量级代理的形式安装,并将来自成百上千台机器的数据发送到Logstash或Elasticsearch。包含:filebeat,metricbeat,packetbeat等。
(4) Kibana:Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作,可以用来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互,轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。
在这里插入图片描述

2. 实验环境

(1) 通过VMWare等虚拟机软件搭建Ubuntu系统进行实验
(2) JDK环境:请自行为Ubuntu安装JDK(Server JRE),并配置环境变量(sudo apt install openjdk-8-jdk-headless)

3. ELK环境搭建

(1) 环境布局

演示布局如下图所示:
在这里插入图片描述
在实际应用中,Beats和Logstash一般是部署在不同服务器上的。由于服务器资源有限,这里演示时将两者部署在同一个服务器上。

(2) 软件包下载

https://www.elastic.co/downloads/past-releases#elasticsearch
在这里插入图片描述

下载ElasticSearch、Logstash、Kibana、Beats(FileBeat、MetricBeat、PacketBeat等)
在这里插入图片描述

创建elk目录

mkdir /usr/local/elk

在这里插入图片描述

(3) ElasticSearch部署:

① 解压文件到上一步创建的/usr/local/elk目录下

tar -zxvf elasticsearch-6.7.1.tar.gz -C /usr/local/elk/

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

Elasticsearch目录结构:

Bin二进制脚本,例如ES启动脚本elasticsearch
LibES依赖包目录,包含ES用到的jar包
Logs日志文件目录
Config配置文件目录,elasticsearch.yml为ES的配置文件
ModulesES模块目录
Plugins一些常用插件
DataES索引等数据默认存放在根目录下的data文件夹里,初次运行ES后便会自动生成,也可在config/elasticsearch.yml更改数据存放路径

② 配置ES

使用vim打开elasticsearch.yml(关于vim的基本使用请自行学习)

cd /usr/local/elk/elasticsearch-6.7.1
vim config/elasticsearch.yml

在这里插入图片描述

这里只进行最基础的配置,当然也可以使用ES默认的配置

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

③ 运行Elasticsearch

1) 前置操作

当我们在root用户下启动ES时,会有以下报错:
在这里插入图片描述
这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑,建议创建一个单独的用户用来运行ElasticSearch。
新用户的密码为:zhang2000

cd /usr/local/elk/
ls
groupadd elk
useradd elk-user -g elk
passwd elk-user
chown -R elk-user:elk elasticsearch-6.7.1/
cd elasticsearch-6.7.1/
ls -alh

在这里插入图片描述

2) 启动ES

可以直接先改文件,跳转至下面直接修改的标签操作也可以
切换到elk-user用户,进入bin文件夹,运行elasticsearch文件,后面的&表示后台运行

su elk-user
cd bin
./elasticsearch &

观察到有WARN等问题,开始处理这些错误
在这里插入图片描述
先将这个elasticsearch进程杀死,上面进程号写的是26127(随机的,每个人的不一样)
如果不知道也可以使用命令查看:

1.查找ES进程
ps -ef | grep elastic
2.杀掉ES进程
kill -9 26127(进程号)
直接修改
报错里有
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
这是垃圾处理器不建议使用了,我们换成UseU1GC

进入/usr/local/elk/elasticsearch-6.7.1/config将jvm.options文件稍作修改
将UseConcMarkSweepGC换成UseU1GC

vim /usr/local/elk/elasticsearch-6.7.1/config/jvm.options

在这里插入图片描述
对于

[2022-06-23T13:40:38,563][WARN ][o.e.b.BootstrapChecks    ] [yn2OCgc] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

vim里输入i,左下角会显示插入表示开始修改文件了,修改完成后输入ESC键,然后输入:wq回车就好了。
然后切换到root用户下,使用vim修改/etc下的sysctl.conf文件

su root
vim /etc/sysctl.conf

我的文件里是空的,所以加了过后有效行也只有一行
在这里插入图片描述
接着修改最后一个问题:

[2022-06-23T13:40:38,563][WARN ][o.e.b.BootstrapChecks    ] [yn2OCgc] max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

先修改文件:

vim /etc/security/limits.conf

在文件中添加

* soft nofile 65536
* hard nofile 65536

在这里插入图片描述
然后重新登录用户:

su root

最后验证是否生效

ulimit  -H -n

在这里插入图片描述
现在再启动ES:

su elk-user
cd /usr/local/elk/elasticsearch-6.7.1/bin
./elasticsearch &

在这里插入图片描述
可以看到全是INFO只有一个WARN,经过搜索发现可以不用管。
再尝试访问本地的9200端口:

curl http://localhost:9200

在这里插入图片描述
输出正确,最后查看进程号,并且关闭进程:
查看进程号:

ps -ef | grep elastic

在这里插入图片描述
可以看到进程号是7266,其实在你启动ES的时候,输出的第一条信息就是进程的PID,如下,所以是对应的
在这里插入图片描述
关闭进程号,再次查看:也可以等外网访问完成了再关闭

kill -9 你的进程号(我的就是7266)
ps -ef | grep elastic

在这里插入图片描述
可以看到进程已被杀死,剩下的仍在运行的是当前命令
在这里插入图片描述
3) 验证ES外网是否可以访问

curl 10.64.26.86:9200
每个人的地址不同,后面就是你的服务器地址加端口号9200

在这里插入图片描述
再在windows上试试访问http://10.64.26.86:9200(前面的地址是自己的)
你会发现无访问此网站,为什么呢?我们之前使用tomcat的时候做了一件什么事?
开启防火墙,所以我们来试试

firewall-cmd --zone=public --add-port=9200/tcp --permanent
systemctl restart firewalld.service

再次访问http://10.64.26.86:9200/
在这里插入图片描述
成功啦

(4) Kibana部署:

① 解压文件到 /usr/local/elk

首先进入elk目录,再解压:

cd /usr/local/elk
tar -zxvf kibana-6.7.1-linux-x86_64.tar.gz -C /usr/local/elk

解压需要一小会儿
Kibana重要目录结构:

Bin包括kibana在内的启动kibana服务和kibana-plugin来安装插件的二进制脚本
Config包括kibana.yml的配置文件
Data由kibana和它的插件写入磁盘的数据文件的位置
Optimize源码编译后的文件,浏览器实际访问的资源
Plugins插件目录
Node_modules第三方依赖库

② 配置Kibana

使用vim打开kibana.yml

vim /usr/local/elk/kibana-6.7.1-linux-x86_64/config/kibana.yml

在这里插入图片描述

③ 运行Kibana

1) 启动Kibana

进入kibana的bin文件夹

cd /usr/local/elk/kibana-6.7.1-linux-x86_64/bin
ls

在这里插入图片描述
运行kibana

./kibana &

报了4个warning
在这里插入图片描述
在这里插入图片描述
一个error
在这里插入图片描述
warning不想改了,校园网断了,睡了一晚第二天再启动的时候error没了,增加了个warning,查询后发现无伤大雅…然后关了进程再启动一次,这个warning也消失了…

2) 查看kibana是否正确运行:
ps -ef | grep kibana
ps -ef | grep node
netstat -tunlp | grep 5601

在这里插入图片描述
第一条命令检查kibana是否启动,显然没查询到PID,第二条命令检查node是否运行,显然是在运行,由于kibana在node里运行,且使用5601端口,第三条命令说明Kibana已经在运行

3) 验证Kibana外网是否可访问

打开浏览器,输入地址:x.x.x.x:5601(x.x.x.x是你部署kibana的服务器地址),如果显示该页面,则表示成功访问。
显然会失败,为什么呢?(实验指南上没说开启防火墙的端口,坏。
因为又忘记打开防火墙的5601端口了

firewall-cmd --zone=public --add-port=5601/tcp --permanent
systemctl restart firewalld.service

设置后再次访问:
在这里插入图片描述
点击try our sample data,就有指导上的页面了
在这里插入图片描述

(5) Logstash部署:

① 切换至部署个人项目的服务器,解压文件到/usr/local/elk

cd /usr/local/elk
tar -zxvf logstash-6.7.1.tar.gz -C /usr/local/elk

在这里插入图片描述
看一下目录下有些啥

cd /usr/local/elk/logstash-6.7.1
ls

在这里插入图片描述
Logstash重要目录结构:

Bin脚本程序
Config存放配置文件,包括logstash.yml
Data存放数据

② 配置logstash管道

在config文件夹中创建logstash.conf文件
可以

cd config
ls
vim logstash.conf

然后输入
在这里插入图片描述
也可以在xftp里右键logstash-sample.conf用记事本编辑,然后复制里面的内容,接着右键空白处新建logstash.conf,然后粘贴。
当然最简单的是直接不建。

③ 启动logstash

先打开防火墙的5044端口:

firewall-cmd --zone=public --add-port=5044/tcp --permanent
systemctl restart firewalld.service
cd /usr/local/elk/logstash-6.7.1/bin

如果你新建了logstash.conf则使用下面一条命令:

./logstash -f ../config/logstash.conf &

如果没有新建logstash.conf,则使用:

./logstash -f ../config/logstash-sample.conf &

后面的参数是管道配置文件,改变的就是管道配置文件名,其实内容都是一样的
在这里插入图片描述
warning直接看不见,后面有一个WARN:Ignoring the ‘pipelines.yml’ file because modules or command line options are specified。
如果没有指定logstash.conf(就是上面命令后面跟的参数文件)作为管道配置文件,logstash会默认读取pipelines.yml作为管道配置文件,而我们没有编辑pipelines.yml,会出现以下错误。(摘自实验指南)
在这里插入图片描述

(6) Beats部署

在配置文件中设置输出到logstash,所以output下面的elasticsearch全部注释

① 解压文件到/usr/local/elk

cd /usr/local/elk
tar -zxvf filebeat-6.7.1-linux-x86_64.tar.gz -C /usr/local/elk
tar -zxvf packetbeat-6.7.1-linux-x86_64.tar.gz -C /usr/local/elk
tar -zxvf metricbeat-6.7.1-linux-x86_64.tar.gz -C /usr/local/elk

② 配置并部署filebeat

1) 配置filebeat

使用vim编辑filebeat.yml配置文件

cd /usr/local/elk/filebeat-6.7.1-linux-x86_64
vim filebeat.yml

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

注意:elasticsearch里的内容需要全部注释,默认是有配置的
在这里插入图片描述

解释如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2) 启动filebeat
cd /usr/local/elk/filebeat-6.7.1-linux-x86_64
./filebeat &

查看filebeat是否运行成功

ps -ef | grep beat

在这里插入图片描述

③ 配置并部署metricbeat

1) 配置metricbeat
cd /usr/local/elk/metricbeat-6.7.1-linux-x86_64
vim metricbeat.yml

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

2) 启动metricbeat

启动服务

./metricbeat &

查看是否启动成功

ps -ef | grep beat

在这里插入图片描述

④ 配置并部署packetbeat

1) 配置packetbeat
cd /usr/local/elk/packetbeat-6.7.1-linux-x86_64
vim vim packetbeat.yml

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

2) 启动packetbeat
./packetbeat &
ps -ef | grep beat

在这里插入图片描述

4. 使用Kibana

(1) 访问Kibana

对于我的本次实验,即访问http://10.64.26.86:5601
在这里插入图片描述

(2) 设置Index索引

进入Discover选项
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击Create index pattern
在这里插入图片描述

(3) 查看数据

在这之前你必须确保你要使用的beat的服务是开着的

ps -ef | grep beat

如果没有打开,可以到相应的文件夹下像之前那样打开服务

① 切换索引查看接收到的数据

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

② 查看日志

本次演示配置采集日志文件如下图所示:
在这里插入图片描述
我没有配置mysql。
在这里插入图片描述
下面这个没有配置:
在这里插入图片描述
在这里插入图片描述
点击kibana左侧菜单的Logs选项进入日志查询界面。
在搜索框中输入log.file.path:”想要查看的日志文件名”, 例如”/var/log/mysqld.log”。回车查询即可搜索到匹配的日志文件内容进行查看。
在这里插入图片描述
打开服务器/var/log/mysqld.log文件验证日志内容一致,即采集成功。
在这里插入图片描述

(4) 使用仪表盘

① 查看kibana提供的仪表盘加载是否成功

在这里插入图片描述

② 选择适合的仪表盘进行查看

1) 使用metricbeat仪表盘

在这里插入图片描述
后面根据指南进行就好。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值