ELK Stack 만져보세요!(02) 키바나 설치)

저번에 계속.


저번 ElasticSearch가 설치되어 있으며 키바나가 설치됩니다.

설치


등록 창고


이 글에서는 일라스틱서치와 키바나를 다른 OS에 설치하기 때문에 창고에 로그인해야 하지만 같은 OS에 설치하면 필요 없다.
커뮤니케이션 팩을 확인하고 싶어서 다른 OS에 설치했습니다.
CentOS(Kibana)
sudo vi /etc/yum.repos.d/elasticsearch.repo
elasticsearch.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

매크로 패키지 설치


지난번에 기록을 잊어버렸는데 ELK Stack의 경우 버전을 지정하지 않으면 최신 버전이 설치됩니다.
업데이트 빈도가 매우 빠른 데다가 이터레이션의 업그레이드로 구조 설정과 GUI도 달라질 수 있으니 검증된 버전으로 한정하는 것이 좋습니다!
CentOS(Kibana)
sudo yum update -y
sudo yum install -y java-11-openjdk-devel
yum install kibana-7.14.1 -y

구성 파일 편집


기본값은 영어이기 때문에 일본어화된 설정 파일이 게재된다.
요점:
31행에서 "elasticsearch.hosts:["http://192.168.151.131:9200 및 ElasticSearch의 URL 설정
121행에 "i18n. localle:"ja-JP"를 입력하고 일본어화
의 2점.
CentOS(/etc/elasticsearch/elasticsearch.yml)
# Kibanaは、バックエンドサーバーによって提供されます。
# この設定では、使用するポートを指定します。
server.port: 5601

# Kibanaサーバーがバインドするアドレスを指定します。
# IPアドレスとホスト名はどちらも有効な値です。
# デフォルトは'localhost'ですが, これは通常リモートマシンが接続できないことを意味します。
# リモートユーザからの接続を許可するには, このパラメータにループバックでないアドレスを設定してください。
server.host: "0.0.0.0"

# プロキシ経由で運用している場合に、Kibanaをマウントするパスを指定できるようにします。
# Kibanaが受信したリクエストからbasePathを削除するかどうか、起動時の非推奨警告を防ぐには、
# `server.rewriteBasePath`設定を使用します。
# この設定は、スラッシュで終わることはできません。
#server.basePath: ""

# Kibana が `server.basePath` をプレフィックスとするリクエストを書き換えるか、リバースプロキシによる 
# 書き換えを要求するかを指定します。
# この設定は Kibana 6.3 以前は常に `false` でしたが、Kibana 7.0 からは 
# デフォルトで `true` になります。
#server.rewriteBasePath: false

# 受信するサーバーリクエストの最大ペイロードサイズをバイト単位で指定します。
#server.maxPayloadBytes: 1048576

# Kibanaサーバーの名前です。 
# これは表示のために使用されます。
server.name: "localhost"

# すべてのクエリに使用するElasticsearchインスタンスのURLです。
elasticsearch.hosts: ["http://192.168.151.131:9200"]

# この設定の値が true の場合、Kibana は server.host 設定で指定されたホスト名を使用します。
# この設定の値が false の場合、Kibana はこの Kibana インスタンスに接続しているホストの
# ホスト名を使用します。
#elasticsearch.preserveHost: true

# Kibana は Elasticsearch のインデックスを使用して、保存された検索、
# ビジュアライゼーション、ダッシュボードを保存します。
# Kibana は、インデックスがまだ存在していない場合、新しいインデックスを作成します。
kibana.index: ".kibana"

# ロードするデフォルトのアプリケーションです。
#kibana.defaultAppId: "home"

# Elasticsearch が基本認証で保護されている場合、これらの設定は、Kibana サーバーが起動時に 
# Kibana インデックスのメンテナンスを実行するために使用するユーザー名とパスワードを提供します。
# Kibanaユーザーは、Kibanaサーバーを介してプロキシされるElasticsearchで認証する必要があります。
#elasticsearch.username: "kibana"
#elasticsearch.password: "pass"

# SSLを有効にし、PEM形式のSSL証明書とSSL鍵ファイルへのパスをそれぞれ設定します。
# これらの設定により、Kibanaサーバからブラウザへの送信リクエストに対してSSLが有効になります。
#server.ssl.enabled: false
#server.ssl.certificate: /path/to/your/server.crt
#server.ssl.key: /path/to/your/server.key

# PEM形式のSSL証明書と鍵ファイルのパスを指定するオプション設定です。
# これらのファイルは、Elasticsearchに対するKibanaのアイデンティティを確認するために使用され、
# Elasticsearchのxpack.security.http.ssl.client_authenticationがrequiredに設定されている場合に必要となります。
#elasticsearch.ssl.certificate: /path/to/your/client.crt
#elasticsearch.ssl.key: /path/to/your/client.key

# Elasticsearchインスタンスの認証局のPEMファイルへのパスを指定できるオプション設定です。
#elasticsearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ]

# SSL証明書の有効性を無視するには、この設定値を「none」に変更してください。
#elasticsearch.ssl.verificationMode: full

# ElasticsearchがPingに応答するのを待つ時間をミリ秒単位で指定します。
# デフォルトは elasticsearch.requestTimeout 設定の値です。
#elasticsearch.pingTimeout: 1500

# バックエンドまたはElasticsearchからの応答を待つ時間をミリ秒単位で指定します。
# この値は正の整数でなければなりません。
#elasticsearch.requestTimeout: 30000

# Elasticsearchに送信するKibanaクライアント側ヘッダーのリスト。
# クライアント側のヘッダーを送信しない場合は、この値を[](空のリスト)に設定します。
#elasticsearch.requestHeadersWhitelist: [ authorization ]

