标签:适合 日志 cluster als rgba ase mic 不同 st3
【0】小技巧选项
(0.0)常用基本参数(v,help,bates,header)
-
verbose: 显示列名, 请求参数为v
示例: curl localhost:9200/_cat/master?v
-
help: 显示当前命令的各列含义, 请求参数为help. 某些命令部分列默认不显示,可通过help该命令可显示的所有列
示例: curl localhost:9200/_cat/master?help
-
bytes: 数值列还原为原始值. 如diskSize, 默认转为以kb/mb/gb表示, 打开后还原为原始值
示例: curl localhost:9200/_cat/indices?bytes=b
-
header: 显示指定列的信息, 请求参数为h
示例: curl localhost:9200/_cat/indices?h=i,tm(显示集群各索引的内存使用)
参考:https://www.bookstack.cn/read/elasticsearch-7.9-en/a397f9b7db759452.md#b58esa
(0.1)结果格式:?pretty=true、?format=yaml
到发出的任何请求时,返回的JSON将采用漂亮的格式(仅用于调试!)。另一个选项是设置?format=yaml
,这将导致结果以(有时)更具可读性的Yaml格式返回。
(0.2)结果单位:?human=Ture
以适合于人类(例如"exists_time": "1h"
或"size": "1kb"
)和适合计算机(例如"exists_time_in_millis": 3600000
或"size_in_bytes": 1024
)的格式返回统计信息。
可以通过添加?human=false
到查询字符串来关闭人类可读的值。当统计结果被监视工具消耗而不是供人类消耗时,这是有道理的。该human
标志的默认值为false
。
(0.3)日期运算:now-1h
它接受一个格式化的日期值大多数参数-比如gt
和lt
中range
查询,或from
与to
在daterange
聚集?-了解最新的数学。
表达式以锚定日期开头,可以是,也可以是以now
结尾的日期字符串||
。这个锚定日期可以有选择地跟随一个或多个数学表达式:
-
+1h
:增加一小时
-
-1d
:减去一日
-
/d
:四舍五入到最近的一天
在持续时间内,支持的时间单位不同于时间单位支持的时间单位。支持的单位是:
y
|
年
|
M
|
月数
|
w
|
周数
|
d
|
天
|
h
|
小时
|
H
|
小时
|
m
|
分钟
|
s
|
秒
|
假设now
为2001-01-01 12:00:00
,则一些示例为:
now+1h
|
now 以毫秒为单位,再加上一个小时。解析为:2001-01-01 13:00:00
|
now-1h
|
now 以毫秒减去一小时为单位。解析为:2001-01-01 11:00:00
|
now-1h/d
|
now 以毫秒减去一小时为单位,四舍五入为UTC 00:00。解析为:2001-01-01 00:00:00
|
2001.02.01||+1M/d
|
2001-02-01 以毫秒为单位,再加上一个月。解析为:2001-03-01 00:00:00
|
(0.4)内容过滤:?filter_path=..
所有REST API都接受一个filter_path
参数,该参数可用于减少Elasticsearch返回的响应。
此参数采用逗号分隔的过滤器列表,并用点符号表示:
GET /_search?q=kimchy&filter_path=took,hits.hits._id,hits.hits._score
结果:
{
"took" : 3,
"hits" : {
"hits" : [
{
"_id" : "0",
"_score" : 1.6375021
}
]
}
}
它还支持*
通配符以匹配任何字段或字段名称的一部分:
GET /_cluster/state?filter_path=metadata.indices.*.stat*
结果:
{
"metadata" : {
"indices" : {
"my-index-000001": {"state": "open"}
}
}
}
并且 **
通配符可用于包括字段,不知道现场的确切路径。
例如,我们可以使用以下请求返回每个段的Lucene版本:
GET /_cluster/state?filter_path=routing_table.indices.**.state
{
"routing_table": {
"indices": {
"my-index-000001": {
"shards": {
"0": [{"state": "STARTED"}, {"state": "UNASSIGNED"}]
}
}
}
}
}
也可以通过为过滤器添加char前缀来排除一个或多个字段 _
:
GET /_count?filter_path=-_shards
【1】多个资源请求
(1.1)基本查多个索引
您可以使用逗号分隔的列表对多个资源
(1.2)通配符,like 之类的模糊查询
还可以使用通配符 * ,如:
test*或*test或te*t或*test*。
您可以使用以下-字符排除目标:test*,-test3。
(1.3)别名引起的问题
索引别名在通配符表达式之后解析。这可能会导致针对排除的别名的请求。
例如,如果test3
是索引 abc 的别名,则该模式test*,-test3
仍将定位到的索引test3
。
为了避免这种情况,请排除别名的具体索引。如:test*,-abc
(1.4)多目标API的字符串参数
ignore_unavailable :(可选,布尔值)如果为true
,则响应中不包含缺少或闭合的索引。默认为false
allow_no_indices:(可选,布尔值)如果true
,请求并不如果通配符表达式或者返回一个错误_all
值仅检索丢失或封闭的索引。此参数还适用于指向别名缺失或封闭索引的索引别名。
expand_wildcards:
(可选,字符串)控制通配符表达式可以扩展到的索引类型。如用逗号分隔,可以接受多个值open,hidden
。有效值为:
all:展开以打开和关闭索引,包括隐藏索引。
open:仅展开以打开索引。
closed:仅扩展到封闭索引。
hidden:通配符的扩展将包括隐藏的索引。必须与之合并open,closed或两者兼而有之。
none:不接受通配符表达式。
ignore_throttled :(可选,布尔值)如果为true
,冻结时将忽略具体的索引,扩展的索引或别名索引。默认为true
。
【2】索引名称中对日期的数学支持
(2.1)作用
日期数学索引名称解析使您可以搜索一系列时间序列索引,而不必搜索所有时间序列索引并过滤结果或维护别名。
限制搜索索引的数量可以减少群集上的负载并提高执行性能。
例如,如果您要在日常日志中搜索错误,则可以使用日期数学名称模板将搜索范围限制为过去两天。
几乎所有具有index
参数的API都在index
参数值中支持日期数学。
日期数学索引名称采用以下形式:
参数释义:
static_name
|
是名称的静态文本部分
|
date_math_expr
|
是动态日期数学表达式,可动态计算日期
|
date_format
|
是一种可选格式,应以这种格式呈现计算出的日期。默认为yyyy.MM.dd 。格式应与Java时间https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html兼容
|
time_zone
|
是可选的时区。默认为utc 。
|
请注意空格中小写与大写字母的用法date_format
。
例如:mm
表示小时,而MM
表示月份。
类似地,结合表示范围内hh
的小时,而表示24小时范围内的小时。1-12
AM/PM
HH
0-23
日期数学表达式与语言环境无关。因此,除了公历以外,无法使用其他日历。
您必须将日期数学索引名称表达式括在尖括号内,并且所有特殊字符均应进行URI编码。例如:
# PUT /
PUT /%3Cmy-index-%7Bnow%2Fd%7D%3E
(2.2)日期数学字符的百分比编码
用于日期舍入的特殊字符必须使用URI编码,如下所示
|
%3C
|
>
|
%3E
|
/
|
%2F
|
{
|
%7B
|
}
|
%7D
|
|
|
%7C
|
+
|
%2B
|
:
|
%3A
|
,
|
%2C
|
以下示例显示了不同形式的日期数学索引名称,以及在当前时间为2024年3月22日正午utc时,它们解析为的最终索引名称。
表达 |
解析为 |
|
logstash-2024.03.22
|
|
logstash-2024.03.01
|
|
logstash-2024.03
|
|
logstash-2024.02
|
|
logstash-2024.03.23
|
要使用字符{ and
}
在索引名称模板的静态部分中,请使用反斜杠对其进行转义\
,例如:
解析为 elastic{ON}-2024.03.01
(2.3)案例
以下示例显示了一个搜索请求,该搜索请求在过去三天中搜索Logstash索引,假设索引使用默认的Logstash索引名称格式logstash-yyyy.MM.dd
。
# GET /,,/_search
GET /%3Clogstash-%7Bnow%2Fd-2d%7D%3E%2C%3Clogstash-%7Bnow%2Fd-1d%7D%3E%2C%3Clogstash-%7Bnow%2Fd%7D%3E/_search
{
"query" : {
"match": {
"test": "data"
}
}
}
【3】cron 定时任务 表达式
(3.1)作用、一般形式
其实就和linux的 cron 一样
cron表达式是以下形式的字符串:
[year]
Elasticsearch使用Quartz Job Scheduler中的cron解析器。有关编写Quartz cron表达式的更多信息,请参见Quartz CronTrigger教程。
所有计划时间均以协调世界时(UTC)为准;不支持其他时区。
您可以使用elasticsearch-croneval命令行工具来验证您的cron表达式。
(3.2)Cron表达式的元素
除以外,所有元素都是必需的year
。有关允许的特殊字符的信息,请参见Cron特殊字符。
(必填)有效值:0
-59
和特殊字符,
-
*
/
(必填)有效值:0
-59
和特殊字符,
-
*
/
(必填)有效值:0
-23
和特殊字符,
-
*
/
(必填)有效值:1
-31
和特殊字符,
-
*
/
?
L
W
(必需)有效值:1
- 12
,JAN
- DEC
,jan
-dec
和特殊字符,
-
*
/
(必需)有效值:1
- 7
,SUN
- SAT
,sun
-sat
和特殊字符,
-
*
/
?
L
#
(可选)有效值:1970
-2099
和特殊字符,
-
*
/
(3.3)Cron特殊字符(*_?,/LW)
*
选择一个字段的每个可能的值。例如,*
在该hours
字段中表示“每小时”。
?
没有具体值。当您不在乎值是什么时使用。例如,如果您希望计划在每月的特定日期触发,但不在乎星期几,则可以?
在day_of_week
字段中指定。
-
值的范围(含)。用于分隔最小值和最大值。例如,如果您希望时间表在上午9:00和下午5:00之间每小时触发一次,则可以9-17
在hours
字段中指定。
,
多个值。用于分隔字段的多个值。例如,如果您希望时间表在每个星期二和星期四触发,则可以TUE,THU
在day_of_week
字段中指定。
/
增量。指定时间增量时用于分隔值。第一个值代表起点,第二个值代表间隔。例如,如果您希望时间表从小时的顶部开始每20分钟触发一次,则可以0/20
在minutes
字段中指定。同样,从该月的第一天开始,1/5
在day_of_month
字段中指定将每5天触发一次。
L
最后的。在该day_of_month
字段中使用时表示月份的最后一天-非years年的1月31日,2月的28日,4月的30日,依此类推。在day_of_week
字段中单独使用代替7
或SAT
,或在一周中的特定日期之后选择该类型在月中的最后一天。例如,6L
表示月份的最后一个星期五。您可以LW
在day_of_month
字段中指定以指定该月的最后一个工作日。L
在指定值列表或值范围时避免使用该选项,因为结果可能不会达到您的期望。
W
平日 用于指定最接近给定日期的工作日(星期一至星期五)。例如,如果您15W
在day_of_month
字段中指定,而15号是星期六,那么时间表将在14号触发。如果15日是星期日,则时间表将在16日星期一触发。如果15日是星期二,则时间表将在15日星期二触发。但是,如果您将1W
的值指定为day_of_month
且第一个是星期六,则时间表将在第3个星期一触发-它不会跳过月份边界。您可以LW
在day_of_month
字段中指定以指定该月的最后一个工作日。您只能在W
当天day_of_month
是一天时使用该选项-在指定日期范围或日期列表时无效。
#
一个月中的第N个XXX天。在day_of_week
字段中使用以指定每月的第XXX天。例如,如果指定6#1
,则计划将在该月的第一个星期五触发。请注意,如果您指定3#5
并且特定月份中没有5个星期二,则计划不会触发该月份。
(3.4)案例
设置每日触发
0 5 9 * * ?
每天在世界标准时间上午9:05触发。
0 5 9 * * ? 2020
2020年期间,每天在世界标准时间上午9:05触发。
将触发器限制在几天或时间范围内
0 5 9 ? * MON-FRI
星期一至星期五,世界标准时间上午9:05触发。
0 0-5 9 * * ?
从UTC上午9:00开始到UTC每天9:05结束,每分钟触发一次。
设置间隔触发
0 0/15 9 * * ?
从UTC上午9:00开始到每天UTC上午9:45结束,每15分钟触发一次。
0 5 9 1/3 * ?
从每月的第一天开始,每月每3天在UTC上午9:05触发。
设置在特定日期触发的时间表
0 1 4 1 4 ?
在每年世界标准时间4月1日凌晨4:01触发。
0 0,30 9 ? 4 WED
4月的每个星期三,在UTC上午9:00和UTC上午9:30触发。
0 5 9 15 * ?
在每个月的15日(世界标准时间)上午9:05触发。
0 5 9 15W * ?
在每个月15日最近的工作日(世界标准时间)上午9:05触发。
0 5 9 ? * 6#1
在每个月的第一个星期五上午9:05触发。
使用last设置触发器
0 5 9 L * ?
在每个月的最后一天上午9:05在世界标准时间触发。
0 5 9 ? * 2L
在每个月的最后一个星期一的UTC上午9:05触发。
0 5 9 LW * ?
在每个月的最后一个工作日世界标准时间上午9:05触发。
(11)elasticsearch常用查询,REST API的基本约定
标签:适合 日志 cluster als rgba ase mic 不同 st3
原文地址:https://www.cnblogs.com/gered/p/14633412.html