TelegrafでNagiosプラグインを監視する方法

TelegrafでNagiosプラグインを監視する方法【設定ガイド】

Table of Contents

Great systems are not just built. They are monitored.

MetricFire runs Graphite and Grafana as a fully managed service for growing engineering teams, taking care of storage, scaling, and version updates so your team doesn't have to. Plans start at $19/month, billed per metric namespace rather than per host, and include engineer-staffed support. Integrations work natively with Heroku, AWS, Azure, and GCP, and data is stored with 3× redundancy in SOC2- and ISO:27001-certified data centres.

はじめに

Nagiosは、サーバー、ネットワーク機器、アプリケーション、サービスなど、ITインフラのパフォーマンスと健全性を監視するために使用されるオープンソースの監視システムです。リアルタイムのアラート提供、問題が深刻化する前の早期発見、システム障害の迅速な検知と対応による稼働時間の確保が可能であるため、広く利用されています。より堅牢なプラットフォーム上でNagiosプラグインを監視することで、スケーラビリティの向上、より詳細な分析、およびパフォーマンスデータの長期保存が可能になります。このアプローチにより、システムの健全性に対する可視性が向上し、リアルタイムのアラートが可能になるほか、Nagiosの標準機能を超えるトレンドや異常に関する詳細な洞察が得られます。

本記事では、Telegrafエージェントを使用してNagiosプラグインのパフォーマンス統計情報を収集し、データソースに転送する方法について詳しく解説します。

Telegrafエージェントの導入

Telegrafは、InfluxDBをベースに構築されたプラグイン駆動型のサーバーエージェントであり、データベース、システム、プロセス、デバイス、アプリケーションからメトリクスやイベントを収集・送信します。TelegrafはGo言語で記述されており、外部依存関係のない単一バイナリとしてコンパイルされ、必要なメモリ使用量も最小限です。Telegrafは多くのオペレーティングシステムに対応しており、幅広いシステムパフォーマンスメトリクスを収集・転送するための便利な出力プラグインおよび入力プラグインを多数備えています。

Telegrafのインストール(Linux/RedHat)

Telegrafをダウンロードして解凍します(最新バージョンや各種OS向けのインストールコマンドについては、Telegraf公式ドキュメントをご確認ください)。パッケージおよびファイルは通常、/etc/telegraf/ にインストールされます。
Ubuntu/Debian
sudo wget https://dl.influxdata.com/telegraf/releases/telegraf_1.30.0-1_amd64.deb
sudo dpkg -i telegraf_1.30.0-1_amd64.deb

RedHat/CentOS


sudo wget https://dl.influxdata.com/telegraf/releases/telegraf-1.30.0-1.x86_64.rpm
sudo yum localinstall telegraf-1.30.0-1.x86_64.rpm

出力先の設定

Telegrafは、Kafka、Graphite、InfluxDB、Prometheus、SQL、NoSQLなど、さまざまな出力先へデータを送信するよう設定できます。

この例では、TelegrafをGraphite出力で設定します。現在データソースをホスティングしていない場合は、次の手順を進めるために、MetricFireのHosted Graphiteによる14日間無料トライアルを開始してください。

Hosted Graphiteアカウントを利用することで、データソースに加え、アラート機能や可視化ツールであるHosted Grafanaも利用できます。

Graphite出力を設定するには、ダウンロードしたTelegraf設定ファイル /etc/telegraf/telegraf.conf を任意のテキストエディタで開きます。その後、以下の変更を加えてください。

まず、以下の行のコメントを解除します。

[[outputs.graphite]]

次に、server行のコメントを解除し、以下のように編集します。

servers = ["carbon.hostedgraphite.com:2003"]

最後に、prefix行のコメントを解除し、以下のように編集します。

prefix = "<YOUR_API_KEY>.telegraf"
もしくは、別のtelegraf出力を設定し、他のデータソースへメトリクスを転送することも可能です。

Nagiosプラグインの設定

この記事では、すでに監視インフラの一部としてNagiosプラグインを利用していることを前提としています。ただし、テスト目的で設定したい場合のために、簡単なインストールガイド(Ubuntu向け)を以下に示します。

  • Nagiosプラグインのインストール(Linux-Ubuntu):
    • sudo apt install nagios-plugins
    • sudo apt install nagios-plugins-contrib
  • 一部の追加プラグイン(contrib)では、Perl依存パッケージが必要になります:
    • sudo apt-get install libmonitoring-plugin-perl
  • これで、インストール済みプラグインの一覧を以下で確認できます:
    • /usr/lib/nagios/plugins

