资讯专栏INFORMATION COLUMN

Logstash 7.x 的安装与数据导入(阿里云Ubuntu)

nidaye / 742人阅读

摘要:接上篇的安装与界面预览阿里云系统环境操作系统阿里云系统内网,私有地址内内内外网,公有地址外外外版本版本版本安装与配置官方文档不同于和,需要多带带安装环境下载解压后续操作在内目录进行到下载测试数据集解压测试数据集

接上篇:Kibana 7.x 的安装与界面预览(阿里云Ubuntu)

系统环境

操作系统:Ubuntu 18.04 LTS(阿里云)

系统IP

</>复制代码

  1. # 内网,私有地址
  2. 172.内.内.内
  3. # 外网,公有地址
  4. 112.外.外.外

Elasticsearch 版本:7.2

Kibana 版本:7.2

Logstash 版本:7.2

安装与配置

官方文档:https://www.elastic.co/guide/...

Logstash 不同于 Elasticsearch 和 Kibana,需要多带带安装 Java 环境

</>复制代码

  1. ~$ sudo apt install default-jdk
  2. ~$ java -version
  3. openjdk version "11.0.3" 2019-04-16
  4. OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu218.04.1)
  5. OpenJDK 64-Bit Server VM (build 11.0.3+7-Ubuntu-1ubuntu218.04.1, mixed mode, sharing)

下载 logstash

</>复制代码

  1. wget https://artifacts.elastic.co/downloads/logstash/logstash-7.2.0.tar.gz

解压 logstash

</>复制代码

  1. tar -zxf logstash-7.2.0.tar.gz

后续操作在 logstash-7.2.0 内目录进行

</>复制代码

  1. cd logstash-7.2.0/

到 grouplens 下载 MovieLens 测试数据集

</>复制代码

  1. wget http://files.grouplens.org/datasets/movielens/ml-latest-small.zip

解压测试数据集

</>复制代码

  1. unzip ml-latest-small.zip

创建并编辑 logstash.conf 文件,添加如下内容(Ruby 语法)

</>复制代码

  1. input {
  2. file {
  3. path => "/home/walker/es/ml-latest-small/movies.csv"
  4. start_position => "beginning"
  5. sincedb_path => "/dev/null"
  6. }
  7. }
  8. filter {
  9. csv {
  10. separator => ","
  11. columns => ["id","content","genre"]
  12. }
  13. mutate {
  14. split => { "genre" => "|" }
  15. remove_field => ["path", "host","@timestamp","message"]
  16. }
  17. mutate {
  18. split => ["content", "("]
  19. add_field => { "title" => "%{[content][0]}"}
  20. add_field => { "year" => "%{[content][2]}"}
  21. }
  22. mutate {
  23. convert => {
  24. "year" => "integer"
  25. }
  26. strip => ["title"]
  27. remove_field => ["path", "host","@timestamp","message","content"]
  28. }
  29. }
  30. output {
  31. elasticsearch {
  32. hosts => "http://172.18.193.52:9200"
  33. index => "movies"
  34. document_id => "%{id}"
  35. }
  36. stdout {}
  37. }

导入数据,注意导入后不会自动退出,用 Ctrl-C 手动退出

</>复制代码

  1. # 个人路径有所不同
  2. ./bin/logstash -f /home/walker/es/ml-latest-small/logstash.conf

Management 查看数据(Index 相当于关系型数据库的 Table)

关系型数据库与 Elasticsearch 的抽象与类比

Dev tools 查看文档总数(即数据总条数)

</>复制代码

  1. # 查看数据总量
  2. GET /movies/_count
  3. # 控制台输出
  4. {
  5. "count" : 9743,
  6. "_shards" : {
  7. "total" : 1,
  8. "successful" : 1,
  9. "skipped" : 0,
  10. "failed" : 0
  11. }
  12. }

查看 id 为 1 的数据

</>复制代码

  1. # 查看 id 为 1 的数据
  2. GET /movies/_doc/1
  3. # 控制台输出
  4. {
  5. "_index" : "movies",
  6. "_type" : "_doc",
  7. "_id" : "1",
  8. "_version" : 1,
  9. "_seq_no" : 121,
  10. "_primary_term" : 1,
  11. "found" : true,
  12. "_source" : {
  13. "@version" : "1",
  14. "genre" : [
  15. "Adventure",
  16. "Animation",
  17. "Children",
  18. "Comedy",
  19. "Fantasy"
  20. ],
  21. "year" : 1995,
  22. "id" : "1",
  23. "title" : "Toy Story"
  24. }
  25. }

删除 movies 数据(Elasticsearch 的 Index 可对标关系型数据库的 Table)

</>复制代码

  1. # 删除命令
  2. DELETE /movies
  3. # 控制台输出
  4. {
  5. "acknowledged" : true
  6. }
