我正在使用logstash-1.4.1
,elasticsearch-1.1.1
和kibana-3.1.0
来分析我的日志。我能够查看和查询我的日志。
需要在特定日志/事件发生时需要警报/通知。例如:当一次又一次地发生登录失败日志时,需要提供警报/通知(弹出,通过邮件等)。
目前我可以像登录失败一样查询我的日志,但是只要出现这样的日志,就会出现通知/弹出窗口而不是我手动查询它。
这可以用以上三种方法完成吗?如何实现这一目标?
答案 0 :(得分:8)
您可以使用 Watcher 来监控您的Elasticsearch。它通过邮件提醒您。
有关详细信息,请参阅此链接:
https://www.elastic.co/products/watcher
您可以按照以下步骤配置Watcher:
第1步 - 为Watcher安装插件(适用于1.7):
ES_HOME/bin/elasticsearch
第2步 - 重启Elasticsearch:
curl -XGET 'http://localhost:9200/_watcher/stats?pretty'
第3步 - 确认已设置了观察程序:
PUT /_watcher/watch/log_error_watch
{
"trigger": {
"schedule": {
"interval": "10m"
}
},
"input": {
"search": {
"request": {
"indices": ["logs"],
"body": {
"query": {
"match": {
"message": "error"
}
}
}
}
}
},
"condition": {
"compare": {
"ctx.payload.hits.total": {
"gt": 0
}
}
},
"actions": {
"send_email": {
"email": {
"to": "<username>@<domainname>",
"subject": "Cluster logs",
"body": "Cluster Error Logs ",
"attach_data": true
}
}
}
}
第4步 - 观察日志数据是否有错误:
elasticsearch.yml
第5步 - 配置电子邮件(将以下行添加到watcher.actions.email.service.account:
work:
profile: gmail
email_defaults:
from: <email>
smtp:
auth: true
starttls.enable: true
host: smtp.gmail.com
port: 587
user: <username>
password: <password>
):
curl -XDELETE'http://localhost:9200/_watcher/watch/log_error_watch'
第6步 - 删除观察者:
int[] a = {1,2,3,4,5,6};
String str = "";
for(int i=0;i<a.length;i++)
{
str = str + Integer.toString(a[i]);
}
System.out.println(str);
答案 1 :(得分:5)
logstash中有一个email
选项,在检测日志中的某个模式时,可以发送电子邮件。查看文档以便进一步阅读:http://logstash.net/docs/1.4.1/outputs/email
答案 2 :(得分:3)
您可以使用“Watcher”(其中一种产品)监控弹性搜索。
以下是产品信息的链接: https://www.elastic.co/products/watcher
在下一页中,您可以查看产品指南: https://www.elastic.co/guide/en/watcher/current/index.html
答案 3 :(得分:1)
有一个looooong thread discussing this作为Kibana的补充(虽然它们现在自然地集中了Kibana 4)。
现状:没有,到目前为止还没有,甚至没有计划。但是有一些选项可以提到:
https://github.com/Yelp/elastalert
和
答案 4 :(得分:0)
以下是如何使用更新的ES和Kibana执行电子邮件警报和监控。我正在使用elasticsearch-5.5.0
,kibana-5.5.0
使用XPack和Watcher。
步骤1.安装XPack for Elasticsearch和Kibana
bin/elasticsearch-plugin install x-pack
bin/kibana-plugin install x-pack
步骤2.重启ES和Kibana
./bin/elasticsearch
./bin/kibana
步骤3.在elasticsearch.yml
xpack.notification.email.account:
outlook_account:
profile: outlook
email_defaults:
from: <sender-email>
smtp:
auth: true
starttls.enable: true
host: smtp-mail.outlook.com
port: 587
user: <username>
password: <password>
**我用火花塞尝试了这个,它完全没问题。刚刚将配置文件更改为sparkpostmail,将主机更改为smtp.sparkpostmail.com。您可以按照其他电子邮件设置的指南进行操作:https://www.elastic.co/guide/en/x-pack/5.6/actions-email.html#configuring-email-actions
步骤4:在Kibana Dev Tools中配置电子邮件操作(您也可以将此作为curl命令执行)
PUT _xpack/watcher/watch/error_report
{
"trigger": {
"schedule": {
"interval": "1h" <OR TIME INTERVAL TO MONITOR AND ALERT>
}
},
"input": {
"search": {
"request": {
"indices": [
"logs"
],
"body": {
"query": {
"match": {
"message": "error"
}
}
}
}
}
},
"actions": {
"send_email": {
"email": {
"to": "<YOUR EMAIL>",
"subject": "Cluster logs",
"body": "Cluster Error Logs ",
"attach_data": true
}
}
}
}
OR!如果要将Kibana配置为通过电子邮件发送仪表板或可视化,请配置以下电子邮件操作:
PUT _xpack/watcher/watch/error_report
{
"trigger" : {
"schedule": {
"interval": "<TIME_INTERVAL>"
}
},
"actions" : {
"send_email" : {
"email": {
"to": "<YOUR EMAIL>",
"subject": "Error Monitoring Dashboard",
"attachments" : {
"error_dashboard.pdf" : {
"reporting" : {
"url": "http://<YOUR_HOST>:5601/api/reporting/generate/dashboard/<DASHBOARD_ID>?_g=(time:(from:now-7d%2Fd,mode:quick,to:now))", // This is where you configure settings like time interval
"retries":6,
"interval":"15s",
"auth":{
"basic":{
"username":"<USERNAME>",
"password":"<PASSWORD>"
}
}
}
}
}
}
}
}
}
步骤5(可选)。完成使用Kibana的开发工具后删除观察者。
DELETE _xpack/watcher/watch/log_error_watch
这只是关于kibana和xpack更新的上述答案的简要更新,所以它在一个地方!感谢