• /
  • EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

後置統合

当社の Postfix インテグレーションはメール サーバーのデータを 1 つのビューに統合するため、特定の期間に送信、バウンス、または延期されたメールの数を追跡できます。 当社の Postfix インテグレーションは、インフラストラクチャエージェントを使用して、電子メール配信プロセス、メールキュー、メッセージの概要など、最も重要な Postfix メトリックを含む事前構築されたダッシュボードを提供します。

Postfix dashboard

Postfix 統合を設定すると、Postfix メトリクスのダッシュボードが提供されます。

Postfix統合をセットアップする

Postfix 統合をセットアップするには、次の手順を実行します。

インフラストラクチャエージェントをインストールします

Postfix インテグレーションを使用するには、同じホストにインフラストラクチャエージェントもインストールする必要があります。 インフラストラクチャエージェントはホスト自体を監視しますが、次のステップでインストールする統合は Postfix 固有のデータを使用して監視を拡張します。

Postfix データのエクスポート

pflogsummを使用して Postfix メトリクスをエクスポートします。 Postfix エージェントは、Postfix アクティビティに関するメトリクス データに変換するログ アナライザーとしてpflogsummを使用します。 これにより、電子メール管理で発生する可能性のある事象を予測するのに十分な詳細が得られます。

pflogsummを使用するには、次の手順に従います。

  1. pflogsummをダウンロードして抽出するには、次のコマンドを実行します。

    bash
    $
    wget https://jimsun.linxnet.com/downloads/pflogsumm-1.1.3.tar.gz
    bash
    $
    tar xvf pflogsumm-1.1.3.tar.gz
  2. pflogsummフォルダに移動します。

    bash
    $
    cd pflogsumm-*.*.*
  3. pflogsumm.pl ファイルをパス /usr/local/bin/pflogsummにコピーします。

    bash
    $
    sudo cp pflogsumm.pl /usr/local/bin/pflogsumm
  4. 次のpflogsummコマンドを実行して、Postfix メトリクスをエクスポートします。

    bash
    $
    cat /var/log/mail.log | pflogsumm
    $
    cat /var/log/mail.log | pflogsumm -d today

NRI-Flex を Postfix 用に構成する

