
AWS入門 初心者が覚えておくべきAWSの基本
「クラウド導入・運用サービス」のサービス企画担当のとりとりです。
前回は、エージェントをインストールしたホストに対し、プロセスやログ等のOS以上のレイヤ監視設定やURLによる外形監視設定をやりました。
今回は、ネットワーク死活監視設定を行います。ネットワークの死活監視を実装することでネットワークレイヤとの切り分けができるようになります。それでは、実際にやってみましょう。
アプリケーションサーバー(以降、APサーバー)とデータベースサーバー(以降、DBサーバー)がAWS上に各1台ずつある構成とします。各サーバーの初期設定及び、Mackerelエージェントのインストールは完了しているものとします。
前回との構成上の差分は、他システムのサーバーが異なるVPCで稼動しており、VPCピアリングによって接続されています。他システムのサーバーは別会社によって運用されており、詳細な条件はわからない想定とします。
インスタンス:t2.micro(1vCPU,メモリ:1GiB)
OS:Amazon linux2
ディスクサイズ:8GiB
APサーバー:Apache v2.4
DBサーバー:PostgreSQL 9.6
上記やりたいことを実現するために、Mackerelの設定を行います。
前回の繰り返しになりますが、基本監視項目以外を監視するためには2つの方法があります。
まずは前者のプラグイン集を利用して行います。
公式チェックプラグインの入手コマンド
yum install mackerel-check-plugins
「check-ping」というプラグインがポート監視に対応しておりますので、エージェントの設定ファイル(mackerel-agent.conf)をテキストエディタで編集します。
エージェントの設定ファイルを編集するコマンド(例)
vi /etc/mackerel-agent/mackerel-agent.conf
設定ファイル最下部に下記のような文章を追記します。
[plugin.checks.check-ping-sample]
command = ["check-ping", "-H", "宛先IPアドレス", "-n", "5", "-w", "2000"]
-H:IPアドレス
-n:Ping試行回数
-w:タイムアウトになるまでの待機時間(ms)
追記が終わったら保存し、エージェントを再起動します。
エージェントを再起動するコマンド(例)
systemctl restart mackerel-agent
設定が完了すると、Hostsページの右側に、監視項目が追加されています。
これは前回とほぼ同じ手順で追加することができました。
Mackerelにはスクリプトやプログラムで独自の値を収集して、カスタムメトリックとして投稿することができます。公式プラグインに載っていないミドルウェアのメトリクスを収集したい場合などに使うことができます。Ping監視は公式プラグインがありますが、公式プラグインではOK/NGのどちらかしか判定できないので、応答時間をもとにアラートの種類を変えたり、ネットワークの品質判定として応答時間を残しておきたい、という場合にはカスタムメトリックを使います。
カスタムメトリックを投稿する手順は以下のようになります。
上記に従って、まずはスクリプトファイルを作成します。
スクリプトファイルを作成するコマンド(例)
sudo vi /etc/mackerel-agent/mackerel-plugin-ping.sh
※今回はエージェントの設定ファイルと同じフォルダに作成しておりますが、必要に応じて読み替えてください。
スクリプトファイル本文
#!/bin/bash
LIST=$*
PREFIX="ping"
TIME=$(date +%s)
for PING in ${LIST:=localhost}; do
v=$(ping -t 5 -c 2 ${PING} | awk -F '/' '/round-trip|rtt/{print $5; }' | tr -d ms)
s=$(echo $PING | sed 's#\.#_#g')
echo ${PREFIX}.${s} ${v:=2000} $TIME
done
参考サイト:https://blog.hiroaki.home.group.jp/2017/09/mackerelping.html
スクリプトファイルの作成が終わったら、ファイルのアクセス権限を変更します。
ファイルのアクセス権限を変更するコマンド(例)
sudo chmod 755 /etc/mackerel-agent/mackerel-plugin-ping.sh
※アクセス権はサーバーの設定に合わせて適宜読み替えてください。
次に、エージェントの設定ファイル(mackerel-agent.conf)をテキストエディタで編集します。
エージェントの設定ファイルを編集するコマンド(例)
vi /etc/mackerel-agent/mackerel-agent.conf
設定ファイル最下部に下記のような文章を追記します。
[plugin.metrics.ping]
command = "/etc/mackerel-agent//mackerel-plugin-ping.sh 宛先IPアドレス"
※複数の宛先IPアドレスを指定することも可能です。その場合は宛先IPアドレス間に半角スペースを入れて追記してください
追記が終わったら保存し、エージェントを再起動します。
エージェントを再起動するコマンド(例)
systemctl restart mackerel-agent
設定が完了すると、Hostsページの下部に、新しいグラフが追加されています。
余談ですが、VPCピアリングを行った宛先と、そうでない宛先を指定しています。2インスタンスとも同一アベイラビリティゾーンにあるのですが、VPCピアリングはネットワーク遅延の観点ではそれほど大きな差にならないことがわかります。
ネットワークの監視に、SNMPを使っていることもあるかと思います。
Mackerelの公式プラグインには、「mackerel-plugin-snmp」というプラグインがありますので、SNMPマネージャとして起動しているサーバーにこのプラグインを入れておくと、SNMPの可視化が可能となります。ただし、SNMPトラップによる監視のプラグインは用意されていないので、この場合は別途検討が必要になります。
ネットワーク死活監視まで完了したことで、インフラの監視は概ね完了しました。多彩なプラグインが用意されているのが非常にありがたく、またプラグインを自分で作ったり公開できることもあって、時代にあったプラットフォームだと感じています。
次回は、AWS/Azureインテグレーション機能を使って、PaaS機能の監視を実装してみたいと思います!お楽しみに!
24時間365日対応可能なクラウド監視・運用代行で、あなたをシステム運用から解放します!
クラウドとオンプレミスでの運用を比較しながら解説!!
自社のクラウド導入に必要な知識、ポイントを
この1冊に総まとめ!
初めての自社クラウド導入、
わからないことが多く困ってしまいますよね。
クラウド化のポイントを知らずに導入を進めると、以下のような事になってしまうことも・・・
など、この1冊だけで自社のクラウド化のポイントが簡単に理解できます。
またNTT東日本でクラウド化を実現し
問題を解決した事例や、
導入サポートサービスも掲載しているので、
ぜひダウンロードして読んでみてください。
NTT東日本なら貴社のクラウド導入設計から
ネットワーク環境構築・セキュリティ・運用まで
”ワンストップ支援”が可能です!
特に以下に当てはまる方はお気軽に
ご相談ください。
クラウドを熟知するプロが、クラウド導入におけるお客さまのLAN 環境や接続ネットワーク、
クラウドサービスまでトータルにお客さまのお悩みや課題の解決をサポートします。
相談無料!プロが中立的にアドバイスいたします
クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。