前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Logstash: 启动监控及集中管理

Logstash: 启动监控及集中管理

作者头像
腾讯云大数据
修改2021-01-08 15:56:36
2.3K0
修改2021-01-08 15:56:36
举报

腾讯云 Elasticsearch Service】高可用,可伸缩,云端全托管。集成X-Pack高级特性,适用日志分析/企业搜索/BI分析等场景


在本篇文章里,我将详细介绍如果启动 Logstash 的监控及集中管理。

前提条件

如果你还没安装好自己的 Logstash,请参照文章 “如何安装Elastic栈中的Logstash”。同时安装我之前的文章 “Elasticsearch:设置Elastic账户安全” 为我们的 Elasticsearch 及 Kibana 设置安全密码。

如何监控 Logstash?

我们安装如下的步骤来实现监控 Logstash 的目的:

Step 1: 在Kibana中启动监控:

然后,我们可以看到如下的画面:

Step 2:配置 Logstash

如果我们在没有配置 Logstash 的情况下直接运行 Logstash,我们会发现如下的错误:

代码语言:javascript
复制
liuxg-2:logstash-7.5.0 liuxg$ ./bin/logstashJava HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.WARNING: An illegal reflective access operation has occurredWARNING: Illegal reflective access by com.headius.backport9.modules.Modules (file:/Users/liuxg/elastic5/logstash-7.5.0/logstash-core/lib/jars/jruby-complete-9.2.8.0.jar) to field java.io.FileDescriptor.fdWARNING: Please consider reporting this to the maintainers of com.headius.backport9.modules.ModulesWARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operationsWARNING: All illegal access operations will be denied in a future releaseThread.exclusive is deprecated, use Thread::MutexSending Logstash logs to /Users/liuxg/elastic5/logstash-7.5.0/logs which is now configured via log4j2.propertiesERROR: Pipelines YAML file is empty. Location: /Users/liuxg/elastic5/logstash-7.5.0/config/pipelines.ymlusage:  bin/logstash -f CONFIG_PATH [-t] [-r] [] [-w COUNT] [-l LOG]  bin/logstash --modules MODULE_NAME [-M "MODULE_NAME.var.PLUGIN_TYPE.PLUGIN_NAME.VARIABLE_NAME=VALUE"] [-t] [-w COUNT] [-l LOG]  bin/logstash -e CONFIG_STR [-t] [--log.level fatal|error|warn|info|debug|trace] [-w COUNT] [-l LOG]  bin/logstash -i SHELL [--log.level fatal|error|warn|info|debug|trace]  bin/logstash -V [--log.level fatal|error|warn|info|debug|trace]  bin/logstash --help[2019-12-30T15:32:49,899][ERROR][org.logstash.Logstash    ] java.lang.IllegalStateException: Logstash stopped processing because of an error: (SystemExit) exit

首先在 Logstash 的安装目录中找到 logstash 的配置文件 logstash.yml:

我们可以在 Logstash 的根目录下运行一下的命令:

代码语言:javascript
复制
./bin/logstash-keystore create

上面的命令将创建一个 Created Logstash keystore:

我们可以利用如下的命令来创建一些 key: ES_HOST 及 ES_PWD。

代码语言:javascript
复制
./bin/logstash-keystore add ES_HOST

当我们运行时,可以把我们的 Elasticsearch 的 host 地址粘贴过来:

比如针对我们的情况,我们粘贴的地址是 localhost:9200。按照同样的方法,我们可以创建另外一个 ES_PWD key:

代码语言:javascript
复制
./bin/logstash-keystore add ES_PWD

这些 key 可以在 logstash 的配置文件中所使用。这样我们可以不暴露我们的密码给别人看到。

我们打开 logstash.yml 文件,并同时使用如下的配置:

代码语言:javascript
复制
xpack.monitoring.enabled: truexpack.monitoring.elasticsearch.username: logstash_systemxpack.monitoring.elasticsearch.password: "${ES_PWD}"xpack.monitoring.elasticsearch.hosts: ["${ES_HOST}"]

这里,我们打开 monitoring 的开关,并同时使用我们在创建安全账户已经创建好的用户名 logstash_system:

现在我们下载一个我之前做个的一个练习:

代码语言:javascript
复制
git clone https://github.com/liu-xiao-guo/logstash_multi-pipeline

我们可以下载到我们指定的目录里。但是记得修改在 apache.conf 中的 path 路径,否则我们会错的。

apache.conf

