我正在尝试进行一些指标计算,并将指标的值存储在ElasticSearch中,并通过Kibana查看它们
它帮助我设置StatsD,使用石墨UI,Carbon和Whiper作为后端。
现在我想将StatsD与ElasticSearch和Kibana一起用作可视化工具。
我面临的问题是Kibana有自己的聚合技术,我已经使用statsd这样做了,例如:uniq计数。 所以我只想绘制我存储在弹性搜索中的数据,而不是进一步聚合, 是否可以查看数据而不在Kibana中聚合它们。?
请帮助。
感谢。
答案 0 :(得分:0)
您可以通过statsd(client)+ metricbeat(运行守护程序的statsd插件)和Elasticsearch + Kibana来执行此操作。步骤如下:
设置elasticsearch: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
并从上面配置的存储库中安装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,在与flask应用程序相同的服务器上启用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