Developerを、許可をうけて翻訳したものです。31へパッケージの提供がおこなわれていますが、まだRHELには含まれていません。デーモンを紹介しました。含まれようとしています。あなた自身およびチームのために、なぜこのようなサービスを設定するべきか、どうやって設定するかを検討する時期になっています。デバッグ情報と、ソースコードを配布するためであることを思い出してください。クライアントサポートにより、透過的にすぐにそれらのデータを入手することができます。コマンドをすべて実行してから再度試す必要がなくなります。利用できることで、いつでもどこでもデバッグを行えます。ここでは、「なぜ」について説明しました。次は、「どうやって」を見ていきましょう。サーバーを実行するべきです。独自のソフトウェアを構築している場合には、ビルドおよびソースツリーがどこかに存在しているはずです。debuginfodを実行するには、以下を実行します。これらのツリーをすべて定期的に再スキャンし、実行可能ファイルおよびデバッグデータすべてと、そこから参照されるソースファイルをすべて利用可能にします。パラメーターを参照)。これらのツリーをすべて定期的に再スキャンし、RPM内のすべての実行可能ファイルとデバッグファイルを利用可能にします。ファイルを自動的に対応づけします。プロセスで自然に実行できます。ディストリビューションの一部となるソフトウェアをデバッグする必要がある場合は、もうすこし話が難しくなります。サーバーを設定するようになるまでは、私達は自前でやる必要があります。幸いなことに、これはそれほど難しくありません。結局のところ必要なのは、ディストリビューションの関連パッケージがインストールされているマシン、または単にダウンロードされたマシンだけです。.必要に応じて繰り返します。ディスクに納まる限りでワイルドカードを使用します。debuginfodを実行できます。-i)、フィルタリング、何かしらの方法での再構成は不要です。コピーにディレクトリーをスキャンさせるだけです。クライアント設定これで1つまたは複数のサーバーを実行していて、debuginfoの同じツリーまたは異なるツリーをスキャンできる状態になりました。クライアントと通信させる方法は?シンプルで明白な解決法は、知っているすべてのサーバーを列挙することです。etc.ルックアップのたびに、クライアントはすべてのサーバーにクエリを一度に送信し、要求された情報を報告する最初のサーバーが「勝ちます」。この戦術は機能しますが、いくつかの欠点があります。このURLのリストをすべてのクライアントに伝達する必要があります。第二に、コンテンツを集中的にキャッシュする機会がないため、各クライアントは(HTTPの用語で)オリジンサーバーからコンテンツを個別にダウンロードする必要があります。この問題には単純な対策があります:フェデレーションです。サーバーはクライアントとしても機能します。$DEBUGINFO_URLSのリストが設定されている場合は、要求はアップストリームサーバーに転送されます。その後、正しい応答の結果をキャッシュして、リレーします。同じオブジェクトへの次の要求は、キャッシュ(キャッシュ保持制約の対象)から提供されます。サーバーのフェデレーション階層を設定できます。することで、設定ファイルの集中化とキャッシュの局所化が可能になります。それぞれは、その上位ピアのリストで構成できます。サーバーを実行することも可能になります。フェデレーションがツリーであるか、または有向非巡回グラフであることを確認します。サイクルはまずいです。サーバー管理これで1台以上のサーバーが実行され、それらに依存するクライアントができました。それらをうまく実行させ続けるにはどうしたらいいですか?現実的な問題がいくつかあります。これは、インデックス中およびインデックス後におけるリソースの使用です。ストレージに集中しています。ファイルを解析する必要があります。1%まで拡大する可能性があります。この側面が問題でない場合は、この次の段落について心配する必要はありません。debuginfodを実行すると便利です。オプションを使用すると、ファイル名に正規表現を指定して、含めるか除外を指定できます。バージョンがあり、サブセットのみを追跡したいとします。名前がパターンに一致しないファイルをスキップできます。サーバーに多数のコアがある場合、debuginfodはコマンドラインで指定されたパスごとに1つまたは2つのスレッドを開始するため、スキャンパスを多数のサブパスに分割することを検討してください。実際の同時実行数は慎重に管理されるため、パスリストの数を多く指定する際に心配はいりません。/path以下のようにします。/path/*ELF、DWARF、またはRPMアーカイブが非常に大きい場合は、各ストレージサーバーの近くで実行されるdebuginfodの複数のコピー間でスキャンタスクを分割することを検討できます。ワイルドカードに加えて包含パスと除外パスを使用して、各debuginfodプロセスにデータのサブセットのみを与えることができます。debuginfodサーバーがどのように連携できるかについては、上記で説明しました。この機能を使用して、何もスキャンせず、安定したシャード全体にクエリを委任する単一のフロントエンドdebuginfodを作成します。手作業でネットワークサーバーをシェルで実行することは、昔ながらの方法で遊ぶのには適しています。深刻な展開の場合は、debuginfodサーバーをスーパーバイザシステムで管理する必要があります。debuginfodはプレーンシェルで非常にうまく動作するため、systemdサービスまたはコンテナ内で動作します。コンテナーイメージを公開する計画があります。サーバーが実行されたら、それを監視して実行し続けることをお勧めします。テキストログは標準出力とエラーストリームに送られ、systemdジャーナルやOpenShiftなどのツールが出力を収集できます。詳細なトレースを生成するには、-v冗長オプションを追加します。これは、Prometheusエクスポート形式の定量的データソースです。サーバースレッドの現在の状態かについての内部統計を提供します。さまざまな種類の異常を検出するためにアラートシステムまたは他のプログラムを接続するのは難しくありません。debuginfodサービスがインターネットや公衆などの信頼境界を越えて提供されるとすぐに、セキュリティが問題になります。「man」ページには、このようなサービスがユーザーとサービスオペレーターの両方にとって安全であるために必要な対策について、非常に多くの注意が示されています。非常に難しいわけではありませんが、HAProxyを使用するなどの、TLS暗号化や負荷制御などの通常のHTTPフロントエンド保護は必須です。debuginfodのインデックス作成を信頼できる(敵意のない)バイナリに制限することも重要です。将来はどうなりますか?Debianフォーマットパッケージをすぐにサポートし、そのエコシステムの人々も最大限に活用できるようにしたいです。kojiでプロトタイプ化しています。管理しやすくする機能や、おそらくソースバージョン管理システムとの統合も想定しています。アーリーアダプター(あなたです!)からの提案も歓迎します。この記事が、あなたのモチベーションを高め、独自のdebuginfodサービスをセットアップするのに役立つことを願っています。elfutils-devel@sourceware.orgメーリングリストでご連絡ください。CephFSの脅威まいど。各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。