10. Ubuntu Server のシステム監視ツール:包括的ガイド

Ubuntu Server のシステム監視ツールを習得することは、最適なパフォーマンスの確保、問題の診断、システムの信頼性の維持に不可欠です。このチュートリアルでは、リアルタイムのリソース監視、ディスク I/O、ネットワークアクティビティ、サーバーダッシュボードなど、Ubuntu サーバーで利用できる最高のシステム監視ツールを紹介します。


前の記事:

01. Ubuntu Server 入門 – SysOSX: AI & Cloud

02. 初めての Ubuntu サーバーのセットアップ方法:初心者ガイド – SysOSX: AI & Cloud

03.Ubuntu Server のための Linux コマンドラインの習得 – SysOSX: AI & Cloud

04. Ubuntu Server でのユーザーと権限の管理:包括的ガイド – SysOSX: AI & Cloud

05. Ubuntu Server のためのネットワークの基礎:包括的ガイド – SysOSX: AI & Cloud

06. Ubuntu Server へのソフトウェアのインストールと管理:完全ガイド – SysOSX: AI & Cloud

07.Ubuntu Server のパッチ適用と更新:包括的ガイド – SysOSX: AI & Cloud

08. Ubuntu サーバーのセキュリティ確保:強化と保護のための実践的な手順 – SysOSX: AI & Cloud

09. Ubuntu サーバーの監査とログ記録



使い方: htop と top によるリアルタイムリソース監視

入門: htop と top

次の2つのツール htop と top は、リアルタイムでシステムリソースを監視するための必須のコマンドラインツールです。CPU 使用率、メモリ消費量、実行中のプロセスなどの情報を表示します。

インストールと実行: htop (デフォルトでインストールされています)

インストール: htop、実行コマンド:

sudo apt update
sudo apt install htop

起動方法: htop、次のように入力します:

htop

主な機能と使用シナリオ: htop

htop は、次の用途に最適です:

  1. リソースを大量に消費するプロセスの特定:CPU またはメモリの使用量でプロセスを並べ替え、リソースを大量に消費するプロセスをすばやく見つけることができます。
  2. プロセスの終了: F9 を押すと、応答しないプロセスや問題のあるプロセスを htop インターフェースから直接終了できます。
  3. スレッドの監視:プロセスを展開すると、個々のスレッドとそのリソース使用量を表示できます。
  4. 列のカスタマイズ: F2 を押すと、表示を設定し、ディスク I/O やネットワーク使用率などのメトリクスを追加/削除できます。

使い方: top

top は、よりシンプルなツールで、Ubuntu サーバーにプリインストールされています。実行するには、次のようにします:

top

主なコマンド: top:

  • キー: Shift + p を押すと、CPU 使用率順に並べ替えます。
  • キー: Shift + m を押すと、メモリ使用率順に並べ替えます。
  • キー: q を押すと終了します。

パフォーマンスメトリクス取得のための sysstat のインストールと設定

概要: sysstat?

sysstat は、システムパフォーマンスメトリクスを長期的に収集および報告するためのツール群です。次のようなユーティリティが含まれています: iostat、 vmstat、および sar.

インストール: sysstat

インストール: sysstat:

sudo apt update
sudo apt install sysstat

設定: sysstat

設定ファイルを編集して、データ収集を有効にします:

sudo nano /etc/default/sysstat

次の値を変更します: ENABLED="false" を ENABLED="true"に変更します。保存して終了し、サービスを再起動します:

sudo systemctl restart sysstat

使い方: sysstat ツール

  • iostat:ディスク I/O パフォーマンスを監視します。iostat
  • vmstat:メモリ、CPU、I/O の統計情報を監視します。vmstat
  • sar:システムアクティビティの履歴レポートを生成します。 sar -u 5 10 # CPU usage every 5 seconds for 10 intervals

ディスク I/O とネットワークアクティビティの監視

ディスク I/O 監視: iotop

次のツールを使用してください: iostat ( sysstat由来)または iotop で、リアルタイムのディスク I/O を監視できます。

インストール: iotop:

sudo apt update
sudo apt install iotop

起動: iotop :