# Elasticsearch に送信されるヘッダー名と値です。
# カスタムヘッダは、elasticsearch.requestHeadersWhitelistの設定に関わらず、
# クライアント側のヘッダで上書きすることはできません。
#elasticsearch.customHeaders: {}

# Elasticsearchがシャードからの応答を待つ時間をミリ秒で指定します。
# 0に設定すると無効になります。
#elasticsearch.shardTimeout: 30000

# Kibana起動時にElasticsearchが再試行するまでの待ち時間(ミリ秒)。
#elasticsearch.startupTimeout: 5000

# Elasticsearchに送信されたクエリをログに記録します。
# logging.verboseをtrueに設定する必要があります。
#elasticsearch.logQueries: false

# KibanaがプロセスIDファイルを作成するパスを指定します。
#pid.file: /var/run/kibana.pid

# Kibanaがログ出力を保存するファイルを指定することができます。
#logging.dest: stdout

# この設定の値をtrueにすると、すべてのログ出力が抑制されます。
#logging.silent: false

# この設定値をtrueにすると、エラーメッセージ以外のすべてのログ出力が抑制されます。
#logging.quiet: false

# この設定値をtrueに設定すると、システム使用情報やすべてのリクエストを含む
# すべてのイベントが記録されます。
#logging.verbose: false

# システムやプロセスのパフォーマンスメトリクスをサンプリングする間隔をミリ秒単位で設定します。
# 最小値は100msです。
# デフォルトは5000です。
#ops.interval: 5000

# ローカライズ可能な全ての文字列、日付、数値フォーマットに使用されるロケールを指定します。
# サポートされている言語は以下の通りです: 英語 - en , デフォルト , 中国語 - zh-CN .
i18n.locale: "ja-JP"

프로세스 시작


CentOS(Kibana)
systemctl start kibana
systemctl status kibana

시작 로그 확인


오류가 없음을 확인합니다.
"Kibana is now abilable(was unavilable)"라는 메시지를 확인하면 OK!
CentOS(/var/log/kibana/kibana.log)
{"type":"log","@timestamp":"2021-11-13T03:29:19-05:00","tags":["info","http","server","Kibana"],"pid":3049,"message":"http server running at http://0.0.0.0:5601"}
{"type":"log","@timestamp":"2021-11-13T03:29:19-05:00","tags":["info","plugins","monitoring","monitoring","kibana-monitoring"],"pid":3049,"message":"Starting monitoring stats collection"}
{"type":"log","@timestamp":"2021-11-13T03:29:19-05:00","tags":["info","plugins","securitySolution"],"pid":3049,"message":"Dependent plugin setup complete - Starting ManifestTask"}
{"type":"log","@timestamp":"2021-11-13T03:29:20-05:00","tags":["info","status"],"pid":3049,"message":"Kibana is now unavailable"}
{"type":"log","@timestamp":"2021-11-13T03:29:20-05:00","tags":["info","plugins","reporting"],"pid":3049,"message":"Browser executable: /usr/share/kibana/x-pack/plugins/reporting/chromium/headless_shell-linux_x64/headless_shell"}
{"type":"log","@timestamp":"2021-11-13T03:29:20-05:00","tags":["warning","plugins","reporting"],"pid":3049,"message":"Enabling the Chromium sandbox provides an additional layer of protection."}
{"type":"log","@timestamp":"2021-11-13T03:29:23-05:00","tags":["info","status"],"pid":3049,"message":"Kibana is now available (was unavailable)"}

연결 확인


고객 OS에서 웹 브라우저를 시작하고 "http://192.168.151.132:5601"에 액세스하면 다음과 같이 표시됩니다.
(오른쪽 아래 모서리의 경고를 무시할 수 있음)

키바나의 사용법은 양도를 수집한 후 해설을 진행한다.

보충(사람에 따라 다름)


내가 키바나를 처음 만났을 때 웹 페이지의 GUI가 표시되지 않았다.
/var/log/kibana/kibana.로그를 확인하면 키바나의 이유를 알 수 있습니다.
①Firewall 설정이 허용되지 않음
② 웹 브라우저를 차단하는 광고 디스플레이로 설정
왜냐하면 좀 빠져있어서...
①는 물론이고 ②상당히 힘들었던 것으로 알고 있으니 참고하세요
정상 작동을 확인했습니다!
다음에는 키바나를 설치할 예정입니다.

그룹별 조사(관심 있는 사람만 해당)


네트워크와 안전성을 좋아하는 사람으로서 키바나를 설치한 후 흐르는 가방은 미리 보고 싶은 곳이다.

Elastica Search-Kibana 간의 패킷 샘플


Kibana_ElasticSearch_Packet_HTTP.pcap 부분 캡처

Kibana 클라이언트 간의 그룹 샘플


client_Kibana_Packet_HTTP.pcap 부분 캡처

파일을 캡처하여git 공유


상기 포획 화면의 원시 로그는 아래git에서 공개되었습니다.
https://github.com/wakaprings/wireshark_zenn02.git
HTTP 통신이라면 통신 내용이 완전히 보이는 것을 확인할 수 있으니 Wireshark 등을 참조하세요.
이 정도면 별거 아니지만 파일비트에 감찰기록 같은 내용을 반문으로 쓴 날은'사고사건'이었죠!
HTTPS나 IPsec 등 암호화 통신을 이용하면 어느 정도 안전하다.
(기계학습의 진화와 규격의 진화가 치열한 이 시대에 암호화되어 안전하다고 해서는 절대 안 된다.)

좋은 웹페이지 즐겨찾기