Zabbixで基本的なICMP Pingチェックを実行する方法

ICMP pingの問題に対処したり、Zabbixでpingを設定したりしていませんか?確かに、ファイアウォールや特定の設定によってICMPパケットがブロックされている場合など、基本的なことが実際にはそれほど基本的でないというのは、ちょっと不思議な感じがします。監視システムが突然応答しなくなったり、ICMPチェックの設定に問題が生じたりする場合、通常はネットワークまたはファイアウォールのルールによってエコー要求または応答がブロックされていることが原因となっています。このガイドでは、Zabbixサーバーがネットワークデバイスやサーバーに問題なくpingを送信できるように、その問題を解決する手順を説明します。これらの調整を行えば、監視ダッシュボードにようやく意味のあるデータが表示されるようになり、アラートが「不明」モードのままになることもなくなるはずです。もちろん、WindowsとLinuxでは、必要以上に複雑な設定が必要になることもあります。

Windows Server および Linux で ICMP Ping 用のポートを開く方法は?

netsh または PowerShell を使用して Windows Server で ICMP を許可する

Windowsがサーバー上でデフォルトでICMP pingを許可していない場合は、ファイアウォールルールが受信Echoリクエストをブロックしている可能性があります。通常、WindowsはICMPを許可するはずですが、誰かが変更を加えたり、アップデートで設定がリセットされたりした場合は、手動で許可する必要があります。このような場合にnetshやPowerShellが役立ちます。

  • 管理者としてコマンドプロンプトを開き、次のコマンドを実行します。
netsh advfirewall firewall add rule name="ICMP Allow" protocol=icmpv4:8, any dir=in action=allow
  • このコマンドは、「はい、着信 ICMP エコー要求を許可する」というファイアウォール ルールを作成するので、ping が再び機能するようになります。
  • または、PowerShell を好む場合は、これを (管理者として) 実行します。
  • Set-NetFirewallRule -Name FPS-ICMP-ERQ-In -Enabled True -Profile Any -Action Allow

    これにより、組み込みのファイアウォールルールが有効になり、ICMPエコーリクエストが許可されます。変更はすぐに反映されますが、場合によっては再起動やネットワークのリセットが必要になることもあります。また、設定によってはすぐに反映されない場合があり、ファイアウォールのプロファイルやルールを再確認する必要があるかもしれません。必ずしもうまくいくとは限りません。

    Linuxでiptablesまたはfirewalldを使用してICMPを有効にする

    Linuxは通常よりシンプルですが、ディストリビューションによってはICMPがデフォルトで無効またはブロックされている場合があります。これを確認または修正するには、root/sudoアクセスが必要です。

    • iptables を使用している場合は、次のコマンドを実行して、エコー要求と応答を明示的に許可するルールを追加します。
    # iptables -I INPUT -p icmp --icmp-type echo-request -j ACCEPT # iptables -I OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

    注: これらのコマンドはルールをチェーンの先頭に挿入するため、すぐに反映されます。これらのルールを再起動後も維持するには、iptablesの設定を保存する(一部のディストリビューションでは「service iptables save」など)か、ディストリビューション固有の方法を使用する必要がある場合があります。

    firewalld を備えたディストリビューション (Fedora、RHEL、CentOS など) を使用している場合は、iptables をスキップして以下を使用できます。

    # firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p icmp -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT # firewall-cmd --reload

    このコマンドは、どこからでもICMPを許可する直接ルールを追加し、ファイアウォールルールをリロードします。簡単ですが、セキュリティの観点から本当に必要なルールであることを確認してください。

    fping をインストールして Zabbix にパスを設定する方法は?

    fpingがインストールされているか確認し、動作するか確認する

    fpingはZabbixのICMPチェックに最適なツールです。非常に軽量で信頼性も高いです。まずは、fpingがインストールされていることを確認してください。一部のLinuxディストリビューションではプリインストールされている場合もありますが、必ずしもそうとは限りません。以下の方法を試してみてください。

    fping -v

    バージョン情報が表示されれば問題ありません。表示されない場合はインストールしてください。

    • Ubuntu/Debian:sudo apt install fping
    • CentOS/RHEL: 最初に EPEL リポジトリを有効にする必要があります。
    • sudo yum install epel-releaseに続くsudo yum install fping

    インストールが完了したら、パスを確認してください。通常は/usr/bin/fpingにあります。何かおかしい点がある場合は、コマンドが別の場所にある可能性がありますので、 を確認してくださいwhich fping

    fping が にない場合は/usr/bin/fping、次のようにして Zabbix エージェントまたはプロキシ設定でパスを明示的に設定します。

    FpingLocation=/usr/bin/fping Fping6Location=/usr/bin/fping6

    これにより、ICMP チェックを実行するときに、Zabbix がどこにあるかを確実に認識できるようになります。

    ZabbixのICMP Pingテンプレート

    ほとんどのZabbixインストールには、テンプレートモジュールICMP Pingが既に付属していますが、バージョンによっては名前が多少異なる場合があります。このモジュールは主に以下の3つの機能を備えています。

    • ICMP ping — ホストが ping に応答するかどうかを確認します。
    • ICMP 損失– 失われたパケットの割合を追跡します。
    • ICMP 応答時間– ping にかかる時間をミリ秒単位で測定します。

    これらのチェックでは、 icmppingicmppnglossicmppingseなどの組み込みキーを使用します。これらはシンプルなチェックなので、Zabbixエージェントのインストールは不要です。SNMPまたはネットワークスキャンだけで実行できます。

    おもしろい事実: エージェントを必要としないすべての簡単なチェックは、公式ドキュメントで確認できます。

    これらのチェックには、パケットロスや応答遅延の増加を警告するトリガーがあります。 $ICMP_LOSS_WARN$ICMP_RESPONSE_TIME_WARNなどのマクロ値は、マクロタブで直接調整できます。これは、問題の兆候が現れた際に大量のアラートを受信したくない場合に便利です。

    たとえば、20% を超えるパケットが失われたり、応答時間が 150 ミリ秒を超えたりすると、Zabbix は「問題が発生しています」とささやきます。これは、ネットワークの障害が大きな問題になる前に検出する優れた方法です。

    Zabbixでホストを作成し、ICMP Pingテンプレートを接続する

    Windows Server(または任意のデバイス)をZabbixにICMP監視用に追加するのはそれほど難しいことではありませんが、どうしても抜け穴が出てきます。「設定」→ 「ホスト」「ホストの作成」を選択し、名前とグループを選択して、エージェントインターフェースセクションにホストのIPアドレスを入力してください。pingベースの監視であっても、整理整頓に役立ちます。

    テンプレートタブで、選択 をクリックし、テンプレートモジュール ICMP Pingを見つけて追加し、追加をクリックして確定します。簡単ですよね?

    保存したら、「監視」「最新データ」で状況を確認してください。新しいホストを選択し、「最終値」列でpingが返ってくるか、警告アイコンが表示されているかを確認してください。また、応答時間などの特定の指標をグラフ化して、ネットワークの健全性を視覚的に把握することもできます。

    pingが機能しない場合は、エラーが表示されるか、データが取得できません。通常は、ファイアウォールのルールまたはpingのパスを確認してください。Zabbixサーバーまたはエージェントを再起動するだけで問題が解決する場合もありますが、多くの場合、ファイアウォールまたはネットワークの問題です。

    とはいえ、ICMP pingはあくまでも始まりに過ぎません。デバイスの健全性についてより詳しい情報が必要な場合は、SNMPまたはZabbixエージェントの設定を検討する価値があります。しかし、手軽なチェックであれば、これが依然として最も簡単な方法です。