sudo iotop

ただし、次のツールを実行すると、次のエラーが発生する場合があります。ツール: iotop:

CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO %

エラーの修正: iotop 。

この問題は、カーネルに CONFIG_TASK_DELAY_ACCT 機能がないために発生します。この機能は、 iotop が SWAPIN と IO の割合を表示するために必要です。幸い、GRUB の設定を更新することで解決できます。

エラーを修正する手順

  • GRUB 設定ファイルを編集します:
sudo nano /etc/default/grub
  • 次のオプション: delayacct を GRUB_CMDLINE_LINUX_DEFAULT エントリに追加します。行が最初は空の場合(GRUB_CMDLINE_LINUX_DEFAULT="")の場合は、次のように更新します: GRUB_CMDLINE_LINUX_DEFAULT="delayacct" 行にすでに他のオプションが含まれている場合は、 delayacct を既存のオプションに追加し、スペースで区切ります。例:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash delayacct"
  • 変更を適用するために GRUB を更新します:
sudo update-grub
  • サーバーを再起動します:
 sudo reboot

    再起動後、エラーは解決され、 iotop は正しく動作するようになります。

    使い方:`iotop

    問題が修正されたら、 iotop を実行してディスク I/O を監視できます:

    sudo iotop
    
    

    を使ってできること: iotop

    • ディスク I/O の高負荷の原因となっているプロセスを特定します。
    • 読み取り/書き込み操作をリアルタイムで監視します。
    • プロセスをディスク使用量で並べ替えます。

    ネットワークアクティビティの監視

    使い方: iftop

    インストール: iftop:

    sudo apt update
    sudo apt install iftop
    

    起動: iftop :

    sudo iftop
    
    

    使い方: nload

    インストール: nload:

    sudo apt update
    sudo apt install nload
    

    起動: nload :

    nload
    
    

    Cockpit によるサーバーダッシュボードのセットアップ

    Cockpit とは?

    Cockpit は、サーバーを監視および管理するための Web ベースのグラフィカルダッシュボードです。CPU、メモリ、ディスク使用量、ネットワークアクティビティに関するリアルタイムの洞察を提供します。

    Cockpit のインストール

    Cockpit をインストールするには、次のようにします:

    sudo apt update
    sudo apt install cockpit
    

    Cockpit へのアクセス

    Cockpit サービスを開始します:

    sudo systemctl start cockpit.socket
    sudo systemctl enable cockpit.socket
    

    次のアドレスに移動して、ダッシュボードにアクセスします:

    https://<your-server-ip>:9090
    
    

    Cockpit の機能

    • システムパフォーマンスを視覚的に監視します。
    • サービス、ログ、ユーザーアカウントを管理します。
    • ディスク使用量とネットワークアクティビティを表示します。

    以下のツールは htop、 sysstat、および Cockpit がほとんどのサーバー監視ニーズに最適ですが、複雑な環境向けにさらに深い洞察と優れた可視化を提供できる他の高度なツールもあります。以下に、検討できるその他の監視ツールをいくつか示します:

    Prometheus と Grafana

    Prometheus

    Prometheus は、信頼性と拡張性を重視して設計されたオープンソースの監視およびアラートツールキットです。クラウドネイティブ環境で広く使用されており、分散システムやマイクロサービスの監視に特に適しています。

    主な機能:

    • 時系列データベース:タイムスタンプ付きのメトリクスを効率的に保存します。
    • 強力なクエリ言語(PromQL)で、メトリクスを分析できます。
    • アラートシステム:通知のために Alertmanager などのツールと統合されています。
    • プルベースのアーキテクチャ:Prometheus はターゲットからメトリクスを能動的に収集します。

    使用例:

    • 複数のサーバーにわたる CPU、メモリ、ディスクの使用量を監視します。
    • アプリケーション固有のメトリクス(HTTP リクエストのレイテンシ、エラー率など)を追跡します。
    • 異常なメトリクスやシステム障害に対するアラートを生成します。

    インストール手順:
    Ubuntu に Prometheus をインストールするには、次のようにします:

    sudo apt update
    wget https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz
    tar xvf prometheus-2.44.0.linux-amd64.tar.gz
    cd prometheus-2.44.0.linux-amd64
    ./prometheus
    

    次のアドレスに移動して、Prometheus にアクセスします:

    http://<your-server-ip>:9090
    
    

    Prometheus と Cockpit はどちらもデフォルトのポートが 9090 であることに注意してください。同時に使用する場合は、デフォルトのポートを変更することをお勧めします:
    Prometheus と Cockpit のポート競合の解決

    オプション 1:Prometheus のポートを変更する

    設定ファイルを変更することで、Prometheus が別のポートを使用するように設定できます。

    • Prometheus の設定ファイルを開きます:
     nano prometheus.yml
    
    • Prometheus の起動コマンドまたはサービスファイルで、 --web.listen-address フラグを追加または変更し、別のポートを指定します(例: 9091):
    --web.listen-address=:9091
    
    • 変更を適用するために Prometheus を再起動します:
     sudo systemctl restart prometheus
    
    • 新しいポートを使用して Prometheus にアクセスします:
     http://<your-server-ip>:9091
    

      オプション 2:Cockpit のポートを変更する

      Prometheus をポート 9090 のままにする場合は、Cockpit のデフォルトポートを変更することもできます。

      • Cockpit 用のカスタム設定ファイルを作成します:
      sudo nano /lib/systemd/system/cockpit.socket
      
      • 新しいポートを指定するために、次の行を追加します(例: 9092): ListenStream=9092
      • Cockpit サービスを再起動します:
      systemctl daemon-reload
      systemctl restart cockpit.socket
      
      • 新しいポートを使用して Cockpit にアクセスします: https://<your-server-ip>:9092

      オプション 3:リバースプロキシを使用する

      ポートを変更するのが理想的でない場合は、リバースプロキシを使用できます(例: Nginx または Apache)。これにより、デフォルトのポートを維持したまま、両方のサービスを異なる URL にマッピングできます。

      例:

      • Prometheus: 
      http://<your-server-ip>/prometheus
      
      • Cockpit: 
      http://<your-server-ip>/cockpit
      

        推奨事項

        両方のツールを頻繁に使用する場合:

        将来の参照や他の管理者のために、ポートの変更を文書化してください。

        次の値を変更します: Prometheus のポートを 9091 に変更します。Cockpit はデフォルトのポート番号 9090.


        Grafana

        Grafana は、Prometheus とシームレスに統合する強力な可視化プラットフォームです。動的なダッシュボードを作成して、メトリクスと傾向を可視化できます。

        主な機能:

        • マルチソース対応:Prometheus、Elasticsearch、MySQL などと連携します。
        • カスタムダッシュボード:インタラクティブなグラフ、ヒートマップ、テーブルを作成できます。
        • アラート:主要メトリクスのしきい値に基づいてアラートを設定します。
        • 共有:ダッシュボードをチームと簡単に共有できます。

        使用例:

        • Prometheus が収集したサーバーパフォーマンスメトリクスを可視化します。
        • 長期的な傾向を監視し、容量計画を改善します。
        • 複数のソースからのデータを統一されたダッシュボードに表示します。

        インストール手順:
        Ubuntu に Grafana をインストールするには、次のようにします:

        sudo apt update
        sudo apt install -y software-properties-common
        sudo wget -q -O - https://packages.grafana.com/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/grafana.gpg > /dev/null
        sudo echo "deb [signed-by=/usr/share/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
        sudo apt update
        sudo apt install grafana
        sudo systemctl start grafana-server
        sudo systemctl enable grafana-server
        sudo systemctl status grafana-server
        

        次のアドレスに移動して、Grafana にアクセスします:

        http://<your-server-ip>:3000
        
        

        Nagios

        Nagios は、最も人気のあるインフラストラクチャ監視ツールの 1 つです。サーバー、ネットワークデバイス、アプリケーションに対する包括的な監視とアラートを提供します。高度にカスタマイズ可能で、機能拡張のためのプラグインをサポートしています。

        主な機能:

        • サーバーの健全性の監視:CPU、メモリ、ディスク使用量などを追跡します。
        • ネットワーク監視:ルーター、スイッチ、ファイアウォールの問題を検出します。
        • アラート:メール、SMS、または Slack との統合を介して通知を送信します。
        • 豊富なプラグインライブラリ:データベース、Web サーバー、その他のサービスを監視します。

        使用例:

        • 本番環境の重要なサーバーとアプリケーションを監視します。
        • ディスク容量の不足や CPU 使用率の高騰に関するアラートを受け取ります。
        • ネットワークデバイスの稼働時間と可用性を監視します。

        インストール手順:
        Ubuntu に Nagios をインストールするには、次のようにします:

        sudo apt install nagios4 nagios-plugins
        sudo a2enmod rewrite cgi
        systemctl restart apache2
        sudo systemctl status nagios4
        sudo systemctl enable nagios4
        sudo systemctl start nagios4
        
        

        Nagios には、監視対象を設定するための追加設定が必要です。詳細な設定については、次のドキュメントを参照してください: Nagios ドキュメント.


        Netdata:リアルタイムシステム監視ツール

        Netdata は、システムパフォーマンスに関する詳細な洞察を提供する軽量のリアルタイム監視ツールです。インストールが簡単で、メトリクスを可視化するための美しい Web インターフェースが付属しています。


        ステップ 1:システムパッケージを更新する

        ターミナルで次のコマンドを実行して、システムが最新の状態であることを確認します:

        sudo apt update
        sudo apt upgrade
        

        ステップ 2:Netdata をインストールする

        デフォルトの Ubuntu リポジトリから Netdata をインストールします:

        sudo apt install netdata
        
        

        ステップ 3:Netdata を設定する

        リモートアクセスを許可するために、Netdata の設定ファイルを編集します:

        sudo nano /etc/netdata/netdata.conf
        
        

        次のフィールドを探します: bind socket to IP フィールドで、 127.0.0.1 をサーバーの IP アドレスに置き換えます:

        [global]
        bind socket to IP = <your-server-ip>
        
        

        ファイルを保存し、Netdata サービスを再起動します:

        sudo systemctl restart netdata
        
        

        ステップ 4:ファイアウォールを設定する

        Netdata のデフォルトポート(19999)へのアクセスを許可し、ファイアウォールを有効にします:

        sudo ufw allow 19999
        sudo ufw allow OpenSSH
        sudo ufw enable
        sudo ufw status
        

        ステップ 5:Netdata の Web インターフェースにアクセスする

        Web ブラウザを開き、次のアドレスに移動します:

        http://<your-server-ip>:19999
        


        ツールの比較

        ツール最適な用途使いやすさ可視化アラート
        Prometheus大規模なメトリクス収集中程度限定的はい
        Grafana高度なダッシュボード簡単優れているはい
        Nagiosインフラストラクチャ監視中程度基本的はい
        Netdata軽量なリアルタイム監視簡単優れているはい

        結論

        Ubuntu サーバーの監視は、パフォーマンスの維持、問題の診断、ダウンタイムの防止に不可欠です。次のようなツール、 htop、 top、 sysstat、Cockpit などのツールにより、管理者はリソースを効果的に監視できます。コマンドラインツールとグラフィカルダッシュボードのどちらを好む場合でも、このガイドでは堅牢な監視システムを構築するために必要なすべてを説明します。

        次回: 集中ログ記録と監視

        次の記事では、 集中ログ記録と監視 に焦点を当て、サーバー管理とパフォーマンス追跡をさらに効率化します。取り上げるトピックは次のとおりです:

        • 集中ログ記録のための rsyslog または syslog-ng のセットアップ。
        • ログをリモートのログサーバーに転送し、整理と分析を改善します。
        • Ubuntu サーバーを次のような堅牢な監視プラットフォームと統合すること: Nagios、 Zabbix、または Prometheus により、システムの健全性とパフォーマンスについてより深い洞察を得ることができます。

        ログインフラストラクチャを集中化し、監視ツールを活用してサーバー運用を効果的に最適化する方法については、次回をお楽しみに!

        2 thoughts on “10. System Monitoring Tools for Ubuntu Server: A Comprehensive Guide”

        コメントを残す