【监控】Logstash

[TOC]

概述

logstash的监控比较简单,我的logstash都跑在同一台主机上。

流程图

image.png
流程简述

每个logstash启动的时候需要指定端口,logstash_exporter启动的时候监听该端口并暴露新的端口给prometheus,prometheus在配置文件中为指定端口(也就是对应到的logstash指定别名以方便区分),远程写入influxDB的时候正则过滤仅仅需要的指标进行存储。
注意: 该logstash_exporter使用的时候只能为一个logstash进程转发指标,所以每一个logstash进程需要单独起一个logstash_exporter与之对应。【2019年1月】

详细步骤

启动logstash指定端口

启动logstash的时候,命令(--http.port=9602)指定http端口。这里说明下为什么要指定端口,因为logstash启动的时候是可以随机使用端口的,但是每一次重启之后端口会发生变化,为了使logstash能有效的被区分、起别名,使用指定端口是最好的选择。

比如supervisor的启动方式,其中一个配置文件如下:

[program:logstash-mylogstash]
command = /opt/logstash-6.2.4/bin/logstash -f /opt/logstash-6.2.4/config/mylogstash.conf --path.data=/data/logstash/mylogstash --http.port=9602
user = root
autostart = true
autorestart = true
startsecs = 3
directory = /opt/logstash-6.2.4
stdout_logfile = /data/logs/logstash/mylogstash
启动logstash_exporter监听logstash指定的端口并暴露另一个端口给prometheus

logstash_exporter的github地址
下载并启动,启动的多了就像下面这样。。。

root     11780  1095  0 Mar12 ?        00:17:03 /data/logstash_exporter/logstash_exporter --web.listen-address=:9408 --logstash.endpoint=http://127.0.0.1:9608
root     11783  1095  0 Mar12 ?        00:16:59 /data/logstash_exporter/logstash_exporter --web.listen-address=:9411 --logstash.endpoint=http://127.0.0.1:9611
root     11784  1095  0 Mar12 ?        00:16:56 /data/logstash_exporter/logstash_exporter --web.listen-address=:9406 --logstash.endpoint=http://127.0.0.1:9606
root     11785  1095  0 Mar12 ?        00:17:33 /data/logstash_exporter/logstash_exporter --web.listen-address=:9401 --logstash.endpoint=http://127.0.0.1:9601
root     11786  1095  0 Mar12 ?        00:17:20 /data/logstash_exporter/logstash_exporter --web.listen-address=:9400 --logstash.endpoint=http://127.0.0.1:9600
root     11787  1095  0 Mar12 ?        00:17:20 /data/logstash_exporter/logstash_exporter --web.listen-address=:9404 --logstash.endpoint=http://127.0.0.1:9604
root     11789  1095  0 Mar12 ?        00:18:22 /data/logstash_exporter/logstash_exporter --web.listen-address=:9405 --logstash.endpoint=http://127.0.0.1:9605
root     11875  1095  0 Mar12 ?        00:17:05 /data/logstash_exporter/logstash_exporter --web.listen-address=:9409 --logstash.endpoint=http://127.0.0.1:9609
root     11882  1095  0 Mar12 ?        00:17:06 /data/logstash_exporter/logstash_exporter --web.listen-address=:9410 --logstash.endpoint=http://127.0.0.1:9610
root     11889  1095  0 Mar12 ?        00:16:58 /data/logstash_exporter/logstash_exporter --web.listen-address=:9403 --logstash.endpoint=http://127.0.0.1:9603
root     11892  1095  0 Mar12 ?        00:17:11 /data/logstash_exporter/logstash_exporter --web.listen-address=:9402 --logstash.endpoint=http://127.0.0.1:9602
root     11895  1095  0 Mar12 ?        00:16:57 /data/logstash_exporter/logstash_exporter --web.listen-address=:9407 --logstash.endpoint=http://127.0.0.1:9607
root     15529  1095  0 Mar29 ?        00:04:34 /data/logstash_exporter/logstash_exporter --web.listen-address=:9412 --logstash.endpoint=http://127.0.0.1:9612
prometheus配置拉取logstash_exporter暴露出来的端口

prometheus的配置文件使用文件发现的方式,json内容如下(省略了其余部分)

    {
        "targets": ["logstash的主机IP地址:9401"],
        "labels": {
            "alias": "logstash-1",
            "job": "logstash",
            "index": "为该进程起的别名"
        }
    }
grafana查询绘图

grafana里面可以搜索到一些现成的dashboard使用,比如
2525

参考文献

logstash_exporter
Prometheus 监控之 logstash

推荐阅读更多精彩内容