Tools前書きsysdigは、strace、tcpdump、lsofなどのよく知られたユーティリティの利点を1つのアプリケーションに統合した、まったく新しいシステムレベルの調査およびトラブルシューティングツールです。これだけでは不十分であるかのように、sysdigはシステムアクティビティを保存して後の分析のためにファイルをトレースする機能も提供します。O操作の表示から特定のプロセスが最も費やしたファイルの検索まで、一般的な問題の解決または監視ニーズを満たすために、豊富なスクリプトライブラリ(_chisels_と呼ばれる)がインストールと共に提供されます。時間、そしてその間のすべて。独自のスクリプトを記述して、ニーズに応じてsysdigをさらに強化することもできます。この記事では、最初に基本的なsysdigの使用方法を紹介し、次にsysdigを使用したネットワーク分析を検討します。LAMPサーバーでのネットワークトラフィックの監査の例が含まれます。例で使用されているVPSには大きな負荷はかかっていませんが、現在の監査タスクの基本を示すには十分です。開始する前に、これらの前提条件を満たしていることを確認してください。VPSでLAMPサーバーをセットアップします。[この記事]を参照してください。[sudoの非ルートユーザーアカウントが必要です。sysdigの実行に使用されますsysdigのインストールサーバーにログインして、次の手順を実行します。GPGキーを信頼するDraiosはsysdigの背後にある会社です。インストール自体を進める前に、yumはこのキーを使用して、ダウンロードしようとしているパッケージの信頼性を検証します。+`ツールを使用します。https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public次に、Draiosリポジトリをダウンロードし、それを使用するようにyumを構成します。LinuxやCentOSなどのスピンオフと100%互換性があります。Support(DKMS)パッケージをダウンロードし、他の依存関係をダウンロードするために必要です。+`という名前)を構築し、それを使用して操作する必要があるため、これが必要です。-r)ステップ4-sysdigパッケージをインストールするこれでsysdigをインストールできます。sysdigステップ5-非rootユーザーとしてsysdigを実行するセキュリティを確保するために、sysdigを実行するには非ルートユーザーが最適です。sysdigのカスタムグループを作成します。sysdig1人以上のユーザーをグループに追加します。sysdigsysdigのバイナリファイルを見つけます。`実行可能ファイル(およびそのバイナリのみ)を実行する権限を付与します。*グループに次の行を追加します。+`セクションの後に新しい行を追加しても問題ありません。システム上のsysdigの場所にパスを置き換えます。sysdigの実行sysdigは2つのモードで実行できます。サーバーアクティビティのリアルタイムストリームをライブで表示したり、後でオフラインで分析するためにシステム操作の記録をファイルに保存したりできます。2番目のオプションを使用する可能性が高いため、ここで説明します。システムアクティビティをファイルに保存するとき、sysdigはオペレーティングシステムの完全なスナップショットを取得するため、その期間中にサーバー上で発生するすべてがオフライン分析に使用できることに注意してください。sysdigコマンドを実行するときは、各オプションの前に1つの短いダッシュが付いていることを確認してください。コピーして貼り付けると、1つのダッシュが長いダッシュとして貼り付けられ、プログラムによって認識されないという問題が発生する場合があります。_基本的なsysdigコマンドを実行して、1000行のサーバーアクティビティをキャプチャしましょう。+`スイッチは、トレースファイルの圧縮を有効にするために使用されます。Cキーの組み合わせを押すことでsysdigの実行を中断できます。_ノミ-sysdigスクリプトの概要_Chisels_はsysdigスクリプトです。利用可能なノミのリストを表示するには、次のコマンドを実行する必要があります。LAMPサーバー上のネットワークトラフィックを監査するには、Netカテゴリで利用可能なノミを使用します。I/O特定のノミの詳細な説明は、その使用方法とともに次のように表示できます。`セクションは、引数をのみに渡す必要があるかどうかを示します。+`の場合、チゼルへの引数としてIPアドレスを渡す必要があります。ネットワークトラフィックの監査(実際の例)sysdigを使用して帯域幅の使用を分析し、ネットワークトラフィックに関する詳細情報を確認する方法の実際の例を見てみましょう。このテストから最高の結果を得るには、適切なトラフィックが生成されるように、サーバーにダミーのWebフォームを設定する必要があります。_手順1-オフライン分析のためにライブデータを保存する次のコマンドを発行して、データのログコレクションのキャプチャを開始します。4096sysdigを妥当な時間実行したままにします。sysdigの実行中にコマンドプロンプトがハングします。次に、ウェブブラウザでサーバーのドメインまたはIPアドレスにアクセスします。既存のページと存在しないページの両方にアクセスして、トラフィックを生成できます。この特定の例を機能させるには、ホームページにアクセスして、ログイン情報に好きなものを入力し、*ログインフォームを数回送信*してください。MariaDBデータベースへのクエリも自由に実行してください。Cを押してsysdigを停止します。その後、このチュートリアルの後半で説明する分析クエリを実行する準備が整います。実稼働環境では、サーバーの混雑時にsysdigデータ収集を開始できます。フィルターについて:クラスとフィールドsysdigデータのソートに入る前に、いくつかの基本的なsysdigコマンド要素について説明しましょう。Sysdigは、フィルターとしてクラスとフィールドを提供します。オブジェクト指向プログラミング理論に基づいた類推に従って、クラスをオブジェクトとして、フィールドをプロパティとして考えることができます。以下を使用して、クラスとフィールドの完全なリストを表示できます。-lクラスとフィールドを使用して、トレースファイルを分析するときに出力をフィルタリングします。+`をロードし、sysdigで次のテストを実行します。topprocs_net次のような出力が表示されるはずです。この出力に基づいて、情報に基づいたサポートされた判断呼び出しを行い、現在および将来の推定リクエストに対応するために利用可能な帯域幅を増やす必要があるかどうかを判断できます。それ以外の場合は、プロセスで使用できる既に利用可能な帯域幅の最大レートに適切な制限を設けることができます。+」によって消費されるネットワーク帯域幅をどのIPが使用しているかを知りたい場合もあります。+」であるソースを含む、サーバーへの上位ネットワーク接続が返されます。111.111.222.222:42494->your_server_ip:80元の送信元および宛先IPアドレスは、プライバシー上の理由から隠されていることに注意してください。このタイプのクエリは、サーバーにトラフィックを送信している上位帯域幅のユーザーを見つけるのに役立ちます。上記の出力を見た後、ソースIPアドレスの後の数字がポートを表していると考えているかもしれません。これらの番号は、sysdigによって記録されたイベント番号を示します。次に、特定のIPアドレスとApacheの間の接続をさらに詳しく調べます。`チゼルを使用すると、プロセスによって読み書きされたデータを表示できます。+`など)と組み合わせると、このチゼルはLAMPサーバーとそのクライアントIPアドレス。次のスイッチを使用すると、よりわかりやすく正確な方法で結果を表示できます。+:データバッファのテキスト部分のみを出力し、行末をエコーし​​ます(人間が読み取れるデータのみを表示したい)コマンドは次のとおりです。「++」を前の出力のクライアントIPアドレスに置き換えてください。proc.name=httpdそのIPアドレスによって行われた接続の数に応じて、かなりの出力が表示されます。404エラーの例を次に示します。server.</p></body></html>このタイプのクエリは、帯域幅を使用する上位IPアドレスによってどのような種類の接続が行われたかを正確に把握するのに役立ちます。IPアドレスが特定のページに頻繁にアクセスしていることがわかった場合、そのページのアセットをできる限り小さくして、帯域幅の使用を削減できます。rule]を作成して帯域幅の占有をブロックすることができますIP。ステップ4-キーワードでIPアドレスと交換されたデータを調べるキャプチャ間隔中のサーバーのアクティビティによっては、トレースファイルに非常に多くのイベントと情報が含まれる場合があります。したがって、前のセクションのコマンドの結果を手動で確認するには、実用的ではない時間がかかる可能性があります。そのため、イベントバッファーで特定の単語を検索できます。Webサーバー上で実行されているWebアプリケーションのセットがあり、ログイン資格情報がフォームを介してプレーンテキストとして渡されないようにする必要があるとします。前の例で使用したコマンドにいくつかのフラグを追加しましょう。」を使用して、読み取りイベントのみを(サーバーの観点から)調べることができます。検索キーワードを、自分のアプリケーションにとって意味のあるものに変更できます。次の出力は、ユーザー名とパスワードがプレーンテキストでクライアントからサーバーに渡されていることを示しています(したがって、十分な専門知識を持つ人であれば誰でも読めるようになります)。en-US,en;q=0.8login=&pass=&Submit=Login同様のセキュリティホールが見つかった場合は、すぐに開発者チームに通知してください。結論LAMPサーバー上のネットワークトラフィックの監査でsysdigを使用して達成できることは、想像力とアプリケーションの要求によってほとんど制限されます。上位の帯域幅のユーザーを見つけ、特定のIPからのトラフィックを調べ、アプリケーションからのリクエストに基づいてキーワードで接続を並べ替える方法を見てきました。現在の記事についてさらに質問がある場合、または現在のLAMP環境でsysdigを使用する方法についての提案が必要な場合は、以下のフォームを使用してコメントを送信してください。