監視テストの異常状態の再現方法
監視テスト時の異常状態の再現方法ですね。ツールを使用せずLinux標準コマンドで出来る方法だけを記載してます。
0. 目的
初心者で監視の試験を実施したいが、異常状態を再現させる手段が分からない方は参考にしてください。
1. リソース
1.1. CPU
CPU使用率を監視対象としている場合は、以下コマンドにて異常な状態を再現して監視異常を検知しアラートを出すことを確認してください。リソースの使用状況はvmstat
などで確認してください。
yes > /dev/null &
※リソースの状況を見つつ複数回実行してください。
いきなり、いくつも実行するとCPU使用率が100%となり、まったく応答しなくなることもあるので、注意すること。
終了したらプロセスをkillするのも忘れないようにしてください。(特にAWSなどのクラウドは)
1.2. Memory
Memory使用率を監視対象としている場合は、以下コマンドにて異常な状態を再現して監視異常を検知しアラートを出すことを確認してください。リソースの使用状況はvmstat
などで確認してください。
/dev/null < $(yes)
※リソースの状況を見つつ複数回実行してください。
これもいきなり、いくつも実行するとメモリ使用率が100%となり、まったく応答しなくなることもあるので、注意すること。
1.3. Disk
Disk使用率を監視対象としている場合は、以下コマンドにて異常な状態を再現して監視異常を検知しアラートを出すことを確認してください。
dd if=/dev/zero of=/dummy bs=[バイト数] count=[個数]
※リソースの状況を見つつ複数回実行してください。
これもいきなり、使用率100%を超えるファイルを作成してしまうと
/var/logのようにログが出力できなくなりシステム停止する場合があります。アラートが出力する容量に留めておくこと。
2. プロセス
2.1. プロセス
プロセスを監視対象としている場合は、Linuxのサービスを停止するコマンドを実行しプロセスがなくなった状態を再現して監視異常を検知しアラートを出すことを確認してください。
RHEL7系の場合
systemctl stop [サービス名]
また、Apacheのように複数プロセスが起動する場合はサービス停止コマンドでは全てのプロセスが停止してしまうので、個別に停止してください。
また、自動で再起動するミドルウェアも存在しますが、その場合は監視タイミングに上手くひっかかるように何度も停止してください。
kill -9 [プロセス番号]
3. ログ
3.1. システムログ
システムログを監視対象としている場合は、以下コマンドにて異常な状態を再現して監視異常を検知しアラートを出すことを確認してください。
logger -ip [facility].[priority] [message]
[message]の内容は、なるべく想定しているメッセージをそのまま記述してください。
ログ監視の場合、正規表現で監視していることが殆どだと思いますので、それに合ったメッセージにすることも留意してください。
3.2. その他ログ
システムログ以外のログを監視対象としている場合は、以下コマンドにて異常な状態を再現して監視異常を検知しアラートを出すことを確認してください。
echo "[監視対象メッセージ]" ›› [ログファイル名]
※ログファイルに直接リダイレクトすると不具合が出てしまうミドルウェアも存在しますので、プロセスを停止状態で実施してください。まリダイレクトを1つしか付けず過去のメッセージを全て消してしまうリスクもあるので事前にバックアップも取得しましょう。また、ログローテーションのタイミングにかち合わないように実施するタイミングも気を付けましょう。
4. ノード
4.1. ノード
ノードを監視対象としている場合は、以下コマンドにて異常な状態を再現して監視異常を検知しアラートを出すことを確認してください。
shutdown -h now
※環境によっては、テスト終了後の電源オンが困難な場合でリモートコンソールが使える場合はサーバのネットワークインターフェースをダウンさせるなどしてください。
5. SNMP
5.1. SNMP
SNMPを監視対象としている場合は、以下コマンドにて異常な状態を再現して監視異常を検知しアラートを出すことを確認してください。
snmptrap -v [version] -c [community name] [Manager IPaddress] [OID]