2-3-Logstash 启动监控及集中管理
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 来对所需要的指标进行采集。

2.1 模块配置
启动logstash-xpack 模块
我们使用如下的命令来启动 logstash-xpack 模块:
./metricbeat modules enable logstash-xpack$ ./metricbeat modules enable logstash-xpack
Enabled logstash-xpack我们可以通过如下的命令来检查模块是否已经启动:
./metricbeat modules list
从上面可以看出来 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
2.2 metric实现监控 Logstash
页面查看


我们可以退出设置模式。点击上面的
Exit setup mode:
我们可以看到有一个
Pipeline。点击Pipeline:

我们在上面可以看到一些统计的数字显示。因为我们已经把所有的文档处理完了了之后 , 再启动的
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我们再重新进行查看

我们再次点击
Logstash:
2.3 通过Logstash实现自带监控功能
创建
logstash的keystore我们可以在
Logstash的根目录下运行一下的命令:./bin/logstash-keystore create上面的命令将创建一个
Created Logstash keystore:
利用如下的命令来创建一些
key:ES_HOST及ES_PWD。./bin/logstash-keystore add ES_HOST当我们运行时 , 可以把我们的
Elasticsearch的host地址粘贴过来:
比如针对我们的情况 , 我们粘贴的地址是
localhost:9200。按照同样的方法 , 我们可以创建另外一个ES_PWD key:./bin/logstash-keystore add ES_PWD
这些
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:开启
logstash打开
Stack Monitoring UI我们安装如下的步骤来查看
Logstash的monitoring:
我们会发现在
Logstash运行的情况下 , 有一个Logstash的类别出现了。这在之前是没有的。我们点击Nodes 1:
我们看到一个
Logstash的运行实例。它显示了目前CPU的使用情况和Load Average及JVM head的使用情况。点击上面的超链接:
我们可以看到更加详细的使用情况。我们也可以查看
pipeline的状况:
2.4 Logstash集中管理
这里说的集中管理, 更多的是通过kibana页面, 对logstash的管道配置文件的集中管理。默认情况下, 如果没有配置这个集中管理, logstash会在本地/etc/logstsh/conf.d目录下面读取管道配置文件。 开启集中管理之后, logstash会从elasticsearch中读取管道配置文件
首先我们来创建一个叫做
logstash_writer的role:

最后点击 “
Create role” 来创建我们的role。
首先让我们来创建一个具有
logstash_user的用户账号, 点击上面的 “Create user” 按钮来创建一个用户:
点击 “
Create user” 来创建一个叫做logstash_user的账号。它具有logstash_admin及logstash_system的权限。
为了启动集中管理 , 我们必须在
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}"]在这里 , 我们启动
logstash的管理 , 同时也把我们刚才创建的logstash_user的账号填入进来 , 并同时取了一个叫做my_apache_logs的pipeline id。一旦启动了
Logstash的集中管理,我们就可以直接启动Logstash,而不用跟任何的参数:sudo ./bin/logstash这样我们的
Logstash已经被成功运行起来了。我们接下来可以在Kibana中创建自己的pipeline。创建
pipeline
点击上面的 “
Create pipeline” 按钮,我们可以看到如下的画面:
接下来我们点击 “
Create and Deploy” 按钮:
这样我们的
my_apache_logs就被创建好了,而且已经被成功执行了。我们可以在Kibana中创建一个叫apache_log的index pattern,然后打开Discover,你可以看到刚刚被Logstash导入的数据:
参考链接
Logstash: 使用 Metricbeat 监控 Logstash_metricbeat logstash节点传输地址即为127.0.0.1:9600-CSDN博客
Logstash: 启动监控及集中管理_logstash监控-CSDN博客