sql >> データベース >  >> RDS >> PostgreSQL

Nagiosを使用してPostgreSQLを監視する方法

    はじめに

    データベーステクノロジに関係なく、問題を検出してアクションを実行するため、または単にシステムの現在の状態を知るために、監視設定を行う必要があります。

    この目的のために、有料と無料のいくつかのツールがあります。このブログでは、特にNagiosCoreに焦点を当てます。

    Nagios Coreとは何ですか?

    Nagios Coreは、ホスト、ネットワーク、およびサービスを監視するためのオープンソースシステムです。アラートを構成でき、アラートの状態が異なります。コミュニティによって開発されたプラグインの実装が可能になり、独自の監視スクリプトを構成することもできます。

    Nagiosをインストールするにはどうすればいいですか?

    公式ドキュメントには、CentOSまたはUbuntuシステムにNagiosCoreをインストールする方法が示されています。

    CentOS7にインストールするために必要な手順の例を見てみましょう。

    必要なパッケージ

    [[email protected] ~]# yum install -y wget httpd php gcc glibc glibc-common gd gd-devel make net-snmp unzip

    Nagios Core、Nagiosプラグイン、NRPEをダウンロード

    [[email protected] ~]# wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.2.tar.gz
    [[email protected] ~]# wget http://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
    [[email protected] ~]# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz

    Nagiosユーザーとグループを追加

    [[email protected] ~]# useradd nagios
    [[email protected] ~]# groupadd nagcmd
    [[email protected] ~]# usermod -a -G nagcmd nagios
    [[email protected] ~]# usermod -a -G nagios,nagcmd apache

    Nagiosのインストール

    [[email protected] ~]# tar zxvf nagios-4.4.2.tar.gz
    [[email protected] ~]# cd nagios-4.4.2
    [[email protected] nagios-4.4.2]# ./configure --with-command-group=nagcmd
    [[email protected] nagios-4.4.2]# make all
    [[email protected] nagios-4.4.2]# make install
    [[email protected] nagios-4.4.2]# make install-init
    [[email protected] nagios-4.4.2]# make install-config
    [[email protected] nagios-4.4.2]# make install-commandmode
    [[email protected] nagios-4.4.2]# make install-webconf
    [[email protected] nagios-4.4.2]# cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
    [[email protected] nagios-4.4.2]# chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
    [[email protected] nagios-4.4.2]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

    NagiosプラグインとNRPEのインストール

    [[email protected] ~]# tar zxvf nagios-plugins-2.2.1.tar.gz
    [[email protected] ~]# cd nagios-plugins-2.2.1
    [[email protected] nagios-plugins-2.2.1]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
    [[email protected] nagios-plugins-2.2.1]# make
    [[email protected] nagios-plugins-2.2.1]# make install
    [[email protected] ~]# yum install epel-release
    [[email protected] ~]# yum install nagios-plugins-nrpe
    [[email protected] ~]# tar zxvf nrpe-3.2.1.tar.gz
    [[email protected] ~]# cd nrpe-3.2.1
    [[email protected] nrpe-3.2.1]# ./configure --disable-ssl --enable-command-args
    [[email protected] nrpe-3.2.1]# make all
    [[email protected] nrpe-3.2.1]# make install-plugin

    サーバーをチェックするときにNRPEを使用するには、ファイル/usr/local/nagios/etc/objects/command.cfgの最後に次の行を追加します。

    define command{
        command_name           check_nrpe
        command_line           /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
    }

    Nagiosが始まります

    [[email protected] nagios-4.4.2]# systemctl start nagios
    [[email protected] nagios-4.4.2]# systemctl start httpd

    Webアクセス

    Webインターフェースにアクセスするためのユーザーを作成し、サイトにアクセスできます。

    [[email protected] nagios-4.4.2]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

    http:// IP_Address / nagios /

    Nagaos Web Access

    Nagiosを設定する方法は?

    Nagiosがインストールされたので、構成を続行できます。このためには、インストールに対応する場所、この例では/ usr / local / nagios/etcに移動する必要があります。

    監視を開始する前に、作成または編集する必要のあるいくつかの異なる構成ファイルがあります。

    [[email protected] etc]# ls /usr/local/nagios/etc
    cgi.cfg  htpasswd.users  nagios.cfg  objects  resource.cfg
    • cgi.cfg: CGI設定ファイルには、CGIの動作に影響を与えるいくつかのディレクティブが含まれています。また、メイン構成ファイルへの参照も含まれているため、CGIは、Nagiosをどのように構成したか、およびオブジェクト定義がどこに保存されているかを認識します。
    • htpasswd.users: このファイルには、NagiosWebインターフェースにアクセスするために作成されたユーザーが含まれています。
    • nagios.cfg: メインの構成ファイルには、NagiosCoreデーモンの動作に影響を与えるいくつかのディレクティブが含まれています。
    • オブジェクト: Nagiosをインストールすると、いくつかのサンプルオブジェクト構成ファイルがここに配置されます。これらのサンプルファイルを使用して、オブジェクトの継承がどのように機能するかを確認し、独自のオブジェクト定義を定義する方法を学ぶことができます。オブジェクトは、監視および通知ロジックに関係するすべての要素です。
    • resource.cfg: これは、マクロ定義を含むことができるオプションのリソースファイルを指定するために使用されます。マクロを使用すると、コマンドでホスト、サービス、およびその他のソースの情報を参照できます。

    オブジェクト内には、新しいオブジェクトを作成するときに使用できるテンプレートがあります。たとえば、ファイル/usr/local/nagios/etc/objects/templates.cfgに、サーバーの追加に使用されるlinux-serverというテンプレートがあることがわかります。

    define host {
        name                            linux-server            ; The name of this host template
        use                             generic-host            ; This template inherits other values from the generic-host template
        check_period                    24x7                    ; By default, Linux hosts are checked round the clock
        check_interval                  5                       ; Actively check the host every 5 minutes
        retry_interval                  1                       ; Schedule host check retries at 1 minute intervals
        max_check_attempts              10                      ; Check each Linux host 10 times (max)
        check_command                   check-host-alive        ; Default command to check Linux hosts
        notification_period             workhours               ; Linux admins hate to be woken up, so we only notify during the day
                                                               ; Note that the notification_period variable is being overridden from
                                                               ; the value that is inherited from the generic-host template!
        notification_interval           120                     ; Resend notifications every 2 hours
        notification_options            d,u,r                   ; Only send notifications for specific host states
        contact_groups                  admins                  ; Notifications get sent to the admins by default
        register                        0                       ; DON'T REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
    }

    このテンプレートを使用すると、ホストは、追加するサーバーごとに1つずつ指定しなくても構成を継承します。

    事前定義されたコマンド、連絡先、期間もあります。

    コマンドはNagiosによってチェックに使用され、それを監視するために各サーバーの構成ファイル内に追加されます。例:PING:

    define command {
        command_name    check_ping
        command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
    }

    連絡先またはグループを作成し、どのアラートをどの人またはグループに届けたいかを指定する可能性があります。

    define contact {
        contact_name            nagiosadmin             ; Short name of user
        use                     generic-contact         ; Inherit default values from generic-contact template (defined above)
        alias                   Nagios Admin            ; Full name of user
        email                   [email protected] ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
    }

    チェックとアラートについては、それらを受信する時間と曜日を構成できます。重要ではないサービスがある場合は、おそらく夜明けに目を覚ますことを望まないので、これを避けるために勤務時間内にのみ警告することをお勧めします。

    define timeperiod {
        name                    workhours
        timeperiod_name         workhours
        alias                   Normal Work Hours
        monday                  09:00-17:00
        tuesday                 09:00-17:00
        wednesday               09:00-17:00
        thursday                09:00-17:00
        friday                  09:00-17:00
    }

    Nagiosにアラートを追加する方法を見てみましょう。

    PostgreSQLサーバーを監視するので、最初にそれらをオブジェクトディレクトリのホストとして追加します。 3つの新しいファイルを作成します:

    [[email protected] ~]# cd /usr/local/nagios/etc/objects/
    [[email protected] objects]# vi postgres1.cfg
    define host {
        use        linux-server      ; Name of host template to use
        host_name    postgres1        ; Hostname
        alias        PostgreSQL1        ; Alias
        address    192.168.100.123    ; IP Address
    }
    [[email protected] objects]# vi postgres2.cfg
    define host {
        use        linux-server      ; Name of host template to use
        host_name    postgres2        ; Hostname
        alias        PostgreSQL2        ; Alias
        address    192.168.100.124    ; IP Address
    }
    [[email protected] objects]# vi postgres3.cfg
    define host {
        use        linux-server      ; Name of host template to use
        host_name    postgres3        ; Hostname
        alias        PostgreSQL3        ; Alias
        address    192.168.100.125    ; IP Address
    }

    次に、それらをファイルnagios.cfgに追加する必要があります。ここでは、2つのオプションがあります。

    cfg_file変数(デフォルトオプション)を使用してホスト(cfgファイル)を1つずつ追加するか、cfg_dir変数を使用してディレクトリ内にあるすべてのcfgファイルを追加します。

    デフォルトの戦略に従って、ファイルを1つずつ追加します。

    cfg_file=/usr/local/nagios/etc/objects/postgres1.cfg
    cfg_file=/usr/local/nagios/etc/objects/postgres2.cfg
    cfg_file=/usr/local/nagios/etc/objects/postgres3.cfg

    これにより、ホストが監視されます。次に、監視するサービスを追加するだけです。このために、いくつかの定義済みのチェック(check_sshとcheck_ping)を使用し、NRPEを使用して、特に負荷やディスク容量などのオペレーティングシステムのいくつかの基本的なチェックを追加します。

    今日のホワイトペーパーをダウンロードするClusterControlを使用したPostgreSQLの管理と自動化PostgreSQLの導入、監視、管理、スケーリングを行うために知っておくべきことについて学ぶホワイトペーパーをダウンロードする

    NRPEとは何ですか?

    Nagiosリモートプラグインエグゼキュータ。このツールを使用すると、リモートホストでNagiosプラグインを可能な限り透過的に実行できます。

    これを使用するには、監視する各ノードにサーバーをインストールする必要があります。Nagiosはクライアントとして各ノードに接続し、対応するプラグインを実行します。

    NRPEをインストールするにはどうすればよいですか?

    [[email protected] ~]# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz
    [[email protected] ~]# wget http://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
    [[email protected] ~]# tar zxvf nagios-plugins-2.2.1.tar.gz
    [[email protected] ~]# tar zxvf nrpe-3.2.1.tar.gz
    [[email protected] ~]# cd nrpe-3.2.1
    [[email protected] nrpe-3.2.1]# ./configure --disable-ssl --enable-command-args
    [[email protected] nrpe-3.2.1]# make all
    [[email protected] nrpe-3.2.1]# make install-groups-users
    [[email protected] nrpe-3.2.1]# make install
    [[email protected] nrpe-3.2.1]# make install-config
    [[email protected] nrpe-3.2.1]# make install-init
    [[email protected] ~]# cd nagios-plugins-2.2.1
    [[email protected] nagios-plugins-2.2.1]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
    [[email protected] nagios-plugins-2.2.1]# make
    [[email protected] nagios-plugins-2.2.1]# make install
    [[email protected] nagios-plugins-2.2.1]# systemctl enable nrpe

    次に、構成ファイル/usr/local/nagios/etc/nrpe.cfg

    を編集します。
    server_address=<Local IP Address>
    allowed_hosts=127.0.0.1,<Nagios Server IP Address>

    そして、NRPEサービスを再開します:

    [[email protected] ~]# systemctl restart nrpe

    Nagiosサーバーから以下を実行することで接続をテストできます:

    [[email protected] ~]# /usr/local/nagios/libexec/check_nrpe -H <Node IP Address>
    NRPE v3.2.1

    PostgreSQLを監視する方法は?

    PostgreSQLを監視する場合、考慮すべき2つの主要な領域があります。オペレーティングシステムとデータベースです。

    オペレーティングシステムの場合、NRPEには、ディスク容量や負荷などの基本的なチェックがいくつか構成されています。これらのチェックは、次の方法で非常に簡単に有効にできます。

    ノードで、ファイル/usr/local/nagios/etc/nrpe.cfgを編集し、次の行がある場所に移動します。

    command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
    command[check_load]=/usr/local/nagios/libexec/check_load -r -w 15,10,05 -c 30,25,20
    command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /
    command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
    command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

    角括弧内の名前は、これらのチェックを有効にするためにNagiosサーバーで使用する名前です。

    Nagiosでは、3つのノードのファイルを編集します:

    /usr/local/nagios/etc/objects/postgres1.cfg
    /usr/local/nagios/etc/objects/postgres2.cfg
    /usr/local/nagios/etc/objects/postgres3.cfg

    以前に見たこれらのチェックを追加し、ファイルを次のように残します。

    define host {
        use                     linux-server
        host_name               postgres1
        alias                   PostgreSQL1
        address                 192.168.100.123
    }
    define service {
        use                     generic-service
        host_name               postgres1
        service_description     PING
        check_command           check_ping!100.0,20%!500.0,60%
    }
    define service {
        use                     generic-service
        host_name               postgres1
        service_description     SSH
        check_command           check_ssh
    }
    define service {
        use                     generic-service
        host_name               postgres1
        service_description     Root Partition
        check_command        check_nrpe!check_disk
    }
    define service {
        use                     generic-service
        host_name               postgres1
        service_description     Total Processes zombie
        check_command           check_nrpe!check_zombie_procs
    }
    define service {
        use                     generic-service
        host_name               postgres1
        service_description     Total Processes
        check_command           check_nrpe!check_total_procs
    }
    define service {
        use                     generic-service
        host_name               postgres1
        service_description     Current Load
        check_command           check_nrpe!check_load
    }
    define service {
        use                     generic-service
        host_name               postgres1
        service_description     Current Users
        check_command           check_nrpe!check_users
    }

    そして、nagiosサービスを再起動します:

    [[email protected] ~]# systemctl start nagios

    この時点で、NagiosのWebインターフェイスのサービスセクションに移動すると、次のようになります。

    Nagiosホストアラート

    このようにして、オペレーティングシステムレベルでのサーバーの基本的なチェックについて説明します。

    追加できるチェックは他にもたくさんあり、独自のチェックを作成することもできます(例は後で説明します)。

    次に、このタスク用に設計された2つの主要なプラグインを使用してPostgreSQLデータベースエンジンを監視する方法を見てみましょう。

    Check_postgres

    PostgreSQLをチェックするための最も人気のあるプラグインの1つは、Bucardoのcheck_postgresです。

    インストール方法とPostgreSQLデータベースでの使用方法を見てみましょう。

    必要なパッケージ

    [[email protected] ~]# yum install perl-devel

    インストール

    [[email protected] ~]#  wget http://bucardo.org/downloads/check_postgres.tar.gz
    [[email protected] ~]#  tar zxvf check_postgres.tar.gz
    [[email protected] ~]#  cp check_postgres-2.23.0/check_postgres.pl /usr/local/nagios/libexec/
    [[email protected] ~]# chown nagios.nagios /usr/local/nagios/libexec/check_postgres.pl
    [[email protected] ~]# cd /usr/local/nagios/libexec/
    [[email protected] libexec]# perl /usr/local/nagios/libexec/check_postgres.pl  --symlinks

    この最後のコマンドは、check_postgres_connection、check_postgres_last_vacuum、check_postgres_replication_slotsなど、このチェックのすべての機能を使用するためのリンクを作成します。

    [[email protected] libexec]# ls |grep postgres
    check_postgres.pl
    check_postgres_archive_ready
    check_postgres_autovac_freeze
    check_postgres_backends
    check_postgres_bloat
    check_postgres_checkpoint
    check_postgres_cluster_id
    check_postgres_commitratio
    check_postgres_connection
    check_postgres_custom_query
    check_postgres_database_size
    check_postgres_dbstats
    check_postgres_disabled_triggers
    check_postgres_disk_space
    …

    NRPE構成ファイル(/usr/local/nagios/etc/nrpe.cfg)に、使用するチェックを実行する行を追加します。

    command[check_postgres_locks]=/usr/local/nagios/libexec/check_postgres_locks -w 2 -c 3
    command[check_postgres_bloat]=/usr/local/nagios/libexec/check_postgres_bloat -w='100 M' -c='200 M'
    command[check_postgres_connection]=/usr/local/nagios/libexec/check_postgres_connection --db=postgres
    command[check_postgres_backends]=/usr/local/nagios/libexec/check_postgres_backends -w=70 -c=100

    この例では、PostgreSQLに4つの基本的なチェックを追加しました。ロック、ブロート、接続、バックエンドを監視します。

    Nagiosサーバーのデータベースに対応するファイル(/usr/local/nagios/etc/objects/postgres1.cfg)に、次のエントリを追加します。

    define service {
          use                    generic-service
          host_name              postgres1
          service_description    PostgreSQL locks
          check_command          check_nrpe!check_postgres_locks
    }
    define service {
          use                    generic-service
          host_name              postgres1
          service_description    PostgreSQL Bloat
          check_command          check_nrpe!check_postgres_bloat
    }
    define service {
          use                    generic-service
          host_name              postgres1
          service_description    PostgreSQL Connection
          check_command          check_nrpe!check_postgres_connection
    }
    define service {
          use                    generic-service
          host_name              postgres1
          service_description    PostgreSQL Backends
          check_command          check_nrpe!check_postgres_backends
    }

    そして、両方のサーバーで両方のサービス(NRPEとNagios)を再起動すると、アラートが構成されていることがわかります。

    Nagaos check_postgres Alerts

    check_postgresプラグインの公式ドキュメントで、他に監視するものとその方法に関する情報を見つけることができます。

    Check_pgactivity

    今度は、PostgreSQLデータベースの監視にも人気のあるcheck_pgactivityの番です。

    インストール

    [[email protected] ~]# wget https://github.com/OPMDG/check_pgactivity/releases/download/REL2_3/check_pgactivity-2.3.tgz
    [[email protected] ~]# tar zxvf check_pgactivity-2.3.tgz
    [[email protected] ~]# cp check_pgactivity-2.3check_pgactivity /usr/local/nagios/libexec/check_pgactivity
    [[email protected] ~]# chown nagios.nagios /usr/local/nagios/libexec/check_pgactivity

    NRPE構成ファイル(/usr/local/nagios/etc/nrpe.cfg)に、使用するチェックを実行する行を追加します。

    command[check_pgactivity_backends]=/usr/local/nagios/libexec/check_pgactivity -h localhost -s backends -w 70 -c 100
    command[check_pgactivity_connection]=/usr/local/nagios/libexec/check_pgactivity -h localhost -s connection
    command[check_pgactivity_indexes]=/usr/local/nagios/libexec/check_pgactivity -h localhost -s invalid_indexes
    command[check_pgactivity_locks]=/usr/local/nagios/libexec/check_pgactivity -h localhost -s locks -w 5 -c 10

    この例では、PostgreSQLの4つの基本的なチェックを追加します。バックエンド、接続、無効なインデックス、ロックを監視します。

    Nagiosサーバーのデータベースに対応するファイル(/usr/local/nagios/etc/objects/postgres2.cfg)に、次のエントリを追加します。

    define service {
        use                     generic-service           ; Name of service template to use
        host_name               postgres2
        service_description     PGActivity Backends
        check_command           check_nrpe!check_pgactivity_backends
    }
    define service {
        use                     generic-service           ; Name of service template to use
        host_name               postgres2
        service_description     PGActivity Connection
        check_command           check_nrpe!check_pgactivity_connection
    }
    define service {
        use                     generic-service           ; Name of service template to use
        host_name               postgres2
        service_description     PGActivity Indexes
        check_command           check_nrpe!check_pgactivity_indexes
    }
    define service {
        use                     generic-service           ; Name of service template to use
        host_name               postgres2
        service_description     PGActivity Locks
        check_command           check_nrpe!check_pgactivity_locks
    }

    そして、両方のサーバーで両方のサービス(NRPEとNagios)を再起動すると、アラートが構成されていることがわかります。

    Nagaoscheck_pgactivityアラート

    エラーログの確認

    最も重要なチェックの1つ、または最も重要なチェックは、エラーログをチェックすることです。

    ここでは、FATALやデッドロックなどのさまざまなタイプのエラーを見つけることができます。データベースにある問題を分析するための良い出発点です。

    エラーログを確認するために、独自の監視スクリプトを作成してNagiosに統合します(これは単なる例です。このスクリプトは基本的なものであり、改善の余地が十分にあります)。

    スクリプト

    PostgreSQL3サーバーにファイル/usr/local/nagios/libexec/check_postgres_log.shを作成します。

    [[email protected] ~]# vi /usr/local/nagios/libexec/check_postgres_log.sh
    #!/bin/bash
    #Variables
    LOG="/var/log/postgresql-$(date +%a).log"
    CURRENT_DATE=$(date +'%Y-%m-%d %H')
    ERROR=$(grep "$CURRENT_DATE" $LOG | grep "FATAL" | wc -l)
    #States
    STATE_CRITICAL=2
    STATE_OK=0
    #Check
    if [ $ERROR -ne 0 ]; then
           echo "CRITICAL - Check PostgreSQL Log File - $ERROR Error Found"
           exit $STATE_CRITICAL
    else
           echo "OK - PostgreSQL without errors"
           exit $STATE_OK
    fi

    スクリプトの重要なことは、各状態に対応する出力を正しく作成することです。これらの出力はNagiosによって読み取られ、各番号は状態に対応します:

    0=OK
    1=WARNING
    2=CRITICAL
    3=UNKNOWN

    この例では、現在の時間のエラーログにFATALタイプのエラーがあるかどうかを知ることだけに関心があるため、OKとCRITICALの2つの状態のみを使用します。

    終了前に使用するテキストは、NagiosのWebインターフェイスに表示されるため、これを問題のガイドとして使用することを可能な限り明確にする必要があります。

    監視スクリプトが終了したら、実行権限を付与し、ユーザーnagiosに割り当てて、データベースサーバーNRPEとNagiosに追加します。

    [[email protected] ~]# chmod +x /usr/local/nagios/libexec/check_postgres_log.sh
    [[email protected] ~]# chown nagios.nagios /usr/local/nagios/libexec/check_postgres_log.sh
    
    [[email protected] ~]# vi /usr/local/nagios/etc/nrpe.cfg
    command[check_postgres_log]=/usr/local/nagios/libexec/check_postgres_log.sh
    
    [[email protected] ~]# vi /usr/local/nagios/etc/objects/postgres3.cfg
    define service {
        use                     generic-service           ; Name of service template to use
        host_name               postgres3
        service_description     PostgreSQL LOG
        check_command           check_nrpe!check_postgres_log
    }

    NRPEとNagiosを再起動します。次に、Nagiosインターフェースでチェックを確認できます:

    Nagiosスクリプトアラート

    ご覧のとおり、CRITICAL状態であるため、ログに移動すると、次のことがわかります。

    2018-08-30 02:29:49.531 UTC [22162] FATAL:  Peer authentication failed for user "postgres"
    2018-08-30 02:29:49.531 UTC [22162] DETAIL:  Connection matched pg_hba.conf line 83: "local   all             all                                     peer"

    PostgreSQLデータベースで監視できるものの詳細については、パフォーマンスと監視のブログまたはこのPostgresPerformanceウェビナーを確認することをお勧めします。

    安全性とパフォーマンス

    プラグインまたは独自のスクリプトを使用して監視を構成するときは、安全性とパフォーマンスという2つの非常に重要なことに細心の注意を払う必要があります。

    監視に必要な権限を割り当てるときは、可能な限り制限し、ローカルまたは監視サーバーからのアクセスのみを制限し、安全なキーを使用してトラフィックを暗号化し、監視が機能するために必要な最小限の接続を許可する必要があります。

    パフォーマンスに関しては、監視が必要ですが、システムで安全に使用することも必要です。

    不当に高いディスクアクセスを生成したり、データベースのパフォーマンスに悪影響を与えるクエリを実行したりしないように注意する必要があります。

    ギガバイトのログを生成する1秒あたりのトランザクション数が多く、エラーを継続的に探し続ける場合、データベースにはおそらく最適ではありません。したがって、監視対象、頻度、パフォーマンスへの影響のバランスを保つ必要があります。

    結論

    監視を実装する方法、または監視を構成する方法は複数あります。必要に応じて、複雑または単純にそれを行うことができます。このブログの目的は、最も使用されているオープンソースツールの1つを使用したPostgreSQLの監視について紹介することでした。また、構成は非常に柔軟であり、さまざまなニーズに合わせて調整できることもわかりました。

    そして、私たちは常にコミュニティに頼ることができることを忘れないでください。そのため、非常に役立つリンクをいくつか残しておきます。

    サポートフォーラム:https://support.nagios.com/forum/

    既知の問題:https://github.com/NagiosEnterprises/nagioscore/issues

    Nagiosプラグイン:https://exchange.nagios.org/directory/Plugins

    ClusterControl用のNagiosプラグイン:https://severalnines.com/blog/nagios-plugin-clustercontrol


    1. テンプレートデータベースコレクションのコーディングを変更する方法

    2. macOSにPostgreSQLをインストールする方法

    3. MySQLShowユーザー

    4. 並行プログラムの優先順位を変更する方法