首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mac系统安装ELK环境踩坑记录

Mac系统安装ELK环境踩坑记录

原创
作者头像
Mandy的名字被占用了
发布2022-02-24 10:53:47
8670
发布2022-02-24 10:53:47
举报

说明

本文将演示如何在Mac系统中,安装ELK环境(elasticsearch、logstash、kibana)。在Mac上安装ELK非常简单,直接使用brew命令安装即可。同时网络上存在非常多的文章。但是99%的文章,都没有提出其中遇到的问题或者没提及到需要注意的事项。本文将重点介绍这些细节。

同时希望你在阅读本文的时候,耐心阅读。即使不能帮助你遇到的问题,但是可以大致给你一个解决思路。

ELK逻辑图

Snipaste_2022-02-23_22-57-54
Snipaste_2022-02-23_22-57-54

提前准备

由于brew默认使用的源非常慢,推荐使用该仓库的配置。Gitee地址

开始安装

假设你已经做好了所有的准备工作。本文就开始从安装环境开始讲起了。

版本检测

在使用ELK时,一定要注意版本的一致性,否则安装好之后会出现服务之间版本不兼容问题。如果你不是很清楚的情况,你可以使用下面的链接,来确保版本是否一致。强烈推荐版本号保持一致。例如你的elasticsearch安装的版本是7.10.2,推荐你在安装logstash时也选择一样的版本号7.10.2官网版本号总结。在本文的演示中,我安装的版本是7.10.2

Snipaste_2022-02-23_22-20-31
Snipaste_2022-02-23_22-20-31

brew版本检测

我们检测brew源的elasticsearch版本号,安装的其他服务就以该服务为基准,选择对应的版本号。通过使用brew info elasticsearch命令,我们可以查看到elasticsearch的版本号,以及对应的依赖(下面✅的部分就是对应的依赖包),如果你查询到是❌ ,你使用brew install gradle@6命令安装即可,其他的依赖包同样按照此方式安装即可。

 olddog@192  ~brew info elasticsearch
elasticsearch: stable 7.10.2 (bottled)
Distributed search & analytics engine
https://www.elastic.co/products/elasticsearch
Deprecated because it is switching to an incompatible license. Check out `opensearch` instead!
/usr/local/Cellar/elasticsearch/7.10.2 (156 files, 113.5MB) *
  Poured from bottle on 2022-02-20 at 15:46:47
From: https://mirrors.ustc.edu.cn/homebrew-core.git/Formula/elasticsearch.rb
License: Apache-2.0
==> Dependencies
Build: gradle@6 ✔
Required: openjdk ✔
==> Caveats
Data:    /usr/local/var/lib/elasticsearch/
Logs:    /usr/local/var/log/elasticsearch/elasticsearch_kert.log
Plugins: /usr/local/var/elasticsearch/plugins/
Config:  /usr/local/etc/elasticsearch/

To have launchd start elasticsearch now and restart at login:
  brew services start elasticsearch
Or, if you don't want/need a background service you can just run:
  elasticsearch
==> Analytics
install: 2,484 (30 days), 6,719 (90 days), 34,351 (365 days)
install-on-request: 2,477 (30 days), 6,702 (90 days), 34,273 (365 days)
build-error: 344 (30 days)

安装elasticsearch

确认好安装的版本是7.10.2,那我们就可以开始安装。

// 安装elasticsearch
brew install elasticsearch

// 启动服务
brew services start elasticsearch

安装好之后,相关的数据目录以及配置目录都会显示出来,大致如下:

Data:    /usr/local/var/lib/elasticsearch/
Logs:    /usr/local/var/log/elasticsearch/elasticsearch_kert.log
Plugins: /usr/local/var/elasticsearch/plugins/
Config:  /usr/local/etc/elasticsearch/

安装好之后,我们本地服务就启动正常了。直接访问http://127.0.0.1:9200/,出现下面的信息,表示我们的elasticsearch,完全安装成功。

Snipaste_2022-02-23_22-29-12
Snipaste_2022-02-23_22-29-12

同时,我们也可以使用一个开源软件查看。这里就不讲怎么使用了,软件地址。在安装好之后,我们先执行一下这个命令,向elasticsearch中些一条数据。

