0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

metricbeat+elasticsearch+kibanaでUbuntuマシンのメトリックを可視化。

Posted at

マシンの構成は以下です。すべて1台で賄うことも可能なので、参考までに。

  • メインPC
  • kibanaの画面を確認します
  • Ubuntu server
  • 集計対象マシンです。metricbeatをインストールします。
  • elasticsearch & kibana(ベースOSはubuntu)
  • 集計結果を集約するマシンです。
  • IP: 192.168.11.101

apt用のリポジトリにelasticsearchを追加

パッケージマネージャを使って管理したほうがアップデート/削除がしやすいので、aptを使ってインストール出来るように設定します。

elasticsearchリポジトリの認証用鍵を追加

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

後のインストールに必要になるコンポーネントをインストール

sudo apt-get install apt-transport-https

elasticのリポジトリをaptソースリストに追加

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

参考:https://www.elastic.co/guide/en/beats/metricbeat/current/setup-repositories.html

elasticsearchのインストール

sudo apt-get update && sudo apt-get install elasticsearch

elasticsearchを外部からアクセスできるようにする

すべてを1台のマシンで済ませる場合には不要です。
今回は集計対象のマシンとelasticが動くマシンが別なので、外部からアクセスできるように設定を追加しました。

/etc/elasticsearch/elasticsearch.yml
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0
#
# Set a custom port for HTTP:
#
http.port: 9200
#
# For more information, consult the network module documentation.
transport.host: localhost
transport.tcp.port: 9300
#

設定が終わったので、elasticsearchを起動します。

systemctl restart elasticsearch

kibanaのインストール

sudo apt-get update && sudo apt-get install kibana

kibanaも同様に外部からアクセス可能なように設定を行いました。

/etc/kibana/kibana.yml
server.host: "0.0.0.0"

設定が終わったので、kibanaを起動します。

systemctl restart elasticsearch

集計対象ホストマシンにmetricbeatをインストール

sudo apt-get update && sudo apt-get install metricbeat

elasticsearchホストを設定

/etc/metricbeat/metricbeat.ymlに以下のような設定項目があるので、環境に合わせてセット。
ローカルホストでelasticsearchを動かす人は不要と思われます。
今回は異なるマシンのelasticsearchにアクセスするため、別ホストのIP/ポートをセットしました。

/etc/metricbeat/metricbeat.yml
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["192.168.11.101:9200"]

集計対象をセット

環境にあわせて集計したいmodulesを有効化します。
今回はUbuntuマシンの情報が取りたいだけなので実施しませんでしたが、参考までに。

metricbeat modules enable apache mysql

利用な可能なmodulesは以下で確認できます。
デフォルトはsystemが有効になっているため、特に作業はありません。

root@ubuntu ~# metricbeat modules list
Enabled:
system

Disabled:
aerospike
apache
aws
beat
beat-xpack
ceph
cockroachdb
consul
coredns
couchbase
couchdb
docker
dropwizard
elasticsearch
elasticsearch-xpack
envoyproxy
etcd
golang
graphite
haproxy
http
jolokia
kafka
kibana
kibana-xpack
kubernetes
kvm
logstash
logstash-xpack
memcached
mongodb
mssql
munin
mysql
nats
nginx
oracle
php_fpm
postgresql
prometheus
rabbitmq
redis
statsd
traefik
uwsgi
vsphere
windows
zookeeper

metricbeatの起動

systemctl restart metricbeat

kibanaから集計結果の確認

メインPCのブラウザから192.168.11.101:5601にアクセス。
左側のInfrastructureをクリックして情報を確認。

192.168.11.101_5601_app_kibana.png

192.168.11.101_5601_app_infra (1).png

まとめ

kibana, metricbeat, elasticsearchの接続のための情報を書いただけなのに、しっかり情報が取得できているのが楽で凄いですね。
metricbeatさえ入れておけば他のモジュールもすぐに集計開始できそうなので、また情報があれば記事にします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?