Если вы используете indexing
, то ваша записьasticsearch регистрируется в выделенном кластере мониторинга, тогда вы можете создать скрипт наблюдателя в кластере мониторинга, который запрашивает конкретные ключевые слова, такие как added
, removed
.
[2019-09-12T12:15:56,802][INFO ][o.e.c.s.ClusterService ] [1.1.1.1] removed {{2.2.2.2}{_bm_BBMQQJCCVx6HbuBa_B}{n83UoTCLSiWOyfst-a_s0w}{2.2.2.2}{2.2.2.2:9300}{zone=sandeep-node, ml.enabled=true, tag=sandy-test},}, reason: zen-disco-receive(from master [master {3.3.3.3}{6V0mpFS4RXyE4K11eb1Iyg}{Q6uvX9ySQ5q00eZfme2cHA}{3.3.3.3}{3.3.3.3:9300}{ml.max_open_jobs=10, ml.enabled=true, tag=sandy-test, zone=sandeep-node} committed version [559]])
[2019-09-12T12:16:13,898][INFO ][o.e.c.s.ClusterSettings ] [1.1.1.1] updating [cluster.routing.allocation.enable] from [none] to [all]
[2019-09-12T12:16:37,892][INFO ][o.e.c.s.ClusterService ] [1.1.1.1] added {{2.2.2.2}{_bm_BBMQQJCCVx6HbuBa_B}{RToPW_2dQw2vqpMOYpLlTg}{2.2.2.2}{2.2.2.2:9300}{ml.max_open_jobs=10, ml.enabled=true, tag=sandy-test, zone=sandeep-node},}, reason: zen-disco-receive(from master [master {3.3.3.3}{6V0mpFS4RXyE4K11eb1Iyg}{Q6uvX9ySQ5q00eZfme2cHA}{3.3.3.3}{3.3.3.3:9300}{ml.max_open_jobs=10, ml.enabled=true, tag=sandy-test, zone=sandeep-node} committed version [580]])
* 1006. * Ниже приведен пример сценария наблюдателя, который запрашивает
ERROR
в индексе
*-eslogs-*
. Журналы Elasticsearch индексируются в указанном индексе.
{
"trigger": {
"schedule": {
"interval": "5m"
}
},
"input": {
"search": {
"request": {
"search_type": "query_then_fetch",
"indices": [
"*-eslogs-*"
],
"types": [],
"body": {
"size": 1,
"query": {
"bool": {
"must": [
{
"query_string": {
"analyze_wildcard": true,
"query": "Level: ERROR"
}
},
{
"range": {
"@timestamp": {
"gte": "now-5m",
"lte": "now",
"format": "epoch_millis"
}
}
}
],
"must_not": []
}
}
}
}
}
},
"condition": {
"compare": {
"ctx.payload.hits.total": {
"gte": 1
}
}
},
"actions": {
"send_email": {
"email": {
"profile": "standard",
"from": "Watcher Alert <DL-WATCH@BAR.com>",
"to": [
"DL-FOO@BAR.com>, DL-ANOTHER-FOO@BAR.com>"
],
"subject": "Watcher Notification",
"body": {
"text": "There are {{ctx.payload.hits.total}} ERROR messages on Elasticsearch Cluster in the last 5 minutes. \r\n One of the log entry below: \r\n {{ctx.payload.hits.hits.0}}"
}
}
}
}
}
Другой способ - GET _cat/nodes
и выполнение подсчета общего количества узлов и оповещение, если значение больше или меньше предварительно определенного порога.