TelegrafでNagiosプラグインを監視する方法【設定ガイド】 - 1

  • loadプラグインをテストします:/usr/lib/nagios/plugins/check_load -w 10,20,30 -c 15,25,35
    • 期待される出力:OK - load average: 3.10, 2.59, 2.25|load1=3.100;10.000;15.000;0; load5=2.590;20.000;25.000;0; load15=2.250;30.000;35.000;0;
  • 次に、Nagios統計情報を収集するためのシンプルなbashスクリプトを /usr/local/bin/collect_nagios_metrics.sh に作成します。

#!/bin/bash # Check system load /usr/lib/nagios/plugins/check_load -w 10,20,30 -c 15,25,35 # Check disk space on root partition /usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /

# Check memory
/usr/lib/nagios/plugins/check_memory -w 80 -c 90


# Commented out below to reduce metric overhead
# Check swap usage
# /usr/lib/nagios/plugins/check_swap -w 20% -c 10% # Check PING on an IP # /usr/lib/nagios/plugins/check_ping -H <hostname-IP> -w 100,20% -c 200,40% # Check SNMP OS/version # /usr/lib/nagios/plugins/check_snmp -H 127.0.0.1 -C public -o 1.3.6.1.2.1.1.1.0
# Check for patterns in the syslog # sudo /usr/lib/nagios/plugins/check_log -F /var/log/syslog -O /tmp/nagios_log_check_syslog.state -q "error" # sudo /usr/lib/nagios/plugins/check_log -F /var/log/syslog -O /tmp/nagios_log_check_syslog.state -q "warning" # Check time to resolve DNS on a URL # /usr/lib/nagios/plugins/check_dns -H <your-url.com> # Check MySQL queries # /usr/lib/nagios/plugins/check_mysql_query -H localhost -u nagios -p nagios_password -q "SELECT COUNT(*) FROM information_schema.processlist WHERE command='Query';" # /usr/lib/nagios/plugins/check_mysql_query -H localhost -u nagios -p nagios_password -q "SELECT 1;"

# Check for APT critical package updates and available upgrades
# /usr/lib/nagios/plugins/check_apt

# Check number of users logged in # /usr/lib/nagios/plugins/check_users -w 5 -c 10

# Check time synchronization
# /usr/lib/nagios/plugins/check_ntp -H <hostname>

# Check RAID
# /usr/lib/nagios/plugins/check_raid

# Check hardware sensors
# /usr/lib/nagios/plugins/check_sensors

# Check system uptime
# /usr/lib/nagios/plugins/check_uptime

# Check SSH
# /usr/lib/nagios/plugins/check_ssh -H <hostname>
  • スクリプトに実行権限を付与します:sudo chmod +x /usr/local/bin/collect_nagios_metrics.sh
  • 注:Nagios CoreNagios XIなど、他のNagiosバージョンでも同様の設定が可能です。これらのバージョンはブラウザインターフェースを利用したい場合に便利ですが、この例では基本的な nagios-plugins パッケージからデータを送信する方法のみを紹介しています。

TelegrafでNagiosプラグインを監視する方法【設定ガイド】 - 2

Telegrafでスクリプトを読み込むよう設定

Telegrafには、多くの一般的な技術やサードパーティソースから幅広いデータを収集できる入力プラグインが多数用意されています。この例では、ローカルの collect_nagios_metrics.sh スクリプトからメトリクスを収集・転送する方法を紹介します。

まず、telegraf.conf ファイル内で inputs.exec セクションを検索し、[[inputs.exec]] 行のコメントを解除します。

 
[[inputs.exec]]

