使用Kibana3发出警报/通知?

时间:2014-05-30 06:49:58

标签: elasticsearch alert logstash kibana

我正在使用logstash-1.4.1elasticsearch-1.1.1kibana-3.1.0来分析我的日志。我能够查看和查询我的日志。

需要在特定日志/事件发生时需要警报/通知。例如:当一次又一次地发生登录失败日志时,需要提供警报/通知(弹出,通过邮件等)。

目前我可以像登录失败一样查询我的日志,但是只要出现这样的日志,就会出现通知/弹出窗口而不是我手动查询它。

这可以用以上三种方法完成吗?如何实现这一目标?

5 个答案:

答案 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

https://bosun.org/expressions.html#logstash-query-functions

答案 4 :(得分:0)

以下是如何使用更新的ES和Kibana执行电子邮件警报和监控。我正在使用elasticsearch-5.5.0kibana-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更新的上述答案的简要更新,所以它在一个地方!感谢