🔍

使いこなせ、Logs Explorer【Cloud Logging】

2024/07/28に公開

はじめに

Logs Explorer 使いこなせていますか?
Cloud Logging の Logs Explorer ですが、ログ解析しやすくて個人的に好きなサービスです。

使い続ける中で使い方を学んできた私ですが、使い始めて間もない方は意外に知らない使い方があるのでは?と思いこの記事を書きます。

「こんなん知ってるよ」というGoogle Cloud 玄人の方はごめんなさい。

クエリの書き方編

基本

ログエクスプローラーの検索窓にヒットさせたいキーワードを打ち込んでEnterもしくはクエリを実行を押すと、単純にそのワードを含んだログを検索することができます。

検索窓から実行するとSEARCH("nginx")のようになりますが、以下のようにSEARCHがなく"nginx"でも結果は変わりません。

完全一致/部分一致

基本的には以下のように=を使って完全一致で絞り込んでいくケースが多いと思います。

=:に変えると部分一致になります。
上の画像ではGKEのNamespace名がsample1のログを絞り込んでいましたが、以下のように部分一致を使うとsample1sample2といった部分一致のNamespaceを対象にすることができます。

AND/OR/NOT

↑の画像のように何も指定せず改行で条件を列挙していくと自然にANDでの検索になります。
もちろん以下のようにANDで繋いでも結果は変わりません。

以下のように条件同士をORで結ぶこともできますし、

以下のように書くこともできます。

条件の先頭にNOTをつけて検索することもできます。

先頭に-をつけてもOKです。

おまけ

「一旦検索条件から外したいけど、またすぐその条件使うかもなー」なんてときは検索条件の先頭に‐‐をつけてコメントアウトさせることができます。

絞り込み編

時間で絞り込む

左上の方で時間による検索が行えます。
「直近の15分」や「直近の1日」などざっくりの範囲で検索することもできますし、開始時刻と終了時刻を指定して検索することもできます。
使ったことはないですが、タイムゾーンの切り替えもできるようです。

また、時間帯ごとのログの量及びSEVERITYの割合が視覚的に分かる「タイムライン」からの絞り込みもできます。
現在ログ表示されている箇所は、バーの後ろに薄く影がかかったような部分です。
他のバーを押下するとその時間帯のログまでスクロールすることが可能です。

また、上記画像の端のを左右に移動し「クエリを実行」を押下することで、現在絞り込んでいる時間より詳細に絞り込むこともできます。

リソースで絞り込む

先程からresource.labels.container_name="sample"のようにクエリを書いてきましたが、これを手打ちするのは大変です。
「すべてのリソース」を押下することでクリックするだけでリソースによる絞り込みが可能です。
以下画像のように絞り込んでいき「適用」を押下すると、今までの例のようなクエリが自動で生成されます。

ログのフィールドで絞り込む

画面左側の「ログのフィールド」で更に絞り込みを行ったり条件を変更することができます。
例えば、SEVERITYのエラーを押下すると、クエリにseverity=ERRORが自動的に足され、エラーログのみに絞り込むことが可能です。

一致エントリで絞り込む

※「ネストされたフィールドを開く」を押すと見れる情報が増えます。

各Keyに対するValueを押下すると追加の検索条件にできます。
「一致エントリを表示」で押下したValueを検索条件に加え、「一致エントリを非表示」で除外することができます。

以下はpod_name: "nginx-775fbf9bfb-v888h"に対して「一致エントリを表示」をしたときです。検索条件に追加されているのが分かりますね。

あまり使ったことはありませんが、先程紹介したログのフィールドに追加することもできます。

類似エントリで絞り込む

一致エントリではなく、類似エントリで絞る方法もあります。
対象のログで「類似エントリ」を押下することで、類似したログで絞り込んだり検索条件から除外することができます。

また、「類似エントリをプレビュー」で、どのようなパターンで類似の判定がされているか確認することもできます。

保存/共有編

クエリを保存する

よく使うクエリは保存することができます。
「保存」を押し、任意のクエリに名前をつけて「クエリを保存」を押すだけです。

保存したクエリは「保存済み」というタブに格納されており、「実行」を押下することで簡単に呼び出すことができます。

ちなみにですが、「最近」タブには直近使用したクエリの履歴情報があり、そこからクエリを実行することもできます。

ログを保存する

Cloud Logging はデフォルトのログ保持期間が30日なので、「あのログ見たいのにもう見れない...」なんてこともあると思います。
設定変更して保持期間を変更することもできますが、コストにも関わってくるところです。
そこで、ログが消えないようにファイルとしてダウンロードすることができます。
「ダウンロード」を押下するとCSV形式かJSON形式を選ぶことができます。

ログを共有する

エラー発生時や解析時にログ情報をチャットツールに共有するケースがあると思います。
↑でダウンロードしたファイルを共有するケースもあると思いますが、 Logs Explorer の URL を共有するケースの方が圧倒的に多いのではないかと思います。
もちろん以下のようにアドレスバーの URL をコピーして貼り付けてもいいですが、かなり長い文字列になってしまいます...

もし URL をベタ張りしていたら「リンクを共有」を使ってみてください。
絶対時間範囲と相対時間範囲で短縮URLを瞬時に生成でき、クリップボードにコピーすることができます。

長さを比較すると一目瞭然ですね!

# アドレスバーからベタ張り
https://console.cloud.google.com/logs/query;query=resource.type%3D%22k8s_container%22%0Aresource.labels.cluster_name%3D%22autopilot-cluster-1%22%0Aresource.labels.container_name%3D%22nginx-1%22%0Aresource.labels.namespace_name:%22sample1%22;summaryFields=:false:32:beginning;lfeCustomFields=logName,textPayload;cursorTimestamp=2024-07-27T14:15:57.683188338Z;duration=PT3H?referrer=search&hl=ja&project=[PROJECT]

# リンクを共有から生成
https://cloudlogging.app.goo.gl/hpiatypRh46oLUWa1

おわりに

以上です。
ログベースの指標の作成など Logs Explorer のコンソールからできることすべてに言及したわけではありませんが、参考になりましたら幸いです!

Discussion