2-3-Logstash 启动监控及集中管理

熊 0 阅读 日志平台

1. APIs 监控

通过监控 APIs 的使用 , 它们可以提供 Logstash 的指标。我们无需做任何的配置 , 在默认的情况下就已经工作。

  • Node Info API 这个 API 可以得到 Logstash node 的详细信息:

    curl -XGET 'localhost:9600/_node?pretty'
  • Plugins info API 通过这个 API 可以得到所有已经被安装的插件:

    curl -XGET 'localhost:9600/_node/plugins?pretty'
  • Node Stats API 通过这个 API 可以得到 Logstash node 的运行时状态:

    curl -XGET 'localhost:9600/_node/stats?pretty'
  • Hot Threads API 通过这个 API 可以得到 Logstash 当前的 hot threads:

    curl -XGET 'localhost:9600/_node/hot_threads?pretty'

2. Elastic 的监控功能

我们可以直接把数据发送到监控的 Elasticsearch 集群。我们可以使用 Kibana 对数据进行可视化。在这个方式下 , 我们必须借助 Metricbeat 来对所需要的指标进行采集。

20210629102859972

2.1 模块配置

启动logstash-xpack 模块

我们使用如下的命令来启动 logstash-xpack 模块:

./metricbeat modules enable logstash-xpack
$ ./metricbeat modules enable logstash-xpack
Enabled logstash-xpack

我们可以通过如下的命令来检查模块是否已经启动:

 ./metricbeat modules list
20210329140112350

从上面可以看出来 logstash-xpack 模块已经被成功地启动了。

我们接下来配置 modules.d/logstash-xpack.yml 文件。

# Module: logstash
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.x/metricbeat-module-logstash.html
 
- module: logstash
  xpack.enabled: true
  period: 10s
  hosts: ["localhost:9600"]
  #username: "user"
  #password: "secret"

我们需要根据你的 Logstash 的地址进行配置。

我们接下来启动 Metricbeat:

./metricbeat -e
20210329142714756

2.2 metric实现监控 Logstash

  1. 页面查看

    20210329143153480
    2021032914323160
  2. 我们可以退出设置模式。点击上面的 Exit setup mode:

    20210329143335692
  3. 我们可以看到有一个 Pipeline。点击 Pipeline:

    20210329143429204
    20210329143444770
  4. 我们在上面可以看到一些统计的数字显示。因为我们已经把所有的文档处理完了了之后 , 再启动的 Metricbeat , 所有我们看到的数据都是零。我们使用如下的命令来对 apache-daily-access.log 追加一个文档:

    $ cat << EOF >> apache.log 
    > 84.149.9.216 - - [17/May/2015:10:05:57 +0000] "GET /presentations/logstash-monitorama-2013/css/fonts/Roboto-Bold.ttf HTTP/1.1" 200 38720 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"
    > EOF
  5. 我们再重新进行查看

    20210329145121110

    我们再次点击 Logstash:

    20210329145158268

2.3 通过Logstash实现自带监控功能

  1. 创建logstash的keystore

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

    ./bin/logstash-keystore create

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

    20191230154744344

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

    ./bin/logstash-keystore add ES_HOST

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

    20191230155046920

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

    ./bin/logstash-keystore add ES_PWD
    20191230155258270

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

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

    xpack.monitoring.enabled: true
    xpack.monitoring.elasticsearch.username: logstash_system
    xpack.monitoring.elasticsearch.password: "${ES_PWD}"
    xpack.monitoring.elasticsearch.hosts: ["${ES_HOST}"]

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

  2. 开启logstash

  3. 打开Stack Monitoring UI

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

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

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

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

    20191231091805704

2.4 Logstash集中管理

这里说的集中管理, 更多的是通过kibana页面, 对logstash的管道配置文件的集中管理。默认情况下, 如果没有配置这个集中管理, logstash会在本地/etc/logstsh/conf.d目录下面读取管道配置文件。 开启集中管理之后, logstash会从elasticsearch中读取管道配置文件

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

    2019123109503590
    20191231094740244
  2. 最后点击 “Create role” 来创建我们的 role。

    20191231094855476
  3. 首先让我们来创建一个具有 logstash_user 的用户账号, 点击上面的 “Create user” 按钮来创建一个用户:

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

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

    xpack.management.enabled: true
    xpack.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}"]
  6. 在这里 , 我们启动 logstash 的管理 , 同时也把我们刚才创建的 logstash_user 的账号填入进来 , 并同时取了一个叫做 my_apache_logs 的 pipeline id。

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

    sudo ./bin/logstash

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

  7. 创建pipeline

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

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

    20191231104044784

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

    2019123110445491


参考链接

Logstash: 使用 Metricbeat 监控 Logstash_metricbeat logstash节点传输地址即为127.0.0.1:9600-CSDN博客

Logstash: 启动监控及集中管理_logstash监控-CSDN博客