Linuxツールセットを使用してシステム活動レポートを生成し配信する方法 - パート3
システムエンジニアとして、システムのリソースの利用状況を示すレポートを作成する必要があることがよくあります。その理由は、1) 最適に利用されていることを確認するため、2) ボトルネックを防ぐため、3) スケーラビリティを確保するため、などです。
よく知られているネイティブのLinuxツール(ディスク、メモリ、CPUの使用状況をチェックするために使用されるものなど)に加えて、Red Hat Enterprise Linux 7は、レポート用に収集できるデータを強化するための2つの追加ツールセットsysstatとdstatを提供しています。
この記事では両方について説明しますが、まずは古典的なツールの使用法について確認しましょう。
ネイティブLinuxツール
dfを使用すると、ファイルシステムごとのディスクスペースとi-nodeの使用状況を報告できます。両方を監視する必要があります。なぜなら、スペースが不足していると、追加のファイルを保存できなくなるからです(場合によってはシステムがクラッシュすることさえあります)。i-nodeが不足すると、対応するデータ構造と共に追加のファイルをリンクできなくなり、同じ効果が生じます:ディスクにファイルを保存できなくなります。
df -h [Display output in human-readable form]
df -h --total [Produce a grand total]
df -i [Show inode count by filesystem]
df -i --total [Produce a grand total]
duを使用すると、ファイル、ディレクトリ、またはファイルシステムごとのファイルスペースの使用量を推定することができます。
例えば、ユーザーの個人ファイルすべてを含む/homeディレクトリがどのくらいのスペースを使用しているか見てみましょう。最初のコマンドは、全体の/homeディレクトリによって現在使用されているスペースを返し、2つ目のコマンドはサブディレクトリ別に分けたリストも表示します:
du -sch /home
du -sch /home/*
見逃さないで:
- Linuxディスクスペース使用量をチェックするための12の‘df’コマンドの例
- ファイル/ディレクトリのディスク使用量を調べるための10個の'du'コマンドの例
ツールセットから欠かせないもう一つのユーティリティはvmstatです。これを使うことで、プロセス、CPUおよびメモリの使用状況、ディスクのアクティビティなどに関する情報を一目で確認できます。
引数なしで実行すると、vmstatは最後の再起動以来の平均値を返します。この形式のコマンドを時々使用することはできますが、サンプル間に定義された時間間隔を設けて、一定量のシステム使用率のサンプルを連続的に取得する方がより有用です。
例えば、
vmstat 5 10
5秒ごとに取得された10サンプルを返します:
上の画像に見られるように、vmstatの出力は列に分かれています:プロセス、メモリ、スワップ、IO、システム、および CPU。各フィールドの意味は、vmstatのマニュアルページのフィールド説明セクションで確認できます。
vmstatはどこで役立ちますか?yum updateの前と最中のシステムの動作を見てみましょう:
vmstat -a 1 5
ファイルがディスク上で変更されるにつれて、アクティブメモリの量が増加し、ディスクに書き込まれるブロックの数(bo)や、ユーザープロセスに専念するCPU時間(us)も増加することに注意してください。
または、大きなファイルをディスクに直接保存している途中(dsyncによる):
vmstat -a 1 5
dd if=/dev/zero of=dummy.out bs=1M count=1000 oflag=dsync
この場合、予想通り、ディスクに書き込まれるブロックの数がさらに多くなることがわかりますが、タスクを処理する前にI/O操作が完了するのを待つ必要があるCPU時間の量も増加しています。
お見逃しなく: Vmstat - Linuxパフォーマンスモニタリング
その他のLinuxツール
この章のイントロダクションで述べたように、システムの状態と利用状況を確認するために使用できる他のツールも存在します(これらはRed Hatだけでなく、他の主要なディストリビューションの公式サポートされたリポジトリからも提供されています)。
sysstat パッケージには、次のユーティリティが含まれています:
- sar(システム活動情報を収集、報告、または保存する)。
- sadf(sarによって収集されたデータを複数の形式で表示します)。
- mpstat(プロセッサに関連する統計を報告します).
- iostat(デバイスとパーティションのCPU統計およびI/O統計を報告します)。
- pidstat(Linuxタスクの統計を報告する)。
- nfsiostat(NFSの入力/出力統計を報告する)。
- cifsiostat(CIFS統計を報告する)および
- sa1(システムアクティビティの日次データファイルにバイナリデータを収集して保存します。)
- sa2(/var/log/saディレクトリに日報を書く)ツール。
dstatは、これらのツールが提供する機能にいくつかの追加機能を加え、より多くのカウンターと柔軟性を提供します。各ツールの全体的な説明を得るには、それぞれyum info sysstatまたはyum info dstatを実行するか、インストール後に個々のマニュアルページを確認してください。
両方のパッケージをインストールするには:
yum update && yum install sysstat dstat
sysstatの主な設定ファイルは/etc/sysconfig/sysstatです。そのファイルには以下のパラメータが含まれています:
How long to keep log files (in days).
If value is greater than 28, then log files are kept in
multiple directories, one for each month.
HISTORY=28
Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31
Parameters for the system activity data collector (see sadc manual page)
which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
Compression program to use.
ZIP="bzip2"
sysstatがインストールされると、2つのcronジョブが追加され、有効になります。/etc/cron.d/sysstat内で、最初のジョブはシステムアクティビティの会計ツールを10分ごとに実行し、レポートを/var/log/sa/saXXに保存します。ここでXXは月の日を示します。
したがって、/var/log/sa/sa05 には月の5日からのすべてのシステムアクティビティレポートが含まれます。これは、上記の設定ファイルのHISTORY変数にデフォルト値を使用していることを前提としています。
*/10 * * * * root /usr/lib64/sa/sa1 1 1
2番目のジョブは、毎日11:53 PMにプロセス会計のデイリーサマリーを生成し、それを/var/log/sa/sarXXファイルに保存します。ここでXXは前の例と同じ意味を持つ。
53 23 * * * root /usr/lib64/sa/sa2 -A
例えば、今月の6日の午前9時30分から午後5時30分までのシステム統計を出力し、LibreOffice CalcやMicrosoft Excelを使用して簡単に閲覧できる.csvファイルに保存することを望むかもしれません(このアプローチでは、チャートやグラフを作成することも可能です)。
sadf -s 09:30:00 -e 17:30:00 -dh /var/log/sa/sa06 -- | sed 's/;/,/g' > system_stats20150806.csv
代わりに、上記のsadfコマンドで-dの代わりに-jフラグを使用して、システム統計をJSON形式で出力することもできます。これは、たとえば、Webアプリケーションでデータを消費する必要がある場合に役立ちます。
最後に、dstatが提供するものを見てみましょう。引数なしで実行すると、dstatはデフォルトで-cdngyを仮定します(それぞれCPU、ディスク、ネットワーク、メモリページ、システム統計の略)、そして毎秒1行追加されます(実行はいつでもCtrl + Cで中断できます)。
dstat
.csvファイルに統計を出力するには、–outputフラグに続けてファイル名を使用します。これがLibreOffice Calcでどのように見えるか見てみましょう:
私は、読書の便宜のためにdstatのマニュアルページとsysstatのPDF形式のマニュアルページを確認することを強くお勧めします。カスタムの詳細なシステムアクティビティレポートを作成するのに役立ついくつかの他のオプションが見つかるでしょう。
お見逃しなく: Sysstat - Linux使用状況監視ツール
要約
このガイドでは、システムの利用状況に関するレポートを作成するために、ネイティブのLinuxツールとRHEL 7に付属の特定のユーティリティの両方の使い方を説明しています。いつか、これらのレポートはあなたの親友のような存在になるでしょう。
このチュートリアルで取り上げていない他のツールを使ったことがあるかもしれません。その場合は、以下のフォームを使用して、他の提案や質問、コメントとともに、それらをコミュニティと自由に共有してください。
あなたからのご連絡を楽しみにしています。









