LoginSignup
1
1

More than 5 years have passed since last update.

ローカルクラスタ実行中のKubernetesのログをscreenでいい感じにモニタリングする

Posted at

はじめに

Kubernetesをソースコードからビルドしてローカル環境にkubernetes clusterを構築する」で構築した環境では、/tmp以下に各種サービスのログが出力されています。これらのログをいちいちtail -fするのが面倒なのと、色付けされていないため高速に流れていくログでは何が問題なのかが直観的で分からないため、OpenStackのdevstack風に、ログをscreenに表示して色付けする方法を試してみました。

公式でいい方法があればうれしいのですが、少し探した限りでは見つからず断念。

Logs:
  /tmp/kube-apiserver.log
  /tmp/kube-controller-manager.log
  /tmp/kube-proxy.log
  /tmp/kube-scheduler.log
  /tmp/kubelet.log

パッケージのインストールとスクリプトの配置

ログの色付けには、cczeというツールを使います。予め定義されているキーワードと配色、例えばERRORは赤色で表示などの設定を使ってログをカラーで表示してくれます。

% wget https://dl.fedoraproject.org/pub/epel/7Server/x86_64/c/ccze-0.2.1-11.el7.x86_64.rpm
% rpm -ivh ccze-0.2.1-11.el7.x86_64.rpm

あと、screenパッケージもない場合は追加が必要です。

sreenを起動するための設定ファイル。stuff行末尾の^Mは、ctrl+v ctrl +mで入力出来ます。

% cat k8s-screenrc
sessionname k8s-debug
hardstatus alwayslastline '%{= .} %-Lw%{= .}%> %n%f %t*%{= .}%+Lw%< %-=%{g}(%{d}%H/%l%{g})'
setenv PROMPT_COMMAND /bin/true
screen -t shell bash
screen -t kube-apiserver bash
stuff "sudo tail -f /tmp/kube-apiserver.log | ccze -A^M"
screen -t kubelet bash
stuff "sudo tail -f /tmp/kubelet.log | ccze -A^M"
screen -t kube-controller-manage bash
stuff "sudo tail -f /tmp/kube-controller-manager.log | ccze -A^M"
screen -t kube-proxy bash
stuff "sudo tail -f /tmp/kube-proxy.log | ccze -A^M"
screen -t kube-scheduler bash
stuff "sudo tail -f /tmp/kube-scheduler.log | ccze -A^M"

screenを起動するためのスクリプトです。screenセッションがあれば既存のものを、なければ新規に作ります。(ベースは、devstackのrejoin.shです。)

% cat k8s-screen.sh
#! /usr/bin/env bash

TOP_DIR=`dirname $0`
SCREEN_NAME="k8s-debug"
SCREEN_FILE="k8s-screenrc"

SCREENRC=$TOP_DIR/$SCREEN_FILE
# if screenrc exists, run screen
if [[ -e $SCREENRC ]]; then
    if screen -ls | egrep -q "[0-9]+.${SCREEN_NAME}"; then
        echo "Attaching to already started screen session.."
        exec screen -r $SCREEN_NAME
    fi
    exec screen -c $SCREENRC
fi

echo "Couldn't find $SCREENRC file;"
exit 1

k8s-screen.sh実行結果

本当はE0xxx行を強調するなどできればいいのですが、最低限エラーに気づけるようになったのでよしとします。

k8s-debug.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1