ドキュメントあけましておめでとうございます。僕の中では2019年はまだ9月くらいなんですが、世間はもう2020年に突入しているらしいですね。2019ということでインストールだけして放置する事態が続いていました。以前のエントリで述べた通りこのマシンがぶっ壊れ、新たなマシンを調達したことでメモリが8GBに増えたので再び動かしてみることに。運用しているアプリケーションのログをリアルタイムで収集して可視化するところまで持っていきます。一応メトリックのモニタリングしたいなあとは思いつつもなかなか手を出さない状況が続いていたんですよね。今回はとりあえずログを記録する部分を構成していきます。Logstashをまとめたプロダクト群を指します。Luceneベースの分散型検索エンジンで、構造化データと非構造化データの両方に対応し、柔軟なクエリを実行したりスケーリングすることで大規模なデータ処理を行うことができます。KibanaはElasticsearch上のデータを管理・可視化するツールで、Elasticsearchが備えるクエリ機能によってさまざまな角度からデータを見ることができます。DockerDockerはOSレベルで仮想化した環境をコンテナ単位で提供するソフトウェアです。特定のサービスを実際のマシン上ではなく、コンテナ単位で実行することでシステム環境への変更を局所化し、1台のサーバで複数のサービスを分離して実行できます。あるコンテナでの動作に問題が生じた場合、そのコンテナのみを削除することでそのほかの環境に影響を及ぼさずに済むといった利点があります。ElasticsearchやKibanaを直接サーバに入れていると壊したりしたときに面倒そうなので、一度削除してから改めてDockerコンテナで動かすことにしました。docker-composeで複数のコンテナを1発立ち上げできるし気軽に壊せていいと思います。LTS上に立てていきます。DockerDockerの公式ドキュメントに沿ってコマンドを叩けばOK。そのまま利用しようとすると権限がないと怒られます。denied使うたびにsudoするのも煩雑ですが、自分をdockerグループに追加すれば解決します。docker1度ログアウトしてからシェルを開きなおせば実行可能に。docker-compose公式ドキュメントでLinuxのタブを見ながら進めればOKです。一応最新のバージョンをGitHubで確認したうえで必要に応じてURLのバージョン部分を変更します。コンテナを立ち上げる早速Elasticsearchの公式ドキュメントを見ながら以下のような感じにdocker-compose.ymlを記述。localKibanaの設定においてElasticsearchのホストは設定でつけたサービス名(es)として指定します。Elasticsearchが動いているのはesコンテナであるため、ここでlocalhostと指定するとKibanaのコンテナ自身を指すので注意が必要です。Elasticsearchは基本的に複数のノードで1クラスタを構成しますが、個人のテスト用途なのでdiscovery.type=single-nodeの指定が入っています。Performance」)のでbootstrap.memory_lock=trueを指定しています。http://localhost:9200/_nodes/process?prettyでmlockallがtrueになればOK。-dで立ち上げた後、しばらく待ってからホストの9200番ポートにアクセスしてみると起動していることが確認できます。yetとだけ表示されます。connectionsと出力される間は待っておく必要があります。インデックスが作成された後に起動するとマスター選出とシャードの配置を待ってからでないとKibanaが動き出さないっぽいです。思ってたより時間がかかる印象(single-nodeなのに)。/_cat/shards?h=index,shard,prirep,state,unassigned.reasonを叩くとstateがUNASSIGNED、resasonがCLUSTER_RECOVEREDとなっているシャードが出ている間は一服したほうが良さげ。lessで確認したほうが楽そう。ElasticsearchとKibanaの起動が確認できたので、次回はElasticsearchにログを投入してみます。コメントをキャンセルメールアドレスが公開されることはありません。付いている欄は必須項目です次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。高専プロコンサイトコンテンツイチ押し記事このサイトについてプライバシーポリシーpaltee.net。