アプリケーションに依存しない監視ツールである Flex は、 New Relic Infrastructureエージェントにバンドルされています。 Postfix データ用の flex 設定ファイルを作成するには、次の手順に従います。

  1. postfix-flex-config.ymlという名前のファイルを作成します。

    bash
    $
    touch /etc/newrelic-infra/integrations.d/postfix-flex-config.yml
  2. ファイルpostfix-flex-config.ymlを更新します。 以下の設定サンプルを参考にして作業することをお勧めします。

    ---
    integrations:
    - name: nri-flex
    config:
    name: postfixFlex
    apis:
    #check if Postfix service is up.
    - event_type: PostfixUp
    commands:
    - run: echo "value:$(systemctl status postfix | grep 'Active':' active' | wc -l)"
    split_by: ':'
    #check if Postfix service is down.
    - event_type: PostfixDown
    commands:
    - run: echo "value:$(systemctl status postfix | grep 'Active':' active' | wc -l)"
    split_by: ':'
    #Read the grand totals messages by using the below script.
    - event_type: PostfixGrandTotals
    commands:
    - run: cat /var/log/mail.log | pflogsumm | grep -A 21 'Grand Totals'
    split: horizontal
    set_header: [metricValue, message]
    regex_match: true
    split_by: \s+(\d+\w*)\s+(.*)
    #Read the number of messages delivered & received in bytes.
    - event_type: PostfixMessageBytes
    commands:
    - run: cat /var/log/mail.log | pflogsumm | grep -A 1 'bytes received'
    split: horizontal
    set_header: [metricValue, messageBytes]
    regex_match: true
    split_by: \s+(\d+\w*)\s+(.*)
    #Read the number of messages held by the user.
    - event_type: PostfixHeldMessage
    commands:
    - run: echo "value:$(cat /var/mail/<USER> | grep -c 'Subject:')"
    split_by: ':'
    #Read the count of SASL authentication failure notifications.
    - event_type: PostfixSASLauthFailed
    commands:
    - run: echo "value:$(cat /var/log/mail.log | grep 'status=deferred (SASL authentication failed' | wc -l)"
    split_by: ':'
    #Read the count of bounced non-delivery notifications.
    - event_type: PostfixBounceNondeliveryNotification
    commands:
    - run: echo "value:$(cat /var/log/mail.log | grep 'postfix/bounce' | wc -l)"
    split_by: ':'
    #Read the number of messages passed through the email delivery process.
    - event_type: PostfixEmailDeliveryProcess
    commands:
    - run: echo "PICKUPvalue:$(cat /var/log/mail.log | grep 'pickup' | wc -l)"
    split_by: ':'
    - run: echo "CLEANUPvalue:$(cat /var/log/mail.log | grep 'cleanup' | wc -l)"
    split_by: ':'
    #Read the number of message inserted in mail queue.
    - event_type: PostfixMessageInsertedinMailQ
    commands:
    - run: echo "Ivalue:$(cat /var/log/mail.log | grep 'queue active'| wc -l)"
    split_by: ':'
    #Read the number of message handled by SMTP process.
    - event_type: PostfixMessageHandledBySMTP
    commands:
    - run: echo "SENTmsg:$(cat /var/log/mail.log | grep 'status=sent' | grep "postfix/smtp" | wc -l)"
    split_by: ':'
    - run: echo "BOUNCEDmsg:$(cat /var/log/mail.log | grep 'status=bounced' | grep "postfix/smtp" | wc -l)"
    split_by: ':'
    - run: echo "DEFERREDmsg:$(cat /var/log/mail.log | grep 'status=deferred' | grep "postfix/smtp" | wc -l)"
    split_by: ':'
    #Read the number of message removed from mail queue.
    - event_type: PostfixMessageRemovedFromMailQ
    commands:
    - run: echo "Rvalue:$(cat /var/log/mail.log | grep 'removed'| wc -l)"
    split_by: ':'
    #Read the number of SMTPD connection.
    - event_type: PostfixSMTPDconnection
    commands:
    - run: echo "value:$(cat /var/log/mail.log | grep ' connect from' | wc -l)"
    split_by: ':'
    #Read the number of SMTPD disconnection.
    - event_type: PostfixSMTPDdisconnection
    commands:
    - run: echo "value:$(cat /var/log/mail.log | grep 'disconnect from' | wc -l)"
    split_by: ':'
    #Read the number of SMTP connection.
    - event_type: PostfixSMTPconnection
    commands:
    - run: echo "value:$(cat /var/log/mail.log | grep ' connect to' | wc -l)"
    split_by: ':'
    #Read the number of SMTP disconnection.
    - event_type: PostfixSMTPdisconnection
    commands:
    - run: echo "value:$(cat /var/log/mail.log | grep 'disconnect to' | wc -l)"
    split_by: ':'
    #Read the number of connection timed out.
    - event_type: PostfixSMTPDtimedOut
    commands:
    - run: echo "value:$(cat /var/log/mail.log | grep 'timeout after CONNECT' | wc -l)"
    split_by: ':'
    #Read the number of connection lost.
    - event_type: PostfixSMTPDconnectionLost
    commands:
    - run: echo "value:$(cat /var/log/mail.log | grep 'lost connection' | wc -l)"
    split_by: ':'
    #Read the per-hour traffic report.
    - event_type: PostfixMessagePerHourReport
    commands:
    - run: cat /var/log/mail.log | pflogsumm -d today | grep -i 'Per-Hour Traffic Summary' -A 27
    split: horizontal
    header_split_by: \s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(.*)
    set_header:
    [
    time,
    received.perhour,
    delivered.perhour,
    deferred.perhour,
    bounced.perhour,
    rejected.perhour,
    ]
    regex_match: true
    split_by: \s+(\d+-\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)
    #Read the per-day traffic summary.
    - event_type: PostfixMessageTrafficPerDay
    commands:
    - run: cat /var/log/mail.log | pflogsumm --zero_fill | grep -C 12 'Per-Day Traffic Summary' -B 0 -A 8 | sed '/Per-Hour Traffic Daily Average/q'
    split: horizontal
    header_split_by: \s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(.*)
    set_header:
    [date, received, delivered, deferred, bounced, rejected]
    regex_match: true
    split_by: \s+(\w+\s+\d+\s+\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)
    #Read the host/domain summary: message delivery & received.
    - event_type: PostfixHostSummary
    commands:
    - run: cat /var/log/mail.log | pflogsumm | grep -i 'Host/Domain Summary':' Message Delivery' -A 8 | sed -n '2,9p'
    split: horizontal
    header_split_by: \s+(\w+\s+\w+)\s+(\w+)\s+(\w+)\s+(\w+\s+\w+)\s+(\w+\s+\w+)\s+(.*.)
    set_header:
    [sentCount, bytesDelivered, defers, avgDaily, maxDaily, host]
    regex_match: true
    split_by: \s+(\d+)\s+(\d+\w*)\s+(\d+)\s+(\d+.\d+\s+\w)\s+(\d+.\d+\s+\w)\s+(.*)
    - run: cat /var/log/mail.log | pflogsumm | grep -A 15 'Host/Domain Summary':' Messages Received' | sed '/Senders by message count/q'
    split: horizontal
    header_split_by: \s+(\w+\s+\w+)\s+(\w+)\s+(.*.)
    set_header: [msgCount, bytesReceived, hostDetail]
    regex_match: true
    split_by: \s+(\d+)\s+(\d+\w*)\s+(.*)
    #Read the senders & recipients with message count.
    - event_type: PostfixSenderRecipientMessageCount
    commands:
    - run: cat /var/log/mail.log | pflogsumm | grep -C 11 'Senders by message count' -B 1 -A 9 | sed '/Recipients by message count/q'
    split: horizontal
    header_split_by: (.*.)
    set_header: [sender.msgCount, senders]
    regex_match: true
    split_by: \s+(\d+)\s+(.*)
    - run: cat /var/log/mail.log | pflogsumm | grep -C 11 'Recipients by message count' -B 1 -A 9 | sed '/Senders by message size/q'
    split: horizontal
    header_split_by: (.*.)
    set_header: [recipient.msgCount, recipients]
    regex_match: true
    split_by: \s+(\d+)\s+(.*)
    #Read the daemon message details.
    - event_type: PostfixDaemonMessage
    commands:
    - run: cat /var/log/mail.log | pflogsumm | grep -A 10 'Master daemon messages'
    split: horizontal
    set_header: [daemon.msgCount, daemonMessage]
    regex_match: true
    split_by: \s*(\d+)\s+(\w+.*.)
    #Read the message deferral details.
    - event_type: PostfixDeferralMessage
    commands:
    - run: cat /var/log/mail.log | pflogsumm | grep -A 15 'message deferral detail' | sed '/message bounce detail (by relay)/q'
    split: horizontal
    header_split_by: (\s+\w+\s+.*)
    set_header: [deferral.msgCount, deferralMessage]
    regex_match: true
    split_by: \s*(\d+)\s+(\w+.*.)
    #Read the warning message details.
    - event_type: PostfixWarningMessage
    commands:
    - run: cat /var/log/mail.log | pflogsumm | grep -v 'mail_queue_enter' | grep -C 100 'Warnings' -B 1 -A 10 | sed '/Fatal Errors/q'
    split: horizontal
    header_split_by: \s+(\w+)\s+(.*)
    set_header: [Warning.msgCount, warningMessage]
    regex_match: true
    split_by: \s*(\d+)\s\s\s(.*.)
    #Read the error message details.
    - event_type: PostfixErrorMessage
    commands:
    - run: cat /var/log/mail.log | pflogsumm | grep -C 15 'Fatal Errors' -B 1 -A 10 | sed '/Panics/q'
    split: horizontal
    header_split_by: \s+(\w+)\s+(.*)
    set_header: [Fatal.msgCount, fatalMessage]
    regex_match: true
    split_by: \s*(\d+)\s\s\s(.*.)
    #Read the message bounce details.
    - event_type: PostfixBounceMessage
    commands:
    - run: cat /var/log/mail.log | pflogsumm | grep -A 10 'message bounce detail (by relay)' | sed '/message reject detail/q'
    split: horizontal
    header_split_by: \s+(\w+)\s+(.*)
    set_header: [Bounce.msgCount, bounceMessage]
    regex_match: true
    split_by: \s*(\d+)\s\s\s(.*.)

    独自に作成したい場合は、yaml ファイルが上記のパターンに従っていることを確認してください。 必要に応じて次の属性を編集します。

  • EVENT_TYPE: NRQL を使用してクエリできる New Relic データベース テーブル。
  • COMMAND: 端末上でメトリクスを出力するために使用されるコマンド。

