MetricbeatとElastic Cloudでシステムをモニタリング
Elastic Cloudは、Elasticsearch、Kibana、Beats、Logstashの開発者が提供する、ElasticsearchとKibanaのオフィシャルサービスです。詳しくはこちらの記事をご覧ください。
Elastic Cloudは、14日間無料トライアルをご利用いただけます。登録に必要なのはEメールアドレスだけ。クレジットカードは必要ありません。
今回の記事では、以下の内容についてご説明します。
- Elastic CloudでElasticsearchクラスタを作成する方法
- X-Pack Securityで新規ユーザーを追加する方法
- Metricbeatでシステムのメトリクスを収集、Elastic Cloud内のElasticsearchクラスタにメトリクスを転送、Metricbeatより自動的に読み込まれるKibanaのダッシュボードで可視化する方法
1. Elastic Cloudのアカウントを作る
Elastic Cloudのウェブページを開き、Elastic Cloudの無料トライアルを開始します。
注:既にElastic Cloudのアカウントをお持ちの場合は手順2に進んでください。
Eメールアドレスを入力し、トライアルを始める
をクリックします。確認メッセージが届きますので、Verify Email and Accept TOS
(メールアドレスを確認して利用規約に同意する)をクリックして手続きを行います。
Elastic Cloudのアカウントのパスワードを設定します。
2. ElasticsearchクラスタとKibanaインスタンスを開始する
パスワードを作成すると、自動的にElastic CloudのUIが開きます。https://cloud.elastic.coからも開くことができます。
Create Cluster
(クラスタを作成する)をクリックしてクラスタを新規作成します。
クラスタのサイズと地域を選択し、Create
(作成)をクリックすると、Elasticsearchクラスタが作成、準備されます。
Elasticsearchクラスタの作成が終わったら、生成されたスーパーユーザー(elastic
)のパスワードがポップアップで表示されます。一度閉じるとこのパスワードは再表示できませんので、安全な場所にコピーしておいてください。
パスワードを紛失した場合は、Elastic CloudコンソールのSecurity (セキュリティ)メニューからリセットすることができます。
Overview
(概要)メニューを開きます。ElasticsearchとKibanaにアクセスするURLが表示されます。
3. スーパーユーザーを作成する
KibanaのURLをクリックし、Kibanaのログイン画面を開きます。ユーザーには"elastic"と入力し、自動生成された(コピーしておいた)パスワードを入力してログインします。
Elastic CloudにはSecurityやMonitoringといったX-Packの機能がいくつか含まれます。
覚えやすいユーザー名やパスワードを使いたい場合は、Role Based Access Control (役割別のアクセス権設定)の機能で新しいスーパーユーザーを作成してください。Management
(管理)タブのSecurity (セキュリティ)から、Users
(ユーザー)を選択します。
+ Create User
(ユーザーを作成する)をクリックします。
ユーザー名、パスワード、フルネーム、Eメールアドレスを入力し、Role (役割)にはsuperuser
を選択して保存します。
これでお好きな名前の新しいスーパーユーザーのアカウントが作成されます。
一度ログアウトして再度ログインし、新しいアカウントが問題なく使えるかを確認してください。
4. Metricbeatの設定と実行
ElasticsearchとKibanaの設定が終わったので、データを転送してみます。このチュートリアルではMetricbeatを使います。
Metricbeatはシステムからあらゆるメトリクスを収集し、ElasticsearchやLogstashのインスタンスに転送してくれます。バイナリファイルとして実行されますので、お使いのオペレーションシステムに合ったファイルをダウンロードしていただく必要があります。Metricbeatのダウンロードページから、お使いのOSに合うファイルをダウンロードして展開してください。
展開するとmetricbeatのディレクトリにいくつかのファイルが見つかるはずです。
metricbeat
(Windows OSの場合はmetricbeat.exe
)のファイルで、Metricbeatを実行します。デフォルトでは、http://localhost:9200
で実行されているElasticsearchにデータが送信されるようになっていますので、Elastic Cloudクラスタに送信されるように設定を変更する必要があります。
metricbeat.yml
をお好きなコードエディタで開きます。
"localhost:9200"
を新しいElasticsearchクラスタのURLに変更します。
output.elasticsearch: #Array of hosts to connect to. hosts: ["localhost:9200"]
新しいユーザー名とパスワード(ユーザーを別途作成しなかった場合は、elasticと自動生成パスワード)を入力します。
username: "<user id>" password: "<password>"
yamlの文法に注意し、各行にはスペースを正しく入れてください。username: と password: は2スペース下げますが、その他はスペースは入れません。作成したユーザー名
とパスワード
を入力します。ユーザーを作成しなかった場合は、elasticと自動生成のパスワードを使用します。
metricbeat.yml
ファイルを保存します。その後デフォルトのメトリクスダッシュボードをKibanaに読み込むよう指示する-setup
オプションを指定してmetricbeatを実行します。
ヒント: Metricbeatの起動時に-eオプションを追加すると、実行中にログを確認することができます。
5. Metricbeatのダッシュボードを確認
Metricbeatを実行するときに-setup
オプションを追加したので、自動的にMetricbeatのDashboardとVisualizationがKibanaに読み込まれます。
Kibanaダッシュボードのメニューをクリックすると、新しいMetricbeatのダッシュボードが表示されます。システムのメトリクスがElasticsearchに転送されていることを確認してください。
この方法で皆さんもMetricbeatをシステムにデプロイできるはずです。お試しください!