walker 的目录结构

</>复制代码

  1. $ tree /home/walker/es/ -L 2
  2. /home/walker/es/
  3. ├── elasticsearch-7.2.0
  4. │   ├── bin
  5. │   ├── config
  6. │   ├── data
  7. │   ├── jdk
  8. │   ├── lib
  9. │   ├── LICENSE.txt
  10. │   ├── logs
  11. │   ├── modules
  12. │   ├── NOTICE.txt
  13. │   ├── plugins
  14. │   └── README.textile
  15. ├── elasticsearch-7.2.0-linux-x86_64.tar.gz
  16. ├── kibana-7.2.0-linux-x86_64
  17. │   ├── bin
  18. │   ├── built_assets
  19. │   ├── config
  20. │   ├── data
  21. │   ├── LICENSE.txt
  22. │   ├── node
  23. │   ├── node_modules
  24. │   ├── NOTICE.txt
  25. │   ├── optimize
  26. │   ├── package.json
  27. │   ├── plugins
  28. │   ├── README.txt
  29. │   ├── src
  30. │   ├── target
  31. │   ├── webpackShims
  32. │   └── x-pack
  33. ├── kibana-7.2.0-linux-x86_64.tar.gz
  34. ├── logstash-7.2.0
  35. │   ├── bin
  36. │   ├── config
  37. │   ├── CONTRIBUTORS
  38. │   ├── data
  39. │   ├── Gemfile
  40. │   ├── Gemfile.lock
  41. │   ├── lib
  42. │   ├── LICENSE.txt
  43. │   ├── logs
  44. │   ├── logstash-core
  45. │   ├── logstash-core-plugin-api
  46. │   ├── modules
  47. │   ├── NOTICE.TXT
  48. │   ├── tools
  49. │   ├── vendor
  50. │   └── x-pack
  51. ├── logstash-7.2.0.tar.gz
  52. ├── ml-latest-small
  53. │   ├── links.csv
  54. │   ├── logstash.conf
  55. │   ├── movies.csv
  56. │   ├── ratings.csv
  57. │   ├── README.txt
  58. │   └── tags.csv
  59. └── ml-latest-small.zip

</>复制代码

  1. 本文是阮一鸣《Elasticsearch核心技术与实战》的学习笔记。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75612.html

相关文章

  • [实战] 用数人,部署弹性 ELK 集群就五步

    摘要:摘要本篇文章介绍了如何通过数人云部署一套标准的日志收集系统。主机添加完成后,检查主机运行是否正常,如图第二步,发布实例我们将通过数人云将的镜像以模式部署到我们规划的主机和上。 摘要:本篇文章介绍了如何通过数人云部署一套标准的 ELK 日志收集系统。第一步,将主机组织成集群;第二步,发布 ElasticSearch 实例;第三步,发布 Kibana 实例;第四步,发布 Logstash ...

    姘存按 评论0 收藏0
  • 使用Docker快速部署ELK分析Nginx日志实践

    摘要:数据导入与校验容器运行之后,笔者需要验证是否启动成功,可以通过浏览器访问和的页面是否成功来判断。的整体操作流程比较简单,首先是收集各种日志并进行过滤,然后将过滤后的内容发送到服务中,最后用户通过的页面查看中的日志数据作者汤青松微信日期 一、背景 笔者所在项目组的项目由多个子项目所组成,每一个子项目都存在一定的日志,有时候想排查一些问题,需要到各个地方去查看,极为不方便,此前听说有ELK...

    el09xccxy 评论0 收藏0
  • 使用Docker快速部署ELK分析Nginx日志实践

    摘要:数据导入与校验容器运行之后,笔者需要验证是否启动成功,可以通过浏览器访问和的页面是否成功来判断。的整体操作流程比较简单,首先是收集各种日志并进行过滤,然后将过滤后的内容发送到服务中,最后用户通过的页面查看中的日志数据作者汤青松微信日期 一、背景 笔者所在项目组的项目由多个子项目所组成,每一个子项目都存在一定的日志,有时候想排查一些问题,需要到各个地方去查看,极为不方便,此前听说有ELK...

    chenatu 评论0 收藏0
  • 使用Docker快速部署ELK分析Nginx日志实践

    摘要:数据导入与校验容器运行之后,笔者需要验证是否启动成功,可以通过浏览器访问和的页面是否成功来判断。的整体操作流程比较简单,首先是收集各种日志并进行过滤,然后将过滤后的内容发送到服务中,最后用户通过的页面查看中的日志数据作者汤青松微信日期 一、背景 笔者所在项目组的项目由多个子项目所组成,每一个子项目都存在一定的日志,有时候想排查一些问题,需要到各个地方去查看,极为不方便,此前听说有ELK...

    xumenger 评论0 收藏0

发表评论

0条评论

nidaye

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<