Postfix ログを New Relic に転送する

Postfix ログを New Relic に転送するには、次の手順に従います。

  1. インフラストラクチャエージェント ディレクトリにlogging.ymlという名前のファイルを作成します。

    bash
    $
    touch /etc/newrelic-infra/logging.d/logging.yml
  2. 次のスニペットをlogging.ymlファイルに追加します。

    logs:
    - name: mail.log
    file: /var/log/mail.log
    attributes:
    logtype: postfix_maillog

インフラストラクチャエージェントを再起動します

インフラストラクチャエージェントのドキュメントの指示に従って、インフラストラクチャエージェントを再起動します。 これはほとんどの人にとって機能する基本的なコマンドです。

bash
$
sudo systemctl restart newrelic-infra.service

データを見つけて使用する

事前に構築されたダッシュボード テンプレートを使用して Postfix データを簡単に表示するには、次の手順に従ってください。

  1. one.newrelic.com

    に移動し、

    + Integrations & Agents

    をクリックします。

  2. Dashboards

    タブをクリックします。

  3. 検索ボックスに Postfixと入力します。

  4. 事前構築ダッシュボードが表示されたら、それをクリックしてアカウントにインストールします。

    Postfix ダッシュボードはカスタムダッシュボードです。 Dashboards UI からアクセスします。 ダッシュボードの使用と編集に関するドキュメントについては、ダッシュボードのドキュメントを参照してください。

    データの検索方法と使用方法の詳細については、 「インテグレーション データを理解する」を参照してください。 Postfix データに対する NRQL クエリの例をいくつか示します。

次は何ですか?

NRQL クエリの作成とダッシュボードの生成の詳細については、次のドキュメントをご覧ください。

  • 基本的なクエリと高度なクエリを作成するためのクエリ ビルダーの概要

  • ダッシュボードをカスタマイズしてさまざまなアクションを実行するためのダッシュボードの概要

  • ダッシュボードを管理して

    表示モードを調整したり、ダッシュボードにコンテンツを追加したりできます。

Copyright © 2024 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.