我正在使用 ELK 从两个不同数据库的数据生成视图。一种是 mysql,另一种是 PostgreSQL。无法在这两个数据库实例之间编写联接查询。但我有一个共同的领域叫做“nic”。以下是每个索引的文档。
MySQL
索引:用户详细信息
"_id": "871123365V",
"_source": {
"type": "db-poc-user",
"fname": "Iraj",
"@version": "1",
"field_lname": "Sanjeewa",
"nic": "871456365V",
"@timestamp": "2020-07-22T04:12:00.376Z",
"id": 2,
"lname": "Santhosh"
}
Run Code Online (Sandbox Code Playgroud)
PostgreSQL
索引:track_details
"_id": "871456365V",
"_source": {
"@version": "1",
"nic": "871456365V",
"@timestamp": "2020-07-22T04:12:00.213Z",
"track": "ELK",
"type": "db-poc-ceg"
},
Run Code Online (Sandbox Code Playgroud)
我想使用公共字段“nic”将两个索引合并为单个索引。并创建新索引。这样我就可以在 Kibana 上创建可视化。如何才能实现这一目标?
请注意,新索引中的每个文档都应包含“nic,fname,lname,track”作为字段。不是聚合。
我想从订阅过滤器获取日志,然后将日志放入 s3 存储桶中并将它们发送到 ES。
类似于这里的图表:
https://aws.amazon.com/solutions/implementations/centralized-logging/
当我使用这个功能时:
/*
For processing data sent to Firehose by Cloudwatch Logs subscription filters.
Cloudwatch Logs sends to Firehose records that look like this:
{
"messageType": "DATA_MESSAGE",
"owner": "123456789012",
"logGroup": "log_group_name",
"logStream": "log_stream_name",
"subscriptionFilters": [
"subscription_filter_name"
],
"logEvents": [
{
"id": "01234567890123456789012345678901234567890123456789012345",
"timestamp": 1510109208016,
"message": "log message 1"
},
{
"id": "01234567890123456789012345678901234567890123456789012345",
"timestamp": 1510109208017,
"message": "log message 2"
}
...
]
}
The data is additionally compressed with GZIP.
The code below will:
1) Gunzip …Run Code Online (Sandbox Code Playgroud) amazon-web-services elasticsearch kibana aws-lambda amazon-kinesis-firehose
在我的弹性搜索索引中,每个文档将有两个日期字段createdDate和modifiedDate。modifiedDate我正在尝试在 kibana 中添加一个过滤器来获取大于 的文档createdDate。如何在 kibana 中创建这个过滤器?
尝试使用下面的查询而不是大于它被视为 gte 并获取所有记录
GET index/_search
{
"query": {
"bool": {
"filter": {
"script": {
"script" : {
"inline" : "doc['modifiedTime'].value.getMillis() > doc['createdTime'].value.getMillis()",
"lang" : "painless"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) version: "3.0"
services:
elasticsearch:
container_name: es-container
image: docker.elastic.co/elasticsearch/elasticsearch:7.11.0
environment:
- xpack.security.enabled=false
- "discovery.type=single-node"
volumes:
- ./esdata:/usr/share/elasticsearch/data
networks:
- es-net
ports:
- 9200:9200
kibana:
container_name: kb-container
image: docker.elastic.co/kibana/kibana:7.11.0
environment:
- ELASTICSEARCH_HOSTS=http://es-container:9200
networks:
- es-net
depends_on:
- elasticsearch
ports:
- 5601:5601
volumes:
- kibanadata:/usr/share/kibana/data
networks:
es-net:
driver: bridge
volumes:
esdata:
driver: local
kibanadata:
driver: local
Run Code Online (Sandbox Code Playgroud)
这不会在集群中运行 ES 或启用密码,而且我需要 8 的版本,当我尝试将 kibana 与 ES 连接时出现错误。
有人可以帮我制作一个可以工作的 docker-compose.yaml
我正在尝试使用此图表将 elasticsearch 和 kibana 部署到 kubernetes ,并在 kibana 容器内收到此错误,因此 ingress 返回 503 错误,并且容器从未准备好。
错误:
[2022-11-08T12:30:53.321+00:00][ERROR][elasticsearch-service] Unable to retrieve version information from Elasticsearch nodes. socket hang up - Local: 10.112.130.148:42748, Remote: 10.96.237.95:9200
Run Code Online (Sandbox Code Playgroud)
ip地址10.96.237.95是有效的elasticsearch服务地址,端口是正确的。
当我从 kibana 容器内部对 elasticsearch 进行curl 操作时,它成功返回响应。
我的配置中是否缺少某些内容?
图表版本:7.17.3
elasticsearch 图表的值:
clusterName: "elasticsearch"
nodeGroup: "master"
createCert: false
roles:
master: "true"
data: "true"
ingest: "true"
ml: "true"
transform: "true"
remote_cluster_client: "true"
protocol: https
replicas: 2
sysctlVmMaxMapCount: 262144
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 90
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 10 …Run Code Online (Sandbox Code Playgroud) 我想创建每个用户带宽使用情况的图/表.我怎么在kibana做?我已经为每个用户发送了字节和接收的字节.
总之,我想要输出
select users, sum(sentbyte + receievedbyte) from TABLE_NAME group by users order by users desc
Run Code Online (Sandbox Code Playgroud)
Kibana: 
更新的问题:
今天,我开始知道kibana 3.X版本不支持聚合.你必须使用kibana 4.x. 我使用了以下形式的弹性搜索请求,它给出了所需的结果.但我如何在kibana 4 beta 2中以图形形式表示它?
POST logstash-2014.12.02/_search
{
"size": 0,
"aggs": {
"group_by_bandwidth": {
"terms": {
"field": "user",
"order": {
"TotalBandwidth": "desc"
}
},
"aggs": {
"TotalBandwidth": {
"sum": {
"script" : "doc['rcvdbyte'].value + doc['sentbyte'].value"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 示例是Logstash格式.他们在elasticsearch中格式化了他们的索引,[logstash-]YYYY.MM.DD每天都会使用一个新的索引.弹性搜索本身将由Kibana使用.它有什么理由被完成吗?有什么好处?
我有一个问题从csv解析日期,我找不到问题(人们会认为)简单日期 - 日/月/日.这是我的csv文件的结构:
Date,Key-values,Line Item,Creative,Ad unit,Creative size,Ad server impressions,Ad server clicks,Ad server CTR
04/04/16,prid=DUBAP,Hilton_PostAuth 1,Stop Clicking Around - 300x250,383UKHilton_300x250,300 x 250,31,0,0.00%
04/04/16,prid=DUBAP,Hilton_PostAuth 2,16-0006_Auction_Banners_300x250_cat4,383UKHilton_300x250,300 x 250,59,0,0.00%
Run Code Online (Sandbox Code Playgroud)
和我的logstash.config文件:
input {
file {
path => "/Users/User/*.csv"
type => "core2"
start_position => "beginning"
}
}
filter {
csv {
columns => ["Date","Key-values","Line Item","Creative","Ad unit","Creative size","Ad server impressions","Ad server clicks","Ad server CTR"]
separator => ","
}
date {
match => ["Date", "dd/MM/YY"]
}
mutate {convert => ["Ad server impressions", "float"]}
mutate {convert => ["Ad server …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用curl命令创建可视化。我正在使用elasticsearch 6.2.3。我可以在elasticsearch 5.6.8中创建相同的对象。我正在使用此命令
curl -XPUT http://localhost:9200/.kibana/visualization/vis1 -H 'Content-Type: application/json' -d @vis1.json
它显示此错误:
{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Rejecting mapping update to [.kibana] as the final mapping would have more than 1 type: [visualization, doc]"}],"type":"illegal_argument_exception","reason":"Rejecting mapping update to [.kibana] as the final mapping would have more than 1 type: [visualization, doc]"},"status":400}Run Code Online (Sandbox Code Playgroud)
vis1.json的内容:
{
"title": "vis1",
"visState": "{\"title\":\"vis1\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"split\",\"params\":{\"field\":\"UsageEndDate\",\"interval\":\"M\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"row\":false}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"ProductName.keyword\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}",
"uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}",
"description": "",
"version": 1,
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"4eb9f840-3969-11e8-ae19-552e148747c3\",\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"\"}}"
}
}Run Code Online (Sandbox Code Playgroud)
在elasticearch 5.6.8中工作正常,但在6.2.3中则不能。
提前致谢。
kibana ×10
logstash ×3
elk ×2
aws-lambda ×1
csv ×1
datetime ×1
docker ×1
dsl ×1
kibana-6 ×1
kubernetes ×1
networking ×1