Elastic Stack(ELK)简介与安装部署流程

1、ELK介绍

ELK是三个开源软件的缩写,分别为:Elasticsearch 、 Logstash以及Kibana , 它们都是开源软件。不过现在还新增了一个Beats,它是一个轻量级的日志收集处理工具(Agent),Beats占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具,目前由于原本的ELK Stack成员中加入了 Beats 工具所以已改名为Elastic Stack。

Elastic Stack包含:

  • Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。详细可参考Elasticsearch权威指南
  • Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
  • Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
  • Beats在这里是一个轻量级日志采集器,其实Beats家族有6个成员,早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。相比 Logstash,Beats所占系统的CPU和内存几乎可以忽略不计。

目前Beats包含六种工具:

  • Packetbeat: 网络数据(收集网络流量数据)
  • Metricbeat: 指标 (收集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
  • Filebeat: 日志文件(收集文件数据)
  • Winlogbeat: windows事件日志(收集 Windows 事件日志数据)
  • Auditbeat:审计数据 (收集审计日志)
  • Heartbeat:运行时间监控 (收集系统运行时的数据)

ELK官网:

https://www.elastic.co/cn/

中文指南:

https://www.gitbook.com/book/chenryn/elk-stack-guide-cn/details

官方的安装文档:

 https://www.elastic.co/guide/en/elastic-stack/current/installing-elastic-stack.html

ELK架构图:

 

2、安装Elasticsearch

准备工作:

  • 服务器一台:192.168.202.175
  • Elasticsearch压缩包
  • jdk1.8

1).下载Elasticsearch

在elk的官网上下载最新的Elasticsearch压缩包,并放到服务器的/usr/elk/目录下进行解压。

Elasticsearch下载地址:

https://www.elastic.co/cn/downloads/elasticsearch

安装命令如下:

cd /usr/elk/

tar -vxf elasticsearch-6.5.4.tar.gz      #解压

2).下载jdk1.8

Elasticsearch只能在jdk1.8的环境下运行,由于服务器中其他应用使用的是jdk1.7,在此需要先下载jdk1.8压缩包解压到jdk1.7的同级目录下。

jdk1.8下载地址:

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

安装命令如下:

cd /usr/java

tar -vxf jdk-8u191-linux-x64.tar.gz      #解压

3).配置Elasticsearch使用jdk1.8启动

修改elasticsearch的启动脚本(elasticsearch_HOME/bin/elasticsearch),命令如下:

cd /usr/elk/elasticsearch-6.5.3/bin/

vim elasticsearch      #编辑启动文件

在该该文件内容最前面添加以下代码:

export JAVA_HOME=/home/yutao/jdk1.8.0_121/
export PATH=$JAVA_HOME/bin:$PATH

if [ -x "$JAVA_HOME/bin/java" ]; then
    JAVA="/home/yutao/jdk1.8.0_121/bin/java"
else
    JAVA=`which java`
fi

4).配置Elasticsearch监听ip和端口号

Elasticsearch默认地址是localhost:9200,需在/usr/elk/elasticsearch-6.5.3/config/elasticsearch.yml配置文件下,增加如下内容:

network.host: 192.168.202.175      #改配置已存在,放开注释修改原内容

http.port: 9200      #改配置已存在,放开注释即可

5).启动Elasticsearch

Elasticsearch由于可以接收执行客户端脚本,所以无法在root用户下启动,所以首先需要创建用户,命令如下:

useradd elastic      #新建elastic用户

passwd elastic      #给elastic设置密码

再将Elasticsearch文件夹相关权限授权给elastic用户,命令如下:

cd /usr/elk/

chown elastic elasticsearch-6.2.3 -R      #给elastic用户授权

切换到elastic用户下,启动elasticsearch,命令如下:

su elastic #切换到用户

cd /usr/elk/elasticsearch-6.2.3/bin      #切换到elasticsearch的bin目录下

./elasticsearch -d      #后台启动elasticsearch 

Elasticsearch启动成功后,可通过浏览器访问如下地址查看是否启动成功:

http://192.168.202.175:9200

如果启动成功,则会显示:

6).elasticsearch集群

以上步骤为elasticsearch单机版搭建,集群版即在不同的服务器上同时安装elasticsearch,或者在一个服务器上安装多个elasticsearch,然后修改如下配置文件即可:

vim /usr/elk/elasticsearch-6.5.3/config/elasticsearch.yml

添加如下配置:

#集群名称(必须一样)
cluster.name: carryless-es
#节点名称(必须不一样)
node.name: node-0
#本机的IP地址
network.host: 192.168.31.157
#服务的端口号(在本地配置多个时,请注意修改为不一样的端口)
http.port: 9200
#服务发现端口(在本地配置多个时,请注意修改为不一样的端口)
transport.tcp.port: 9300
#集群发现IP集合
discovery.zen.ping.unicast.hosts: ["192.168.31.58:9300", "192.168.31.58:9301","192.168.31.58:9302"]

其他节点上对应的配置文件按上面配置,将节点名称、IP地址、端口号对应修改,然后将服务依次启动即可,启动完成后可,通过访问如下地址查看集群情况:

http://192.168.77.128:9200/_cluster/health?pretty