url -H "Content-Type: application/json" -XPOST 'http://127.0.0.1:9200/system-syslog-20181129/system-syslog' -d '{"first_name":"yuan","last_name":"mu","age":88,"about":"I love to wo qu","interests":["sport","huangya"]}'
》 {"_index":"system-syslog-20181129","_type":"system-syslog","_id":"sF0mHX8BBJXzIcLuz4gM","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}
Snipaste_2022-02-23_23-21-32
Snipaste_2022-02-23_23-21-32

kibanna版本检测

下面的信息和elasticsearch其实都一样的,对 ✅ 和 ❌ 的对应的依赖包,如果是提示❌ 使用brew安装就可以了。下面的命令,我们可以看到版本号和elasticsearch的版本号是一致的,都是7.10.2,因此我们直接安装就可以了。

olddog@192  brew info kibana
kibana: stable 7.10.2 (bottled), HEAD
Analytics and search dashboard for Elasticsearch
https://www.elastic.co/products/kibana
Deprecated because it is switching to an incompatible license!
/usr/local/Cellar/kibana/7.10.2 (29,154 files, 300.8MB) *
  Poured from bottle on 2022-02-20 at 18:22:35
From: https://mirrors.ustc.edu.cn/homebrew-core.git/Formula/kibana.rb
License: Apache-2.0
==> Dependencies
Build: python@3.9 ✔, yarn ✔
Required: node@10 ✔
==> Options
--HEAD

安装kibanna

// 安装服务
brew install kibana

// 启动服务
brew services start kibana

安装好之后,相关的数据目录以及配置目录都会显示出来,对应的目录都在/usr/local/Cellar/kibana/7.10.2下面。可以通过http://127.0.0.1:5601/app/home,看到下面的预览图,说明我们已经安装成功。

Snipaste_2022-02-23_22-42-54
Snipaste_2022-02-23_22-42-54

logstash版本检测

同样是用上面提到的命令检测一下服务版本。

olddog@192   brew info logstash
logstash: stable 7.13.1 (bottled), HEAD
Tool for managing events and logs
https://www.elastic.co/products/logstash
Not installed
From: https://mirrors.ustc.edu.cn/homebrew-core.git/Formula/logstash.rb
License: Apache-2.0
==> Dependencies
Required: openjdk@11 ✔
==> Options

我们可以看到对应的版本是7.13.1,并且官方文档也提到elasticsearch的版本7.10.2是支持logstash对应的版本号6.8.x-7.17.x

实际情况在使用brew安装后,是没法使用的。一直提示版本不兼容,无法建立连接。大致如下的错误信息:

Elasticsearch setup did not complete normally, please review previously logged errors
Unable to connect to Elasticsearch at http://localhost:9200

因此该服务,我们就推荐使用源码安装。其实,上面的两个服务也可以通过源码安装,只不过麻烦一点。

下载源码

默认官网打开,是显示最新的版本,你可以自己选择对应的版本号。注意下图画框的部分。

Snipaste_2022-02-23_22-46-20
Snipaste_2022-02-23_22-46-20
Snipaste_2022-02-23_22-58-32
Snipaste_2022-02-23_22-58-32
Snipaste_2022-02-23_22-59-24
Snipaste_2022-02-23_22-59-24

这里得到的是一个.sha512的文件,是一种加密文件,但不是源码安装文件。可以直接使用该链接下载https://artifacts.elastic.co/downloads/logstash/logstash-oss-7.10.2-darwin-x86_64.tar.gz,仔细的你会发现,7-10-2其实就是版本号,如果你安装的不是该版本,直接替换一下就好了。

// 解压
tar -zxvf logstash-7.10.2-darwin-x86_64.tar.gz

进入可执行目录,下面的文件就是可执行文件
cd /Users/xx/Downloads/logstash-7.10.2/bin && ll
-rw-r--r--   1 kert  staff   221  1 13  2021 benchmark.bat
-rwxr-xr-x   1 kert  staff   152  1 13  2021 benchmark.sh
-rwxr-xr-x   1 kert  staff   377  1 13  2021 cpdump
-rwxr-xr-x   1 kert  staff  1025  1 13  2021 dependencies-report
-rw-r--r--   1 kert  staff   225  1 13  2021 ingest-convert.bat
-rwxr-xr-x   1 kert  staff   155  1 13  2021 ingest-convert.sh
-rwxr-xr-x   1 kert  staff  2287  1 13  2021 logstash
-rwxr-xr-x   1 kert  staff   357  1 13  2021 logstash-keystore
-rw-r--r--   1 kert  staff   257  1 13  2021 logstash-keystore.bat
-rwxr-xr-x   1 kert  staff   358  1 13  2021 logstash-plugin
-rw-r--r--   1 kert  staff   260  1 13  2021 logstash-plugin.bat
-rw-r--r--   1 kert  staff  2442  1 13  2021 logstash.bat
-rwxr-xr-x   1 kert  staff  5876  1 13  2021 logstash.lib.sh
-rwxr-xr-x   1 kert  staff  1124  1 13  2021 pqcheck
-rw-r--r--   1 kert  staff   475  1 13  2021 pqcheck.bat
-rwxr-xr-x   1 kert  staff  1125  1 13  2021 pqrepair
-rw-r--r--   1 kert  staff   476  1 13  2021 pqrepair.bat
-rwxr-xr-x   1 kert  staff   623  1 13  2021 ruby
-rw-r--r--   1 kert  staff  1768  1 13  2021 setup.bat

任意创建一个.conf文件, 我这里名字就叫log.conf。我这里以Laravel日志为例,向log.conf写入如下的内容:

input {
   file {
      path => ["你laravel日志目录/laravel.log"]
    }
  }
output {
   elasticsearch {
      hosts => ["http://127.0.0.1:9200"]
      index => "lumen-log"
   }
}

然后执行logstash log.conf就可以了,正常的情况下会看到这样的内容:

[2022-02-22T00:32:17,071][INFO ][logstash.javapipeline    ][main] Pipeline started {"pipeline.id"=>"main"}
[2022-02-22T00:32:17,151][INFO ][filewatch.observingtail  ][main][7dda28e49683b585e296fde30e6578464882b8bfd26fca79cbad0d53581f074c] START, creating Discoverer, Watch with file and sincedb collections
[2022-02-22T00:32:17,165][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2022-02-22T00:32:17,582][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

执行完之后,过一会elasticsearch,里面应该就有数据了。我们依旧使用ElasticHD进行查看。

Snipaste_2022-02-23_23-15-00
Snipaste_2022-02-23_23-15-00

总结

上面的步骤就演示完,如何安装ELK。其实都很简单。最重要的是要注意版本号一致。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 说明
  • ELK逻辑图
  • 提前准备
  • 开始安装
    • 版本检测
      • brew版本检测
        • 安装elasticsearch
          • kibanna版本检测
            • 安装kibanna
              • logstash版本检测
                • 下载源码
                • 总结
                相关产品与服务
                Elasticsearch Service
                腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档