Logstash:使用 Metricbeat 监控 Logstash
在之前的文章 “Logstash: 启动监控及集中管理” ,我详细地描述了如果使用 Elasticsearch 自监控 Logstash。在今天的练习中,我们演习以前的文章:Elastic:监控 Elasticsearch 及 KibanaElastic:监控 Beats 及 APM Server我将使用 Metricbeat 来对 Logstash 进行监控。我将使用 “Logstash: 启动
在之前的文章 “Logstash: 启动监控及集中管理” ,我详细地描述了如果使用 Elasticsearch 自监控 Logstash。在今天的练习中,我们演习以前的文章:
我将使用 Metricbeat 来对 Logstash 进行监控。我将使用 “Logstash: 启动监控及集中管理” 文章中的例子来进行展示。在进行 Logstash 的监视之前,我们必须按照之前文章 “Elastic:监控 Elasticsearch 及 Kibana” 来启动对 Elasticsearch 的监控。
如何监控 Logstash?
关于监控 Logstash,我们有两种方法:
使用 Logstash 提供的监控 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'
使用 Elastic 的监控功能
使用这种方法,我们就像之前文章介绍监控 Beats, Elasticsearch 及 Kibana 一样,我们可以直接把数据发送到监控的 Elasticsearch 集群。我们可以使用 Kibana 对数据进行可视化。在这个方式下,我们必须借助 Metricbeat 来对所需要的指标进行采集。
在今天的文章中,我主要来介绍如何使用 Elastic 的监控功能来对 Logstash 进行监控。
启动 Logstash
我们首先按照 “Logstash: 启动监控及集中管理” 文章中介绍的例子来启动 Logstash:
apache.conf
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 => ["localhost:9200"]
user => "elastic"
password => "password"
index => "apache_log"
template => "/Users/liuxg/data/multi-pipeline/apache_template.json"
template_name => "apache_elastic_example"
template_overwrite => true
}
}
我们使用如下的命令来启动 Logstash:
sudo ./bin/logstash -f apache.conf
启动 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.yml 文件。
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
监控 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:
更多推荐
所有评论(0)