代码语言:javascript
复制
input {  file {    path => "/Users/liuxg/data/multi-pipeline/apache.log"  	start_position => "beginning"    sincedb_path => "/dev/null"    # ignore_older => 100000    type => "apache"  }} filter {  	grok {    	match => {      		"message" => '%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response:int} (?:-|%{NUMBER:bytes:int}) %{QS:referrer} %{QS:agent}'    	}  	}}  output {	stdout {		codec => rubydebug	}   	elasticsearch {        hosts => ["${ES_HOST}"]        user => "elastic"        password => "${ES_PWD}"    	index => "apache_log"    	template => "/Users/liuxg/data/multi-pipeline/apache_template.json"    	template_name => "apache_elastic_example"    	template_overwrite => true  }	}

同时,我们需要添加 hosts, user 及 password 的定义。这是因为我们现在我们是需要有用户名及密码才可以连接到 Elasticsearch。这个和之前的练习是不一样的。同时我们可以创建自己的用户名及密码。我们可以参考 “Elasticsearch:用户安全设置” 来创建自己喜欢的账号。在这里,为了方便,我们使用elastic账号。在这里,我们是用 ${ES_HOST} 及 ${ES_PWD} 来代表我们的 Elasticsearch 地址及密码。这样的好处是我们不暴露我们的密码在配置文件中。

一旦上面的配置已经做好了,我们可以使用如下的命令来把我们的 apache log 文件上传到 Elasticsearch 之中:

代码语言:javascript
复制
sudo ./bin/logstash -f ~/data/multi-pipeline/apache.conf

Step3:打开 Stack Monitoring UI

 我们安装如下的步骤来查看 Logstash 的 monitoring:

我们会发现在 Logstash 运行的情况下,有一个 Logstash 的类别出现了。这在之前是没有的。我们点击 Nodes 1

我们看到一个 Logstash 的运行实例。它显示了目前 CPU 的使用情况和 Load Average 及 JVM head 的使用情况。点击上面的超链接:

我们可以看到更加详细的使用情况。我们也可以查看 pipeline 的状况:

Logstash 集中管理

首先我们来创建一个叫做 logstash_writer 的 role:

点击 “Create role” 来创建我们的 role。

首先让我们来创建一个具有 logstash_user 的用户账号:

点击上面的 “Create user” 按钮来创建一个用户:

点击 “Create user” 来创建一个叫做 logstash_user 的账号。它具有 logstash_admin 及 logstash_system 的权限。

为了启动集中管理,我们必须在 logstash.yml 文件里做相应的配置:

代码语言:javascript
复制
xpack.management.enabled: truexpack.management.pipeline.id: ["main", "apache_logs", "my_apache_logs"]xpack.management.elasticsearch.username: "logstash_user"xpack.management.elasticsearch.password: "123456"xpack.management.elasticsearch.hosts: ["${ES_HOST}"]

我们可以在链接 https://www.elastic.co/guide/en/logstash/current/logstash-centralized-pipeline-management.html 找到更多的描述。在这里,我们启动 logstash 的管理,同时也把我们刚才创建的 logstash_user 的账号填入进来,并同时取了一个叫做 my_apache_logs 的 pipeline id。

一旦启动了 Logstash 的集中管理,我们就可以直接启动 Logstash,而不用跟任何的参数:

代码语言:javascript
复制
sudo ./bin/logstash

这样我们的 Logstash已经被成功运行起来了。我们接下来可以在Kibana中创建自己的pipeline。

点击上面的 “Create pipeline” 按钮,我们可以看到如下的画面:

接下来我们点击 “Create and Deploy” 按钮:

这样我们的 my_apache_logs 就被创建好了,而且已经被成功执行了。我们可以在 Kibana 中创建一个叫 apache_log 的 index pattern,然后打开 Discover,你可以看到刚刚被 Logstash 导入的数据:

好了到此,我们关于如何启动 Logstash 的监控及集中管理讲完了。如果想了解更多关于 Logstash 的知识,可以参阅 链接


最新活动

包含文章发布时段最新活动,前往ES产品介绍页,可查找ES当前活动统一入口

Elasticsearch Service自建迁移特惠政策>>

Elasticsearch Service 新用户特惠狂欢,最低4折首购优惠 >>

Elasticsearch Service 企业首购特惠,助力企业复工复产>>

关注“腾讯云大数据”公众号,技术交流、最新活动、服务专享一站Get~

本文系转载,前往查看

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

本文系转载前往查看

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【腾讯云 Elasticsearch Service】高可用,可伸缩,云端全托管。集成X-Pack高级特性,适用日志分析/企业搜索/BI分析等场景
  • 前提条件
  • 如何监控 Logstash?
    • Step 1: 在Kibana中启动监控:
      • Step 2:配置 Logstash
        • Step3:打开 Stack Monitoring UI
        • Logstash 集中管理
        • 最新活动
        相关产品与服务
        Elasticsearch Service
        腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档