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
本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です
Ad

Recommended

PDF
Dockerからcontainerdへの移行
Kohei Tokunaga
 
PDF
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
 
PDF
Serverless時代のJavaについて
Amazon Web Services Japan
 
PDF
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
NTT DATA Technology & Innovation
 
PPTX
NGINXをBFF (Backend for Frontend)として利用した話
Hitachi, Ltd. OSS Solution Center.
 
PPTX
Dockerからcontainerdへの移行
Akihiro Suda
 
PDF
AWSのログ管理ベストプラクティス
Akihiro Kuwano
 
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
 
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
 
PDF
高速にコンテナを起動できるイメージフォーマット
Akihiro Suda
 
PDF
既存システムへの新技術活用法 ~fluntd/MongoDB~
じゅん なかざ
 

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
高速にコンテナを起動できるイメージフォーマット
Akihiro Suda
 
PDF
既存システムへの新技術活用法 ~fluntd/MongoDB~
じゅん なかざ
 
PDF
JAWS-UG Nagoya 20160729
陽平 山口
 
PDF
Docker for Windows & Web Apps for Containers 実践活用技法
Microsoft Corporation
 
PDF
スマートニュースの世界展開を支えるログ解析基盤
Takumi Sakamoto
 
PPTX
AndApp開発における全て #denatechcon
DeNA
 
PDF
TokyoWebminig カジュアルなHadoop
Teruo Kawasaki
 
PPTX
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
NTT DATA Technology & Innovation
 
PPTX
[デブサミ秋2015] 新卒入社エンジニアが 2年間fluentdを運用して学んだ事いろいろ
gree_tech
 
PDF
コンテナ導入概要資料2018
Masahito Zembutsu
 
PPTX
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
Akihiro Suda
 
PPTX
OCIコンテナサービス関連の技術詳細
オラクルエンジニア通信
 
PPTX
Oracle Container Engine for Kubernetes (OKE) ご紹介 [2021年5月版]
オラクルエンジニア通信
 
PDF
OSSで支えられるライブドアの巨大ログ集計 #nhntech
SATOSHI TAGOMORI
 
PPT
Hadoop~Yahoo! JAPANの活用について~
Yahoo!デベロッパーネットワーク
 
PPTX
Flumeを活用したAmebaにおける大規模ログ収集システム
Satoshi Iijima
 
PPTX
Oracle Container Engine for Kubernetes (OKE) ご紹介 [2021年2月版]
オラクルエンジニア通信
 
PDF
Developers.IO 2019 Effective Datalake
Satoru Ishikawa
 
PDF
Struggle against cross-domain data complexity in Recruit group
Recruit Technologies
 
PDF
オトナのDocker入門
Tsukasa Kato
 
高速にコンテナを起動できるイメージフォーマット
Akihiro Suda
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
じゅん なかざ
 
JAWS-UG Nagoya 20160729
陽平 山口
 
Docker for Windows & Web Apps for Containers 実践活用技法
Microsoft Corporation
 
スマートニュースの世界展開を支えるログ解析基盤
Takumi Sakamoto
 
AndApp開発における全て #denatechcon
DeNA
 
TokyoWebminig カジュアルなHadoop
Teruo Kawasaki
 
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
NTT DATA Technology & Innovation
 
[デブサミ秋2015] 新卒入社エンジニアが 2年間fluentdを運用して学んだ事いろいろ
gree_tech
 
コンテナ導入概要資料2018
Masahito Zembutsu
 
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
Akihiro Suda
 
OCIコンテナサービス関連の技術詳細
オラクルエンジニア通信
 
Oracle Container Engine for Kubernetes (OKE) ご紹介 [2021年5月版]
オラクルエンジニア通信
 
OSSで支えられるライブドアの巨大ログ集計 #nhntech
SATOSHI TAGOMORI
 
Hadoop~Yahoo! JAPANの活用について~
Yahoo!デベロッパーネットワーク
 
Flumeを活用したAmebaにおける大規模ログ収集システム
Satoshi Iijima
 
Oracle Container Engine for Kubernetes (OKE) ご紹介 [2021年2月版]
オラクルエンジニア通信
 
Developers.IO 2019 Effective Datalake
Satoru Ishikawa
 
Struggle against cross-domain data complexity in Recruit group
Recruit Technologies
 
オトナのDocker入門
Tsukasa Kato
 
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 (6)

PPTX
色について.pptx .
iPride Co., Ltd.
 
PPTX
Protect Your IoT Data with UbiBot's Private Platform.pptx
ユビボット 株式会社
 
PPTX
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
iPride Co., Ltd.
 
PPTX
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
iPride Co., Ltd.
 
PDF
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
Takuma Oda
 
PDF
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
 
色について.pptx .
iPride Co., Ltd.
 
Protect Your IoT Data with UbiBot's Private Platform.pptx
ユビボット 株式会社
 
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
iPride Co., Ltd.
 
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
iPride Co., Ltd.
 
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
Takuma Oda
 
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
 

オススメの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 本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です