背景
自分用の備忘録です。
結局、公式サイトの通りにやっていけばいいのですが、、どうにも読みづらい。。
そこらへんをメモっときます。
、、、追記。
3年前に似たような記事書いてるわ。。
日頃使いにまで落とさないと、記憶から消えますね。
また3年後に同じ記事を書かないことを祈りつつ。
ソース情報
elasticsearch公式はここ。
導線がちょっと厄介で、Docのページに行った後に、タブ(初期だと "Solutions and use cases"となっている箇所)をDeploy and manageにする必要あり。
導入から起動まで
1. Elasticsearch
1.1. Install
これはシンプル。
Step 1, 2のみ実施でOK。
ログの最後に、初期パスワードが表示されるので、注意、でしょうか。
パスワードの変更手順の案内もありますが、これはサイトの後の工程にも書いてあります。
The generated password for the elastic built-in superuser is : ...
If this node should join an existing cluster, you can reconfigure this with
'/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token-here>'
after creating an enrollment token on your existing cluster.
You can complete the following actions at any time:
Reset the password of the elastic built-in superuser with
'/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'.
Generate an enrollment token for Kibana instances with
'/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'.
Generate an enrollment token for Elasticsearch nodes with
'/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node'.
-------------------------------------------------------------------------------------------------
ちなみに、、chatgptに聞くとジャーナルにログで出る、、とありますが、ない。
elasticsearch-setup-password autoを使えともありますが、、これも期待した動作はしません。
1.2. 設定
インストーラでサービス登録まではしてくれませんので、この段階ではまだESは起動してません。
先に設定を、、というのがサイトのStep 3,4ですが、、
とりあえず動かすなら、まるごとスキップでOK。
1.3. 起動
Step 5の部分ですね。粛々と。
キーストアの部分は飛ばします。
後でちゃんと調べないと。。
1.4. アカウントとパスワード
1の最後に、自動生成されたパスワード(ブートストラップパスワードと言うんですね、、)がありますが、変えるのがお作法とのこと。
Step6に従います。
ちなみにbinの頭にパスがないですが、これは/usr/share/elasticsarchの配下。
。。。なんですが、elasticsearch-reset-passwordだとランダム生成されたパスワードになります。
まぁ、変に人間が覚えられるよりはいいんでしょうけど、、
自分で指定するなら、末尾に -i オプションつければOK。
サービスは起動するようにはなっていないので、
# systemctl start --now elasticsearch
2. Kibana
2.1. Install
レポジトリは1で設定済みなので、apt install kibanaでOK。
こちらは、最後に色々表示したりはしません。
2.2. Kibanaの設定_準備(Elasticsearchとの接続)
Step3の工程。
トークンを払い出して、コピっときます。
。。。先にサービス起動して、2.4と一緒にやっちゃっていい気もしますが。
Step4は、こっちはパスはNG。
標準だとループバックでしか通信を受け付けないので、server.hostを変更しておく。
場所は/etc/kibana/kibana.yml
2.3. 起動
Step5ですね。
2.4. 設定
細かい記載ないです。
ブラウザでhttp://:5601二接続すると、token登録画面がはじめから出てくるので、2.2で生成したトークンを貼り付けます。
verification-codeの入力も求められるので、画面の指示通り、/usr/share/kibana/bin/kibana-verification-codeで確認して入力。
2.5. ログイン
elastic/1.4で設定したパスワード、でログイン。
。。。初回はやたら時間かかる、なんか失敗する。。
のですが、数回試すと入れる感じでした。。
2.6. やらんでいいこと
chatgptに聞くと、kibana_systemのパスワード設定と、kibana.ymlへの登録が求められますが、いりません。
3. Filebeat
3.1. インストール
サイトにはない、、ですかね。
apt install filebeatです。
3.2. 設定
サーバ接続
コメントアウト外しつつ。
output.elasticsearch:
hosts: ["<サーバのIP>:9200"]
preset: balanced
username: "elastic"
password: "..."
ssl.verification_mode: "none"
setup.kibana:
host: "<サーバのIP>:5601"
username: "elastic"
password: "..."
いくつかポイントが。
まずoutput.elasticsearchはログを流し込む設定ですが、自己証明書だとエラーが出るので、それを許すssl.verification_modeを設定。
setup.kibanaはダッシュボード登録。
雛形にはユーザ名とパスワードの記載ないですが、、書かないとエラーだすので、書きます。
取るログ
はじめは設定ファイル自体がないので、テンプレから生成するコマンドを。
# filebeat modules enable system
で、生成される/etc/filebeat/modules.d/system.yamlを編集します。
最初は全部false(ログ見ない)になっており、子の状態だとサービスも起動しません。
また、昨今のlinuxは/var/log/syslogとか吐かずにjournalに一本化されているので、その部分のフォローもして、、
以下のようにします。
# Module: system
# Docs: https://www.elastic.co/guide/en/beats/filebeat/8.19/filebeat-module-system.html
- module: system
# Syslog
syslog:
enabled: true
var.use_journald: true
# Authorization logs
auth:
enabled: true
var.use_journald: true
3.3. 起動
1行目で設定を登録(/etc/filebeat/modules.d/system.yaml.diabledから持ってくる)。
2行目はkibanaへのダッシュボード登録。
で、3行めでサービス起動して、ログの流し込み開始、と。
# filebeat setup
# systemctl enable --now filebeat
これで、kibanaでログがとれますね。
とりあえず
今日はここまで。
パスワードがfilebeatを置くサーバにばらまかれてしまって気持ち悪いし、、
要塞化の設定はかなりこってりやらないといけない気がします。
あと、kibanaでどう検索するかも把握しないといけませんが。。
まぁ、1つ1つやってきましょう。。