SlideShare a Scribd company logo
© 2022 NTT DATA Corporation
オススメのJavaログ管理手法(コンテナ編)
2022年3月11日
株式会社NTTデータ 技術開発本部
佐藤 雄太
オープンソースカンファレンス2022 Online/Spring
© 2022 NTT DATA Corporation 2
自己紹介
⚫ 佐藤 雄太(さとう ゆうた)
⚫ 株式会社NTTデータ所属
技術開発本部先進コンピューティング技術センタ
⚫ OpenJDKに関連したR&Dとサポート支援
⚫ 元々はPythonでAIなど
⚫ (正直まだJavaよりPythonの方が好き)
⚫ なぜか最近JITのアセンブラ出力見てる
末永 恭正
OpenJDK
Reviewer
IcedTea
Committer
阪田 浩一
Java Champion
OpenJDK
Author
こんな人達がいる職場で働いてます!!
© 2022 NTT DATA Corporation 3
Java 17開発貢献数
1. Oracle
2. Red Hat
3. 個人
4. SAP
5. Tencent
6. Amazon
7.NTT DATA
8. Arm
9. Alibaba
10.Intel
© 2022 NTT DATA Corporation 4
このセッションの対象と想定している方
◼ Javaを使っている方
◼ ULログを知らずに使っている、復習したい人
◼ コンテナに興味がある方、使っている方
◼ ログ収集ツールに興味ある方
Javaのみに特化した内容ではありません!
初学者向けです!
© 2022 NTT DATA Corporation 5
セッションの流れ
◼ コンテナ+Javaの背景
◼ ULログについて基本的な解説
◼ コンテナ環境でのログに関する問題点、その解決策
◼ OSSツールを活用した解決策
◼ 解決策の実例紹介
© 2022 NTT DATA Corporation
何故にJavaでコンテナ?
6
© 2022 NTT DATA Corporation 7
コンテナを選ぶ理由
© 2022 NTT DATA Corporation 8
マイクロサービスアーキテクチャ
◼ コンテナ技術等を用いてそれぞれのサービスを
独立したプロセスとしてアプリケーションを動作
⚫ 負荷が高くなったサービスを個別にスケールできる
⚫ サービスがそれぞれ独立しているのでお互いを
そこまで気にする必要がない
⚫ ログはどう扱う?
その前に現在のJavaのログはどういうものか?
© 2022 NTT DATA Corporation
Java ULログについて
9
© 2022 NTT DATA Corporation 10
Java UL(Unified Logging) ログ
◼ Java 9より追加された新形式のログ取得方法
⚫ カテゴリ別、ログレベル別に出力を設定可能(-Xlog option)
⚫ 根本的原因解析(Root Cause Analysis)に必須
⚫ このログを提出することでサポートサービスへの問い合わせが
しやすい
© 2022 NTT DATA Corporation 11
Java UL(Unified Logging) ログの指定
–Xlog[<what>][:[<output>][:[<decorators>][:<output-options>]]]
-what : 出力内容をタグとレベルで選択
-output : 出力先の指定
-decorators : デコレータの指定
-output-options : ログローテート設定
*ちなみにデフォルトではWarningで標準出力に表示されます。
© 2022 NTT DATA Corporation 12
Java UL(Unified Logging) ログ ログレベルの変更
• デフォルト(ログレベルWarning)
• ログレベルinfo
java -Xlog:os=info -version
© 2022 NTT DATA Corporation 13
Java UL(Unified Logging) ログ 出力先の変更
java -Xlog:os=info:file=/home/log/ul.log:t,hn,l,tg:filecount=1,
filesize=1m -version
• ファイルに出力
© 2022 NTT DATA Corporation 14
Java UL(Unified Logging) ログ JITコンパイルログ出力
java -Xlog:jit+compilation=debug hello
• JITの動作を表示
© 2022 NTT DATA Corporation 15
Java UL(Unified Logging) ログ 有用性
◼ これらが出来ると何が良いか?
⚫ エラー時に見たいエラー文だけ確認できる
⚫ 前のログを指定された場所に保存して一括管理する、
後で確認したいときに参照できる
➢ とりあえずこれ一本で設定を指定できるので非常にSimple
© 2022 NTT DATA Corporation 16
設定したJava UL(Unified Logging) ログの確認方法
jcmd プロセスID VM.log list
Java Sleep.java
© 2022 NTT DATA Corporation 17
設定したJava UL(Unified Logging) ログの変更方法
jcmdプロセスID VM.log output=#1 output_options=os=info
実行中に出力の
ログレベルをinfoに変更
© 2022 NTT DATA Corporation 18
Java UL(Unified Logging) ログ 総評
◼ Java9より搭載されたULログ
⚫ Java 8以前に比べて設定が容易
⚫ レベルやカテゴリ別に設定可能
⚫ jcmdコマンドを使って実行後確認、変更などが容易
⚫ なによりプログラム書く側から情報が見やすい
◼ ただコンテナ環境だとある問題点が...
© 2022 NTT DATA Corporation
コンテナの問題点
19
© 2022 NTT DATA Corporation 20
コンテナ技術とは
◼ 簡単にいうとホストOS上で独立したプロセスとして
実行されるアプリケーション環境
https://www.docker.com/resources/what-container
© 2022 NTT DATA Corporation 21
現時点で主流なコンテナエンジン
• Docker
Docker社が開発
• Podman
Red Hat社が開発
互換性があるのでどちらもほぼ同じコマンドで使える
PodmanはK8sのように簡単なpodを作れる
(後述のログ分析で便利なので今回は後者を主に利用)
© 2022 NTT DATA Corporation 22
コンテナ技術の特徴
◼ 仮想環境と違いローカル環境を汚さず、コマンド一つで簡単に
コンテナ環境を作成可能、サービスとしても利用可能
◼ 揮発性という特徴を持つ
© 2022 NTT DATA Corporation 23
コンテナの揮発性について
◼ 揮発性(volatility)
Wikipediaによると、、
⚫ 液体の蒸発しやすい性質(相転移参照)(灯油、有機物など)
⚫ 揮発性メモリ: 電源を切ると記憶内容が消える
性質の記憶装置
© 2022 NTT DATA Corporation 24
コンテナの特徴 - 揮発性について
◼ コンテナ内で出力したデータは永続しない
⚫ なぜ?
➢コンテナ環境では起動するたびに新しいコンテナを
作成することを想定しているから
⚫ なんのため?
➢起動の際はどこの環境においても同じ状況を再現
(ポータビリティを重視)
© 2022 NTT DATA Corporation 25
コンテナの揮発性が起こすログの消失
再起動
⚫ コンテナ内のログは?
➢ 漏れなく消えます
© 2022 NTT DATA Corporation 26
コンテナの揮発性が起こすログの消失
消滅
Bye !!
© 2022 NTT DATA Corporation
コンテナでのログ運用(解決策)
27
© 2022 NTT DATA Corporation 28
揮発性が起こす問題点への解決策
⚫ 何はともあれ外部へ保存!!
コンテナは終了したらインスタンスが破棄されるのが
前提なのでその前に外部へ保存する
⚫ いくつかある方法としては
❖ 外部ストレージに直接送る
❖ ネットワークでブロードキャスト
❖ サイドカー形式で他のコンテナに移動
© 2022 NTT DATA Corporation 29
コンテナでのログ分析手法(理想図)
外部ボリューム
⚫ コンテナ内で出力されたログは
「外部」のボリュームへ
⚫ 外部ボリュームに置いた
ログを別コンテナで分析
⚫ そのためにもコンテナ側で設定
を変更、OSSツールを活用
© 2022 NTT DATA Corporation 30
助けてもらうついでに、、、(ログ分析ツールを活用)
cat ul.log | grep ….
© 2022 NTT DATA Corporation
コンテナ側での設定
31
© 2022 NTT DATA Corporation 32
永続ボリュームへの移行 Step1
外部ボリューム
© 2022 NTT DATA Corporation 33
そもそもコンテナにおけるファイルシステムとは?
⚫ コンテナでは仮想環境と違いホストから分離されている
⚫ これを可能にしているのがnamespaceというLinuxの技術
⚫ コンテナではプロセスIDやファイルシステムなどが
コンテナごとに分離されている
(つまりコンテナからローカル環境が見えない)
⚫ じゃあどうする?
➢ マウントさせましょう
© 2022 NTT DATA Corporation 34
コンテナでのマウント(現時点で主な3種類)
bind volume tmpfs
メリット • 前準備が不要なので
一番簡単
• 複数コンテナでの
運用の際の
安全性の高さ
• ホストのメモリ上に
保存するので
読み取りが高速
デメリット • ホスト環境に依存するこ
と(ホスト環境への
意図しない書き込み)
• volume create
の前処理が必要
• Linuxのみ対応
• コンテナ間で
マウント領域を
共有不可
© 2022 NTT DATA Corporation 35
コンテナでのマウント(ボリュームタイプ)
⚫ 安全性が高い、Docker公式でも一番推奨
https://docs.docker.com/storage/volumes/
© 2022 NTT DATA Corporation 36
コンテナでのマウント(ボリュームタイプ)
$ volume create ullog-vol
$ --mount type=volume,src=ullog-vol,target=/home/log
⚫ Podmanだと
基本以下のパス上に作成されます
(ローカルから参照は基本非推奨)
$HOME/.local/share/contain
ers/storage/volumes/
ullog-vol/_data/
© 2022 NTT DATA Corporation
お助け外部ツールの活用 その1
37
© 2022 NTT DATA Corporation 38
永続ボリュームへの移行 Step2
外部ボリューム
© 2022 NTT DATA Corporation 39
Fluent Bit データシッピングツール
Fluent Bit
• ログを収集し、外部に送信するログシッピングツール
• 出力先にAWS,Azure
GCPなど指定先が豊富
• Parserよりデータフォーマットの
変更が容易
• コンテナ版もある
ただ調整が必要
https://fluentbit.io/
© 2022 NTT DATA Corporation 40
Fluent Bit (もしくはFluentD)データシッピングツール
Fluent Bitでは以下の図のように”input”からデータを収集
し、”Parser”そして”Filter”でデータを処理し、その後”Router”を通し、
複数の”output”にデータが送信されるパイプライン構造となっている。
© 2022 NTT DATA Corporation 41
4.3.2.4.4. Fluent Bit設定ファイル(パーサー設定ファイル)
[PARSER]
Name ul
Format regex
Regex
^¥[(?<datetime>.+?)¥]¥[(?<hostname>.+?)¥]¥[(?<level>.+?)¥]¥[(?<
tags>.+?)¥]¥s+(?<message>[¥s¥S]+?¥Z)
Time_Key datetime
Time_Format %Y-%m-%dT%H:%M:%S.%L%z
jvm-ul-parsers.conf
⚫ 設定ファイルを作成し
入力データをParserを通し、
欲しい出力データに変更可能
右図では
keyとしてdatetimeを指定
© 2022 NTT DATA Corporation 42
Fluent Bitコンテナ 調整
FROM fluent/fluent-bit
COPY ullog /log/ullog/
COPY jvm-ul-parsers.conf /fluent-bit/etc/
COPY fluent-bit.conf /fluent-bit/etc/
CMD [“/fluent-bit/bin/fluent-bit", "-c", “/fluent-bit/etc/fluent-
bit.conf"]
Dockerfile
◼ docker HubにあるFluent Bitコンテナ(AMD64版)にはmkdir,
catなど標準のコマンドが一切用意されていない...
(ディストロレスイメージ)
⚫ Dockerfileを作成し必要な設定ファイル等はローカルで作成し
予め送ることで解決 !!
© 2022 NTT DATA Corporation
お助け外部ツールの活用 その2
43
© 2022 NTT DATA Corporation 44
永続ボリュームへの移行 Step3
ログ分析
外部ボリューム
© 2022 NTT DATA Corporation 45
Elasticsearch&Kibana
• Elasticsearch
分散型で無料かつオープンな
検索・分析エンジン NoSQL
• Kibana
Elasticsearchに登録したデータを可視化
状況に応じて様々なDashboardを作成可能
先ほど紹介したFlunet Bitのプラグイン設定に対応している
https://www.elastic.co/jp/
© 2022 NTT DATA Corporation 46
Fluent Bitとのプラグイン
Data Processing Storage Visualization
[OUTPUT]
Name es
Match *
Host 127.0.0.1
Port 9200
Logstash_Format on
Logstash_Prefix ul-log
Logstash_DateFormat %Y.%m.%d
Type type1
⚫ Fluent Bit側の設定ファイル
でElasticsearchを
出力先として登録可能
© 2022 NTT DATA Corporation 47
Elasticsearch 登録データ確認
以下のようにcurlコマンドでElasticseach側での
登録したデータの確認が可能
$curl -sS -XGET "localhost:9200/index名/type名/_search?pretty"
{
"_index" : "ul-log-2021.09.01",
"_type" : "type1",
"_id" : "8U4Xn3sBT2e7G3-tQ8O6",
"_score" : 1.0,
"_source" : {
"@timestamp" : "2021-09-01T00:20:48.442Z",
"hostname" : "ce1e7e309f0c",
"level" : "info",
"tags" : "os",
"message" : "Use of CLOCK_MONOTONIC is supported"
}
© 2022 NTT DATA Corporation 48
Kibana Dashboard画面
&&
https://www.elastic.co/jp/kibana/
© 2022 NTT DATA Corporation
お助け外部ツールの活用 その2 EX
49
© 2022 NTT DATA Corporation 50
コンテナ環境の自動化
⚫ 確かに様々なOSSツールを使ってログ分析可能
⚫ だけどツールごとに設定ファイルとか
オプションとか設定、管理が大変そう
⚫ 複数コンテナの設定など自動化できないかなぁ..
© 2022 NTT DATA Corporation 51
Kubernetes(K8s)
• Kubernetes(K8s)
• コンテナ環境の管理を自動化するための
プラットフォーム
(コンテナオーケストレーションエンジン)
• 複数のコンテナをpodといった単位でまとめて一元的に管理
今まで解説してきたULログシッピングをKubernetes(K8s)を使い、
yamlで記述することで同じ動作が可能
https://kubernetes.io/
© 2022 NTT DATA Corporation 52
Kubernetes(K8s) yaml設定
apiVersion: v1
kind: Pod
…
…
- name:ullog
emptyDir:
- name: config-vol
configMap:
name: fluent-bit-config
• ログファイルをやり取りする
一時ボリューム
• emptyDirを利用
• サイドカーパターンを使い、
Fluent Bitコンテナにログ
をシッピングさせる
• 複数の設定ファイル
• configMapにまとめる
© 2022 NTT DATA Corporation
ULログで実際にやってみた
53
© 2022 NTT DATA Corporation 54
コンテナ環境ULログ分析
一時ボリューム
© 2022 NTT DATA Corporation 55
Podの作成
⚫ Javaアプリケーション, Fluent Bit Podを作成
⚫ Elasticsearch, Kibana Podを作成
© 2022 NTT DATA Corporation 56
Kibana Discover画面
Fluent Bitがログを
シッピング
© 2022 NTT DATA Corporation 57
Kibana Dashboard画面
状況に応じて
様々なグラフを作成可能
© 2022 NTT DATA Corporation 58
コンテナ環境でのログ分析(解決前)
消滅
Bye !!
© 2022 NTT DATA Corporation 59
コンテナ環境でのログ分析(解決後)
© 2022 NTT DATA Corporation
最後に
60
© 2022 NTT DATA Corporation 61
まとめ このセミナーで伝えたかったこと
⚫ ULログの有用性
⚫ コンテナは揮発性なので残したいデータは
外部ストレージへ保存する
⚫ 様々なツールと組み合わせて上記の問題を解決できる
今回は一例なので他にも色々とやり方はあると思います
❖ コンテナの特徴を理解して状況に応じた環境を作成し
よりよいJavaでのコンテナライフを送りましょう!!
© 2022 NTT DATA Corporation
本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です

More Related Content

What's hot (20)

PPTX
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA
 
PDF
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
 
PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
 
PPTX
Redisの特徴と活用方法について
Yuji Otani
 
PDF
俺のTerraform CI/CD ライフサイクル
HonMarkHunt
 
PDF
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Amazon Web Services Japan
 
PPTX
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTT DATA Technology & Innovation
 
PDF
DevOps with Database on AWS
Amazon Web Services Japan
 
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
 
PDF
20200630 AWS Black Belt Online Seminar Amazon Cognito
Amazon Web Services Japan
 
PPTX
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
 
PDF
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
 
PDF
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
 
PPTX
本当は恐ろしい分散システムの話
Kumazaki Hiroki
 
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
PDF
今話題のいろいろなコンテナランタイムを比較してみた
Kohei Tokunaga
 
PDF
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
 
PPTX
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
NTT DATA Technology & Innovation
 
PDF
インフラCICDの勘所
Toru Makabe
 
PDF
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
Ito Takayuki
 
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA
 
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
 
Redisの特徴と活用方法について
Yuji Otani
 
俺のTerraform CI/CD ライフサイクル
HonMarkHunt
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Amazon Web Services Japan
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTT DATA Technology & Innovation
 
DevOps with Database on AWS
Amazon Web Services Japan
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
Amazon Web Services Japan
 
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
 
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
 
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
 
本当は恐ろしい分散システムの話
Kumazaki Hiroki
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
今話題のいろいろなコンテナランタイムを比較してみた
Kohei Tokunaga
 
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
 
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
NTT DATA Technology & Innovation
 
インフラCICDの勘所
Toru Makabe
 
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
Ito Takayuki
 

Similar to オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料) (20)

PDF
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
 
PDF
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
PDF
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
 
PPTX
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
NTT DATA Technology & Innovation
 
PDF
AWSにおけるIaCを活かしたTerraformの使い方2選! ~循環型IaCとマルチクラウドチックなDR環境~ (HashiTalks: Japan 発...
NTT DATA Technology & Innovation
 
PDF
脅威へ、しなやかかつ持続可能に対応するためのIaC環境 ~循環型IaC~ (CloudNative Security Conference 2022 プレ...
NTT DATA Technology & Innovation
 
PPTX
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
NTT DATA Technology & Innovation
 
PPTX
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
NTT DATA Technology & Innovation
 
PDF
GPU Container as a Service を実現するための最新OSS徹底比較
NTT Communications Technology Development
 
PDF
Prometheus超基礎公開用.pdf
勇 黒沢
 
ODP
"Up" with vagrant and docker
Hiroshi Miura
 
PDF
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
 
PDF
DockerとPodmanの比較
Akihiro Suda
 
PDF
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
 
PPTX
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
VirtualTech Japan Inc.
 
PPTX
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
NTT DATA Technology & Innovation
 
PPTX
2015 0227 OSC-Spring Tokyo NETMF
Atomu Hidaka
 
PDF
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
griddb
 
PDF
"Up" with vagrant and docker
Hiroshi Miura
 
PDF
Kubernetes1.9でWindowsコンテナーをクラスタ化
Takashi Kanai
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
 
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
NTT DATA Technology & Innovation
 
AWSにおけるIaCを活かしたTerraformの使い方2選! ~循環型IaCとマルチクラウドチックなDR環境~ (HashiTalks: Japan 発...
NTT DATA Technology & Innovation
 
脅威へ、しなやかかつ持続可能に対応するためのIaC環境 ~循環型IaC~ (CloudNative Security Conference 2022 プレ...
NTT DATA Technology & Innovation
 
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
NTT DATA Technology & Innovation
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
NTT DATA Technology & Innovation
 
GPU Container as a Service を実現するための最新OSS徹底比較
NTT Communications Technology Development
 
Prometheus超基礎公開用.pdf
勇 黒沢
 
"Up" with vagrant and docker
Hiroshi Miura
 
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
 
DockerとPodmanの比較
Akihiro Suda
 
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
 
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
VirtualTech Japan Inc.
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
NTT DATA Technology & Innovation
 
2015 0227 OSC-Spring Tokyo NETMF
Atomu Hidaka
 
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
griddb
 
"Up" with vagrant and docker
Hiroshi Miura
 
Kubernetes1.9でWindowsコンテナーをクラスタ化
Takashi Kanai
 
Ad

More from NTT DATA Technology & Innovation (20)

PDF
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
 
PDF
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
PDF
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
NTT DATA Technology & Innovation
 
PDF
2025年現在のNewSQL (最強DB講義 #36 発表資料)
NTT DATA Technology & Innovation
 
PDF
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
NTT DATA Technology & Innovation
 
PDF
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
NTT DATA Technology & Innovation
 
PDF
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PDF
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
 
PDF
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
PDF
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
PDF
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PDF
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PDF
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
NTT DATA Technology & Innovation
 
PDF
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PDF
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
NTT DATA Technology & Innovation
 
PDF
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
NTT DATA Technology & Innovation
 
PDF
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
NTT DATA Technology & Innovation
 
PDF
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
NTT DATA Technology & Innovation
 
PDF
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
PDF
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
NTT DATA Technology & Innovation
 
2025年現在のNewSQL (最強DB講義 #36 発表資料)
NTT DATA Technology & Innovation
 
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
NTT DATA Technology & Innovation
 
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
NTT DATA Technology & Innovation
 
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
 
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
NTT DATA Technology & Innovation
 
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
NTT DATA Technology & Innovation
 
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
NTT DATA Technology & Innovation
 
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
NTT DATA Technology & Innovation
 
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
NTT DATA Technology & Innovation
 
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
Ad

Recently uploaded (9)

PDF
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
PDF
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
PDF
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
PDF
2023年版Web3技術の理想と現実
Syuhei Hiya
 
PPTX
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
 
PDF
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
PPTX
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
PDF
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
 
PDF
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
2023年版Web3技術の理想と現実
Syuhei Hiya
 
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
 
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
 
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 

オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)

  • 1. © 2022 NTT DATA Corporation オススメのJavaログ管理手法(コンテナ編) 2022年3月11日 株式会社NTTデータ 技術開発本部 佐藤 雄太 オープンソースカンファレンス2022 Online/Spring
  • 2. © 2022 NTT DATA Corporation 2 自己紹介 ⚫ 佐藤 雄太(さとう ゆうた) ⚫ 株式会社NTTデータ所属 技術開発本部先進コンピューティング技術センタ ⚫ OpenJDKに関連したR&Dとサポート支援 ⚫ 元々はPythonでAIなど ⚫ (正直まだJavaよりPythonの方が好き) ⚫ なぜか最近JITのアセンブラ出力見てる 末永 恭正 OpenJDK Reviewer IcedTea Committer 阪田 浩一 Java Champion OpenJDK Author こんな人達がいる職場で働いてます!!
  • 3. © 2022 NTT DATA Corporation 3 Java 17開発貢献数 1. Oracle 2. Red Hat 3. 個人 4. SAP 5. Tencent 6. Amazon 7.NTT DATA 8. Arm 9. Alibaba 10.Intel
  • 4. © 2022 NTT DATA Corporation 4 このセッションの対象と想定している方 ◼ Javaを使っている方 ◼ ULログを知らずに使っている、復習したい人 ◼ コンテナに興味がある方、使っている方 ◼ ログ収集ツールに興味ある方 Javaのみに特化した内容ではありません! 初学者向けです!
  • 5. © 2022 NTT DATA Corporation 5 セッションの流れ ◼ コンテナ+Javaの背景 ◼ ULログについて基本的な解説 ◼ コンテナ環境でのログに関する問題点、その解決策 ◼ OSSツールを活用した解決策 ◼ 解決策の実例紹介
  • 6. © 2022 NTT DATA Corporation 何故にJavaでコンテナ? 6
  • 7. © 2022 NTT DATA Corporation 7 コンテナを選ぶ理由
  • 8. © 2022 NTT DATA Corporation 8 マイクロサービスアーキテクチャ ◼ コンテナ技術等を用いてそれぞれのサービスを 独立したプロセスとしてアプリケーションを動作 ⚫ 負荷が高くなったサービスを個別にスケールできる ⚫ サービスがそれぞれ独立しているのでお互いを そこまで気にする必要がない ⚫ ログはどう扱う? その前に現在のJavaのログはどういうものか?
  • 9. © 2022 NTT DATA Corporation Java ULログについて 9
  • 10. © 2022 NTT DATA Corporation 10 Java UL(Unified Logging) ログ ◼ Java 9より追加された新形式のログ取得方法 ⚫ カテゴリ別、ログレベル別に出力を設定可能(-Xlog option) ⚫ 根本的原因解析(Root Cause Analysis)に必須 ⚫ このログを提出することでサポートサービスへの問い合わせが しやすい
  • 11. © 2022 NTT DATA Corporation 11 Java UL(Unified Logging) ログの指定 –Xlog[<what>][:[<output>][:[<decorators>][:<output-options>]]] -what : 出力内容をタグとレベルで選択 -output : 出力先の指定 -decorators : デコレータの指定 -output-options : ログローテート設定 *ちなみにデフォルトではWarningで標準出力に表示されます。
  • 12. © 2022 NTT DATA Corporation 12 Java UL(Unified Logging) ログ ログレベルの変更 • デフォルト(ログレベルWarning) • ログレベルinfo java -Xlog:os=info -version
  • 13. © 2022 NTT DATA Corporation 13 Java UL(Unified Logging) ログ 出力先の変更 java -Xlog:os=info:file=/home/log/ul.log:t,hn,l,tg:filecount=1, filesize=1m -version • ファイルに出力
  • 14. © 2022 NTT DATA Corporation 14 Java UL(Unified Logging) ログ JITコンパイルログ出力 java -Xlog:jit+compilation=debug hello • JITの動作を表示
  • 15. © 2022 NTT DATA Corporation 15 Java UL(Unified Logging) ログ 有用性 ◼ これらが出来ると何が良いか? ⚫ エラー時に見たいエラー文だけ確認できる ⚫ 前のログを指定された場所に保存して一括管理する、 後で確認したいときに参照できる ➢ とりあえずこれ一本で設定を指定できるので非常にSimple
  • 16. © 2022 NTT DATA Corporation 16 設定したJava UL(Unified Logging) ログの確認方法 jcmd プロセスID VM.log list Java Sleep.java
  • 17. © 2022 NTT DATA Corporation 17 設定したJava UL(Unified Logging) ログの変更方法 jcmdプロセスID VM.log output=#1 output_options=os=info 実行中に出力の ログレベルをinfoに変更
  • 18. © 2022 NTT DATA Corporation 18 Java UL(Unified Logging) ログ 総評 ◼ Java9より搭載されたULログ ⚫ Java 8以前に比べて設定が容易 ⚫ レベルやカテゴリ別に設定可能 ⚫ jcmdコマンドを使って実行後確認、変更などが容易 ⚫ なによりプログラム書く側から情報が見やすい ◼ ただコンテナ環境だとある問題点が...
  • 19. © 2022 NTT DATA Corporation コンテナの問題点 19
  • 20. © 2022 NTT DATA Corporation 20 コンテナ技術とは ◼ 簡単にいうとホストOS上で独立したプロセスとして 実行されるアプリケーション環境 https://www.docker.com/resources/what-container
  • 21. © 2022 NTT DATA Corporation 21 現時点で主流なコンテナエンジン • Docker Docker社が開発 • Podman Red Hat社が開発 互換性があるのでどちらもほぼ同じコマンドで使える PodmanはK8sのように簡単なpodを作れる (後述のログ分析で便利なので今回は後者を主に利用)
  • 22. © 2022 NTT DATA Corporation 22 コンテナ技術の特徴 ◼ 仮想環境と違いローカル環境を汚さず、コマンド一つで簡単に コンテナ環境を作成可能、サービスとしても利用可能 ◼ 揮発性という特徴を持つ
  • 23. © 2022 NTT DATA Corporation 23 コンテナの揮発性について ◼ 揮発性(volatility) Wikipediaによると、、 ⚫ 液体の蒸発しやすい性質(相転移参照)(灯油、有機物など) ⚫ 揮発性メモリ: 電源を切ると記憶内容が消える 性質の記憶装置
  • 24. © 2022 NTT DATA Corporation 24 コンテナの特徴 - 揮発性について ◼ コンテナ内で出力したデータは永続しない ⚫ なぜ? ➢コンテナ環境では起動するたびに新しいコンテナを 作成することを想定しているから ⚫ なんのため? ➢起動の際はどこの環境においても同じ状況を再現 (ポータビリティを重視)
  • 25. © 2022 NTT DATA Corporation 25 コンテナの揮発性が起こすログの消失 再起動 ⚫ コンテナ内のログは? ➢ 漏れなく消えます
  • 26. © 2022 NTT DATA Corporation 26 コンテナの揮発性が起こすログの消失 消滅 Bye !!
  • 27. © 2022 NTT DATA Corporation コンテナでのログ運用(解決策) 27
  • 28. © 2022 NTT DATA Corporation 28 揮発性が起こす問題点への解決策 ⚫ 何はともあれ外部へ保存!! コンテナは終了したらインスタンスが破棄されるのが 前提なのでその前に外部へ保存する ⚫ いくつかある方法としては ❖ 外部ストレージに直接送る ❖ ネットワークでブロードキャスト ❖ サイドカー形式で他のコンテナに移動
  • 29. © 2022 NTT DATA Corporation 29 コンテナでのログ分析手法(理想図) 外部ボリューム ⚫ コンテナ内で出力されたログは 「外部」のボリュームへ ⚫ 外部ボリュームに置いた ログを別コンテナで分析 ⚫ そのためにもコンテナ側で設定 を変更、OSSツールを活用
  • 30. © 2022 NTT DATA Corporation 30 助けてもらうついでに、、、(ログ分析ツールを活用) cat ul.log | grep ….
  • 31. © 2022 NTT DATA Corporation コンテナ側での設定 31
  • 32. © 2022 NTT DATA Corporation 32 永続ボリュームへの移行 Step1 外部ボリューム
  • 33. © 2022 NTT DATA Corporation 33 そもそもコンテナにおけるファイルシステムとは? ⚫ コンテナでは仮想環境と違いホストから分離されている ⚫ これを可能にしているのがnamespaceというLinuxの技術 ⚫ コンテナではプロセスIDやファイルシステムなどが コンテナごとに分離されている (つまりコンテナからローカル環境が見えない) ⚫ じゃあどうする? ➢ マウントさせましょう
  • 34. © 2022 NTT DATA Corporation 34 コンテナでのマウント(現時点で主な3種類) bind volume tmpfs メリット • 前準備が不要なので 一番簡単 • 複数コンテナでの 運用の際の 安全性の高さ • ホストのメモリ上に 保存するので 読み取りが高速 デメリット • ホスト環境に依存するこ と(ホスト環境への 意図しない書き込み) • volume create の前処理が必要 • Linuxのみ対応 • コンテナ間で マウント領域を 共有不可
  • 35. © 2022 NTT DATA Corporation 35 コンテナでのマウント(ボリュームタイプ) ⚫ 安全性が高い、Docker公式でも一番推奨 https://docs.docker.com/storage/volumes/
  • 36. © 2022 NTT DATA Corporation 36 コンテナでのマウント(ボリュームタイプ) $ volume create ullog-vol $ --mount type=volume,src=ullog-vol,target=/home/log ⚫ Podmanだと 基本以下のパス上に作成されます (ローカルから参照は基本非推奨) $HOME/.local/share/contain ers/storage/volumes/ ullog-vol/_data/
  • 37. © 2022 NTT DATA Corporation お助け外部ツールの活用 その1 37
  • 38. © 2022 NTT DATA Corporation 38 永続ボリュームへの移行 Step2 外部ボリューム
  • 39. © 2022 NTT DATA Corporation 39 Fluent Bit データシッピングツール Fluent Bit • ログを収集し、外部に送信するログシッピングツール • 出力先にAWS,Azure GCPなど指定先が豊富 • Parserよりデータフォーマットの 変更が容易 • コンテナ版もある ただ調整が必要 https://fluentbit.io/
  • 40. © 2022 NTT DATA Corporation 40 Fluent Bit (もしくはFluentD)データシッピングツール Fluent Bitでは以下の図のように”input”からデータを収集 し、”Parser”そして”Filter”でデータを処理し、その後”Router”を通し、 複数の”output”にデータが送信されるパイプライン構造となっている。
  • 41. © 2022 NTT DATA Corporation 41 4.3.2.4.4. Fluent Bit設定ファイル(パーサー設定ファイル) [PARSER] Name ul Format regex Regex ^¥[(?<datetime>.+?)¥]¥[(?<hostname>.+?)¥]¥[(?<level>.+?)¥]¥[(?< tags>.+?)¥]¥s+(?<message>[¥s¥S]+?¥Z) Time_Key datetime Time_Format %Y-%m-%dT%H:%M:%S.%L%z jvm-ul-parsers.conf ⚫ 設定ファイルを作成し 入力データをParserを通し、 欲しい出力データに変更可能 右図では keyとしてdatetimeを指定
  • 42. © 2022 NTT DATA Corporation 42 Fluent Bitコンテナ 調整 FROM fluent/fluent-bit COPY ullog /log/ullog/ COPY jvm-ul-parsers.conf /fluent-bit/etc/ COPY fluent-bit.conf /fluent-bit/etc/ CMD [“/fluent-bit/bin/fluent-bit", "-c", “/fluent-bit/etc/fluent- bit.conf"] Dockerfile ◼ docker HubにあるFluent Bitコンテナ(AMD64版)にはmkdir, catなど標準のコマンドが一切用意されていない... (ディストロレスイメージ) ⚫ Dockerfileを作成し必要な設定ファイル等はローカルで作成し 予め送ることで解決 !!
  • 43. © 2022 NTT DATA Corporation お助け外部ツールの活用 その2 43
  • 44. © 2022 NTT DATA Corporation 44 永続ボリュームへの移行 Step3 ログ分析 外部ボリューム
  • 45. © 2022 NTT DATA Corporation 45 Elasticsearch&Kibana • Elasticsearch 分散型で無料かつオープンな 検索・分析エンジン NoSQL • Kibana Elasticsearchに登録したデータを可視化 状況に応じて様々なDashboardを作成可能 先ほど紹介したFlunet Bitのプラグイン設定に対応している https://www.elastic.co/jp/
  • 46. © 2022 NTT DATA Corporation 46 Fluent Bitとのプラグイン Data Processing Storage Visualization [OUTPUT] Name es Match * Host 127.0.0.1 Port 9200 Logstash_Format on Logstash_Prefix ul-log Logstash_DateFormat %Y.%m.%d Type type1 ⚫ Fluent Bit側の設定ファイル でElasticsearchを 出力先として登録可能
  • 47. © 2022 NTT DATA Corporation 47 Elasticsearch 登録データ確認 以下のようにcurlコマンドでElasticseach側での 登録したデータの確認が可能 $curl -sS -XGET "localhost:9200/index名/type名/_search?pretty" { "_index" : "ul-log-2021.09.01", "_type" : "type1", "_id" : "8U4Xn3sBT2e7G3-tQ8O6", "_score" : 1.0, "_source" : { "@timestamp" : "2021-09-01T00:20:48.442Z", "hostname" : "ce1e7e309f0c", "level" : "info", "tags" : "os", "message" : "Use of CLOCK_MONOTONIC is supported" }
  • 48. © 2022 NTT DATA Corporation 48 Kibana Dashboard画面 && https://www.elastic.co/jp/kibana/
  • 49. © 2022 NTT DATA Corporation お助け外部ツールの活用 その2 EX 49
  • 50. © 2022 NTT DATA Corporation 50 コンテナ環境の自動化 ⚫ 確かに様々なOSSツールを使ってログ分析可能 ⚫ だけどツールごとに設定ファイルとか オプションとか設定、管理が大変そう ⚫ 複数コンテナの設定など自動化できないかなぁ..
  • 51. © 2022 NTT DATA Corporation 51 Kubernetes(K8s) • Kubernetes(K8s) • コンテナ環境の管理を自動化するための プラットフォーム (コンテナオーケストレーションエンジン) • 複数のコンテナをpodといった単位でまとめて一元的に管理 今まで解説してきたULログシッピングをKubernetes(K8s)を使い、 yamlで記述することで同じ動作が可能 https://kubernetes.io/
  • 52. © 2022 NTT DATA Corporation 52 Kubernetes(K8s) yaml設定 apiVersion: v1 kind: Pod … … - name:ullog emptyDir: - name: config-vol configMap: name: fluent-bit-config • ログファイルをやり取りする 一時ボリューム • emptyDirを利用 • サイドカーパターンを使い、 Fluent Bitコンテナにログ をシッピングさせる • 複数の設定ファイル • configMapにまとめる
  • 53. © 2022 NTT DATA Corporation ULログで実際にやってみた 53
  • 54. © 2022 NTT DATA Corporation 54 コンテナ環境ULログ分析 一時ボリューム
  • 55. © 2022 NTT DATA Corporation 55 Podの作成 ⚫ Javaアプリケーション, Fluent Bit Podを作成 ⚫ Elasticsearch, Kibana Podを作成
  • 56. © 2022 NTT DATA Corporation 56 Kibana Discover画面 Fluent Bitがログを シッピング
  • 57. © 2022 NTT DATA Corporation 57 Kibana Dashboard画面 状況に応じて 様々なグラフを作成可能
  • 58. © 2022 NTT DATA Corporation 58 コンテナ環境でのログ分析(解決前) 消滅 Bye !!
  • 59. © 2022 NTT DATA Corporation 59 コンテナ環境でのログ分析(解決後)
  • 60. © 2022 NTT DATA Corporation 最後に 60
  • 61. © 2022 NTT DATA Corporation 61 まとめ このセミナーで伝えたかったこと ⚫ ULログの有用性 ⚫ コンテナは揮発性なので残したいデータは 外部ストレージへ保存する ⚫ 様々なツールと組み合わせて上記の問題を解決できる 今回は一例なので他にも色々とやり方はあると思います ❖ コンテナの特徴を理解して状況に応じた環境を作成し よりよいJavaでのコンテナライフを送りましょう!!
  • 62. © 2022 NTT DATA Corporation 本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です