7).排错记录

  • elasticsearch启动失败,出现如下提示:

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)

解决:原因为内存不足,需在需在/usr/elk/elasticsearch-6.5.3/config/jvm.options文件下修改jvm空间分配:

-Xms1g  
-Xmx1g
修改为
-Xms512m
-Xmx512m

  • elasticsearch启动失败,出现如下提示:

ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]

解决:切换到root用户,修改配置limits.conf。

vim /etc/security/limits.conf

添加如下内容:

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

  • elasticsearch启动失败,出现如下提示:

 

max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

 

解决:切换到root用户,修改配置sysctl.conf。

vim /etc/sysctl.conf 

添加如下内容:

vm.max_map_count=655360

并执行命令:

sysctl -p

3、安装Logstash

准备工作:

  • 服务器一台:192.168.202.175
  • Logstash压缩包

1).下载Logstash

在elk的官网上下载最新的Logstash压缩包,并放到服务器的/usr/elk/目录下进行解压。

Logstash下载地址:

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

安装命令如下:

cd /usr/elk/

tar -vxf logstash-6.5.3.tar.gz

2).配置Logstash

  • 修改Logstash服务监听地址:

Logstash默认地址是localhost:9600,需修改如下配置文件:

vim /usr/elk/logstash-6.5.3/config/logstash.yml      

增加如下内容

http.host: "192.168.202.175"      #改配置已存在,放开注释修改原内容

http.port: 9600-9700      #改配置已存在,放开注释即可

  • 修改Logstash服务指向Elasticsearch的地址

Logstash默认指向Elasticsearch的地址是localhost:9600,需修改如下配置文件:

vim /usr/elk/logstash-6.5.3/config/logstash-sample.conf 

修改如下配置:

output

    elasticsearch

        hosts => ["http://192.168.202.175:9200"]

3).启动Logstash

执行如下命令,启动Logstash:

cd /usr/elk/logstash-6.5.3/bin/

nohup ./logstash -f ../config/logstash-sample.conf > myout.file 2>&1 &

出现如下日志说明启动成功:

浏览器访问http://192.168.202.175:9600,显示如下内容:

4、安装Kibana

准备工作:

 

  • 服务器一台:192.168.202.175
  • Kibana压缩包

1).下载Kibana

在elk的官网上下载最新的Kibana压缩包,并放到服务器的/usr/elk/目录下进行解压。

 

Kibana下载地址:

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

安装命令如下:

cd /usr/elk/

tar -vxf kibana-6.5.3-linux-x86_64.tar.gz

2).配置Kibana

  • 修改Kibana服务监听和kibana.yml地址:

vim /usr/elk/kibana-6.5.3-linux-x86_64/config/kibana.yml

增加如下内容:

# 配置kibana的端口
server.port: 5601
# 配置监听ip
server.host: 192.168.202.175
# 配置es服务器的ip,如果是集群则配置该集群中主节点的ip
elasticsearch.url: "http://192.168.202.175:9200"
# 配置kibana的日志文件路径,不然默认是messages里记录日志
logging.dest: /var/log/kibana.log

  • 创建Kibana日志文件

 

touch /var/log/kibana.log; chmod 777 /var/log/kibana.log

3).启动Kibana

执行如下命令,启动Kibana:

cd /usr/elk/kibana-6.5.3-linux-x86_64/bin

nohup ./filebeat -e -c filebeat.yml > myout.file 2>&1 &

 

启动成功后访问http://192.168.202.175:5601,显示如下内容:

5、安装Filebeat

准备工作:

  • 服务器若干,该服务轻上部署tomcat应用,如:192.168.202.74、192.168.202.75
  • Filebeat压缩包

1).下载Filebeat

在elk的官网上下载最新的Filebeat压缩包,并放到服务器的/usr/local/目录下进行解压。

Filebeat下载地址:

https://www.elastic.co/downloads/beats/filebeat

安装命令如下:

cd /usr/local/

tar -vxf filebeat-6.5.3-linux-x86_64.tar.gz

2).配置Filebeat

在filebeat的filebeat.yml文件需要修改配置:

vim /usr/local/filebeat-6.5.3-linux-x86_64/filebeat.yml

修改如下配置:

filebeat.inputs:

- type: log      #type可配置多个

  enabled: true      #此配置修改成true,才可使日志采集器生效

  paths:

      - /usr/deployWarDir/nuocityRpc/logs/**/*.log      #采集地址可配置多个,指向实际应用的日志输出路径

setup.kibana:

  host: "192.168.202.175:5601"

output.elasticsearch:

  hosts: ["192.168.202.175:9200"]

3).启动Filebeat

执行如下命令,启动Filebeat:

cd /usr/local/filebeat-6.5.3-linux-x86_64/

nohup ./filebeat -e -c filebeat.yml > myout.file 2>&1 &

启动成功后,可输入以下命令验证是否启动成功:

 

ps -ef | grep filebeat

显示以下内容说明启动成功:

6、Filebeat采集日志发送给Elasticsearch,结合Kibana界面化查看

 

7、Filebeat采集日志经由Logstash发送给Elasticsearch,结合Kibana界面化查看

 

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值