Watcherのemail actionでdashboard.pdfを添付したい

Watcherのemail actionで、送るメールにdashboardのpdfファイルを添付したいと考えています。
下記URLを参考に設定をしているのですが、上手くいきません。
https://www.elastic.co/guide/en/elasticsearch/reference/7.3/actions-email.html#configuring-email-attachments

設定した条件(trigger,input,condition)に合致した場合に、email actionで添付なしのメールを送ることはできています。

動作環境

  • Elasticsearch 7.3.0 (on Elastic Cloud)
  • Kibana 7.3.0 (on nginx - EC2(Ubuntu 16.04 LTS) )

Watch json

   "actions": {
    "email_admin": {
      "email": {
        "attachments": {
          "dashboard.pdf": {
            "reporting": {
              "url": "dashboard->share->PDF Reports->Copy POST URL (https)"
            }
          }
        },
        "from": "source_address@mydomain.com",
        "to": "destination_address@mydomain.com",
        "subject": "~~~~",
        "body": {
          "text": "~~~~"
        }
      }
    }
  }

Simulation results

error": {
          "root_cause": [
            {
              "type": "s_s_l_handshake_exception",
              "reason": "PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"
            }
          ],

不明点

大きく2つあります。

1.actions.email_admin.email.attachment.dashboard.pdf.reporting.urlに設定する値はこれで正しいのか?
2.エラーメッセージを解消するには、何を対応する必要があるのか?

色々と調べてはいるのですが、ピンとくる情報が見つけられず途方に暮れています。
初心者質問で申し訳ないのですが、情報ありましたらお願いいたします。

  1. はドキュメントの手順通りであり正しいかと思います。
    2については、SSL証明書関連のエラーのように見受けられます。
    EC2上で動作させているというKibanaについてですが、nginxでリバースプロキシ構成をとっているのでしょうか。
    その場合、証明書は信頼された証明書(自己証明書、いわゆるオレオレ証明書でない)でしょうか?

Elastic CloudのKibanaにつないでみてPDFが添付できるか、まず確認してみると良いと思います。
たとえば、このような指定でElastic CloudのKibanaでダッシュボードを作成し、PDFが添付されるかと思います。

"actions": {
    "send_email": {
      "email": {
        "profile": "standard",
        "attachments": {
          "dashboard.pdf": {
            "reporting": {
              "url": "https://*****.ap-northeast-1.aws.found.io:9243/api/reporting/generate/printablePdf?jobParams=すごい長いパラメータ",
              "auth": {
                "basic": {
                  "username": "elastic",
                  "password": "*************"
                }
              }
            }
          }
        },
        "to": [
          "********@abc.com"
        ],
        "subject": "Watcher Notification",
        "body": {
          "text": "{{ctx.payload.hits.total}} logs found"
        }
      }
    }
  }

ご回答頂きありがとうございます。

2.で表示されているエラーは、仰る通りSSL証明書関連のエラーだったようです。
これまたご指摘の通りに、リバースプロキシ構成でオレオレ証明書を使用していたために発生しておりました。
信頼された証明書を適用することで、回避できました。

ただ、alertがfiringしたところ、下記のエラーが発生しました。

{
   "type": "exception",
   "reason": "Watch[~~] reporting[dashboard.pdf] Error response when trying to trigger reporting generation host[mydomain.com], port[443] method[POST], path[/~~/reporting/generate/printablePdf], status[414]"
}

status[414] ということは、URI Too Long であると予想するのですが、これを回避する方法はないのでしょうか?

ためしに短いURI(情報量が少ない別のDashboardのPOST URL)の場合は、エラーとならずに期待の動作を確認することができました。

こちらのissueが関連しそうです。(まだ解決になってないようです)

ありがとうございます。
まだ解決していないんですね。Closeされるまで待つしかないですかね。

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.