FortiGate(フォーティゲート)のCPU使用率の上昇時に確認するべき事項をまとめました。
目次
対象バージョン
FortiOS 7.0,7.2
※上記に合致しない場合であっても同一の方法で対応できる可能性があります。
FortiGateのCPU使用率
FortiGateのCPU使用率は同時に利用しているFortiOS機能が多い場合に上昇します。
FortiNet社より、以下が例として挙げられています。
・VPN 高レベル暗号化
・すべてのトラフィックの集中スキャン
・すべてのトラフィックとパケットのロギング
・データ更新を頻繁に実行するダッシュボード ウィジェット
CPU使用率が過度に上昇した時の影響
・ネットワークが遅くなる可能性があります。
・通信に問題が出る可能性があります。
CPU使用率が上昇した時の対応方法
GUIもしくはCLIより、上昇原因となっているプロセスを特定します。
CLIのほうが詳細に結果を表示できるほか、CPUにも負荷をかけにくいとも思われます。
CLIにログインして、以下のコマンドを実行します。
get system performance top
上記のコマンドを実行して、上位に表示されるプロセスを原因と疑います。
表示されるエントリにおいて、右から2番目の値がCPU使用率です。
負荷をかけているプロセスを確認し、それに合わせた対応方法を検討します。
よく表示されるプロセスは以下の通りです。
ipsengine: トラフィックの侵入をスキャンする IPS エンジン
scanunitd: ウイルス対策スキャナー
httpsd: セキュア HTTP
iked: IPsec VPN トンネルで使用中のインターネット鍵交換 (IKE)
newcli: CLI にアクセスしているときは常にアクティブ
sshd: アクティブなセキュア ソケット接続があります
cmdbsrv: コマンド データベース サーバー アプリケーション
CPU使用率の無駄のなくしかた
次回の筐体購入時に、型番を上げるというのはよい考えですが、設定などを見直すことで改善することがあります。以下に例を記述します。
・ロギング量を減らす
必要のないログメッセージを残さないように設定するほか、ロギング対象とする重大度を一つ上げることを検討します。
・メモリロギングを無効化する
ログを全く残さないことは推奨されないため、Syslogなどを用いて、筐体上にログを残さないことを検討します。
こちらの記事をご覧ください。
・パケットロギングを無効化する
・同一のトラフィックを2度精査することを避ける
ネットワーク構成によっては、同一のトラフィックがFortiGateにおいて
インターフェースA=>インターフェースB
インターフェースB=>インターフェースC
というように流れることがあります。
SSL復号などを行っている可能性なども鑑みながら、精査を無効化することを検討します。
・セッションを維持する数を減らす
セッションタイマーを減らすことで、CPU負荷を下げられることがあります。
config system globalにおいて、tcp-timewaitの時間を短くすることを検討します。
(デフォルトではtcp-timewaitは10秒が暗黙的に加算されます。)
・System > Feature Visibility(表示機能)より必要ない機能を無効化します。
CPU使用率上昇時に自動的にデバッグコマンドを実行する
FortiGate6.4系よりCPU/メモリ使用率が任意の閾値を上回った場合にスクリプトを実行したうえで、その結果を電子メールで送る方法があります。以下をご参照ください。
Execute a CLI script based on CPU and memory thresholds
関連記事
障害発生時にCPU負荷理由を調査する流れが文面で確認できます。
【現場SE奮闘記 vol.1】社内ネットワークで「嵐」が起きたその日
記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。
当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。