次に、commands 行と data_format 行のコメントを解除し、以下のように編集します。


      commands = ["/usr/local/bin/collect_nagios_metrics.sh"]
      data_format = "nagios"

    最後に、変更内容を保存し、以下のコマンドでtelegrafデーモンを実行します。これにより、出力内容から設定エラーがないか確認できます。


    telegraf --config telegraf.conf

    注:一部のNagiosチェックでは、大量のユニークメトリクスが生成される場合があります。その場合は、システムパフォーマンス監視向けに別のTelegraf入力プラグインの利用を検討するとよいでしょう。

    execプラグイン(nagiosデータフォーマット使用時)の詳細や追加設定オプションについては、公式GitHubリポジトリをご確認ください。

    MetricFireのHosted Graphiteでカスタムダッシュボードとアラートを作成

    MetricFireは、サーバー、データベース、ネットワーク、プロセス、デバイス、アプリケーションからメトリクスやデータを収集・可視化・分析できる監視プラットフォームです。MetricFireを利用することで、インフラ内の問題を容易に特定し、リソースを最適化できます。MetricFireのHosted Graphiteを利用すれば、監視ソリューションを自前でホスティングする負担がなくなり、より重要な作業に時間を割くことができます。

    Hosted Graphiteのアカウントを作成し、前述の手順でTelegrafエージェントをサーバーへ設定すると、メトリクスはHosted Graphiteバックエンドへ転送・タイムスタンプ付与・集約されます。

    1. メトリクスは、次のGraphite形式で送信・保存されます:metric.name.path <numeric-value> <unix-timestamp>

    2. ドット区切りの記法はツリー構造のデータ形式を提供するため、効率的なクエリが可能です。

    3. メトリクスはHosted Graphiteアカウント内に2年間保存され、それらを利用してカスタムアラートやGrafanaダッシュボードを作成できます。

    Hosted GraphiteのHosted Grafanaでダッシュボードを構築

    Hosted Graphite UIで、Dashboardsへ移動し、「+ New Dashboard」を選択して新しい可視化を作成します。

    その後、Editモードへ入り、Query UIを使用してGraphiteメトリクスパスを選択します(Hosted Graphiteアカウント経由でGrafanaへアクセスしている場合、デフォルトのデータソースはHosted Graphiteバックエンドになります)。

    HGデータソースは、指定したパスに一致するすべてのメトリクスを取得するためのワイルドカード(*)検索にも対応しています。

    さらに、groupByNode()のようなGraphite関数を適用し、複数メトリクスの値を単一の(AVG)値としてまとめることができます。

    TelegrafでNagiosプラグインを監視する方法【設定ガイド】 - 3

    Grafanaには、さまざまな可視化設定、表示のカスタマイズ、単位設定に加え、ダッシュボード変数やイベントアノテーション設定などの高度な機能も多数用意されています。

    上記の例では、メトリクスシリーズのインデックス4に対して「instance」というダッシュボード変数が設定されています。詳細についてはHosted Graphiteのダッシュボードドキュメントをご確認ください。

    Graphiteアラートの作成

    Hosted Graphite UIで、Alerts => Graphite Alertsへ移動し、新しいアラートを作成します。アラート名を設定し、alerting metricフィールドへクエリを追加し、このアラートが何を監視するものか説明文を入力します。

    TelegrafでNagiosプラグインを監視する方法【設定ガイド】 - 4

    次に、Alert Criteriaタブを選択してしきい値を設定し、通知チャネルを選択します。デフォルトの通知チャネルは、Hosted Graphiteアカウント登録時に使用したメールアドレスです。ただし、Slack、PagerDuty、Microsoft Teams、OpsGenie、カスタムWebhookなどの通知チャネルも簡単に設定できます。通知チャネルの詳細についてはHosted Graphiteの公式ドキュメントをご確認ください。

    TelegrafでNagiosプラグインを監視する方法【設定ガイド】 - 5

    まとめ

    システムパフォーマンスの監視は、重要なインフラコンポーネントの可用性、信頼性、および最適な動作を確保するために非常に重要です。リソースのボトルネック、障害、異常な使用パターンなどの問題を事前に特定することで、企業はダウンタイムを防ぎ、障害による影響を最小限に抑えることができます。Nagiosは、サーバー、アプリケーション、サービスを継続的に監視することでリアルタイムのインサイトを提供し、管理者が問題を早期に検知し、より大きな問題へ発展する前に是正措置を講じられるようにします。

    ダッシュボードやアラートなどのツールは、リアルタイムの可視化、問題のプロアクティブな特定、過去トレンドの分析、そして情報に基づく意思決定を支援することで、データをさらに有効活用できるようにします。これらは、堅牢で効率的なインフラを維持するうえで欠かせない要素です。

    無料トライアルに登録して、今すぐインフラ監視を始めましょう。また、デモを予約し、監視ニーズについてMetricFireチームへ直接ご相談いただくことも可能です。

    You might also like other posts...
    metricfire May 28, 2026 · 2 min read

    TelegrafとMetricFireでRedisを監視する方法【設定手順を解説】

    本記事では、TelegrafとMetricFireを使用してRedisを監視する方法を解説。Telegraf Agentの設定、Redis入力プラグインの構成、Grafanaダッシュボードやアラート作成まで、Redis監視の手順をステップごとにご紹介します。 Continue Reading

    metricfire May 25, 2026 · 3 min read

    TelegrafとMetricFireで始めるPostgreSQL監視ガイド

    本記事では、TelegrafとMetricFireを使ってPostgreSQLを監視する方法を解説。メトリクス収集、Grafanaダッシュボード作成、Graphiteアラート設定まで、DBパフォーマンス監視の手順を詳しくご紹介します。 Continue Reading

    metricfire May 20, 2026 · 3 min read

    Lokiのパフォーマンス監視を簡単に実現するTelegraf活用法

    本記事では、Telegrafを使ってLokiのパフォーマンスメトリクスを収集・監視する方法を解説。取り込みレート、クエリ遅延、キャッシュ効率、リソース使用率を可視化し、Hosted GraphiteとGrafanaで効率的な監視環境を構築できます。 Continue Reading

    header image

    We strive for 99.95% uptime

    Because our system is your system.

    14-day trial 14-day trial
    No Credit Card Required No Credit Card Required