【问题标题】:How to configure Kibana with Elastic Search and Statsd如何使用 Elastic Search 和 Statsd 配置 Kibana
【发布时间】:2016-04-21 16:17:22
【问题描述】:

我正在尝试进行一些度量计算并将度量值存储在 ElasticSearch 中并通过 Kibana 查看它们

我按照这个教程 https://www.digitalocean.com/community/tutorials/how-to-configure-statsd-to-collect-arbitrary-stats-for-graphite-on-ubuntu-14-04

它帮助我设置了 StatsD,使用石墨 UI、Carbon 和 Whiper 作为后端。

现在我想将 StatsD 与 ElasticSearch 和 Kibana 一起用作可视化工具。

我面临的问题是 Kibana 有自己的聚合技术,而我已经使用 statsd 做到了这一点,例如:uniq counts。 所以我只想绘制我存储在 Elastic Search 中的数据,而不是进一步聚合它, 是否可以在 Kibana 中查看数据而不进行聚合?

请帮助。

谢谢。

【问题讨论】:

  • 不清楚你在问什么。您也没有告诉我们您在尝试设置时遇到的任何错误,或者哪个步骤不起作用或真正有用的东西。
  • 感谢 Rumbles 指出。我已经用具体问题更新了问题。

标签: elasticsearch logstash kibana graphite statsd


【解决方案1】:

您可以通过 statsd(client) + metricbeat(运行守护程序的 statsd 插件)和 Elasticsearch + Kibana 来做到这一点。以下步骤:

设置弹性搜索:https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

vi /etc/yum.repos.d/elasticsearch.repo 和输入:

[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md

并从上面配置的 repo 安装 elasticsearch:

sudo yum install --enablerepo=elasticsearch elasticsearch

设置(systemctl)服务:

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service

可以按如下方式启动/停止:

sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service

同样地,设置 kibana,只需遵循:https://www.elastic.co/guide/en/kibana/current/rpm.html

vi /etc/yum.repos.d/kibana.repo

[kibana-7.x]
name=Kibana repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

并安装 kibana:sudo yum install kibana 同样,您也可以为 kibana 启用、启动/停止 systemd 服务。

我将 elasticsearch 和 kibana 放在同一位置,设置在同一个节点上。

现在,只需在烧瓶应用程序中使用 statsd 客户端:

from flask import Flask
from elasticapm.contrib.flask import ElasticAPM
from statsd import StatsClient
from random import randint
from datetime import datetime
import time

statsd = StatsClient(host='0.0.0.0',port=8125,prefix='test')
app = Flask(__name__)
apm = ElasticAPM(app)

@app.route('/')
def hello():
    bfr = time.time()
    time.sleep(3)
    statsd.incr('baz',2)
    statsd.decr('ban')
    statsd.gauge('foo',-3,delta=True)
    statsd.set('users',randint(0,100))
    statsd.timing('req',int((time.time() - bfr)*1000))
    return "Hello World!"

这设置了我们的 statsd 客户端,对于 statsd 服务器,只需转到:http://<es-ip>:5601/app/kibana#/home/tutorial/statsdMetrics 并按照说明进行操作。

设置 metricbeat,在与烧瓶应用程序相同的服务器上启用 statsd。步骤是:

卷曲 -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.8.1-x86_64.rpm sudo rpm -vi metricbeat-7.8.1-x86_64.rpm

修改output.elasticsearch 中的/etc/metricbeat/metricbeat.yml 部分:

sudo metricbeat modules enable statsd

并设置一些东西,即 metricbeat / statsd:

sudo metricbeat setup
sudo service metricbeat start

您可以执行netstat -tulpn | grep -i 8125 并查看正在运行的 statsd 守护进程。

接下来,只需转到“开发工具”kibana 部分

并触发以下查询以检查 statsd 指标:http://<es-ip>:5601/app/kibana#/dev_tools/console

GET /_search
{"query":{"bool":{"filter":{"term":{"event.module":"statsd"}}}},"size":10}

您现在可以创建仪表板,使用查询过滤器“event.module”是“statsd”添加可视化,甚至可以搜索诸如...之类的术语。例如accounts.authentication.login.num_users

【讨论】:

    猜你喜欢
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    相关资源
    最近更新 更多