10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Grafana Lokiを試してみる

Posted at

Elastic Searchとかもう勘弁だ、と思うオンプレ運用管理者の間で、代替としてGrafana Loki使えないの?と言う向きが増えており、とりあえず試してみようと思ったメモ。

環境

必要メモリ量とかあるのかねと思ったが、特になさそう。まあ自分で使って決めてねという事だろう。
https://grafana.com/docs/loki/latest/installation/

とりあえずAWS Lightsailの一番安いやつ(月$3.5)で、OSはUbuntu 20.04 LTSで。
オンプレとの親和性でCentOS 8を使いたかったが、もうサポートが切れているらしくyum install unzipが失敗する。

OSが起動したらTime ZoneはAsia/Tokyoにしておく。UTCのままだとGrafanaでログを参照する際に支障がある。

$ sudo timedatectl set-timezone Asia/Tokyo

インストール

まずはオンプレ志向で、インストールタイプはLocalで行ってみよう。ストレージもすべてローカルのFileSystemで。
https://grafana.com/docs/loki/latest/installation/local/

DockerイメージとBinaryの2つが提供されているが、今日びDockerなんて使うわけねーし。Binaryでインストール。
https://github.com/grafana/loki/releases/

$ sudo apt install unzip
$ curl -O -L "https://github.com/grafana/loki/releases/download/v2.5.0/loki-linux-amd64.zip"
$ unzip "loki-linux-amd64.zip"
$ chmod a+x "loki-linux-amd64"
$ curl -O -L "https://github.com/grafana/loki/releases/download/v2.5.0/promtail-linux-amd64.zip"
$ unzip "promtail-linux-amd64.zip"
$ chmod a+x "promtail-linux-amd64"

構成する

以下の2つのyamlファイルをダウンロードする。

$ wget https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yaml
$ wget https://raw.githubusercontent.com/grafana/loki/main/clients/cmd/promtail/promtail-local-config.yaml

とりあえずダウンロードしたyamlファイルはfilesystemを使用するようにあらかじめ設定済みなので、そのまま使用。

Lokiを起動する

とりあえずLokiを起動する。
ハイフン2つ使わないオプション指定は今時珍しい。

$ ./loki-linux-amd64 -config.file=loki-local-config.yaml

起動すると、goのものっぽいログがずらずらと出力される。「msg="Loki started"」と表示されればとりあえずOKかな?

Lokiにログを送り付ける

Lokiを起動したのとは別のsshセッションを開いて、次はpromtailを起動する。
先にダウンロードしたpromtail-local-config.yamlをそのまま使うのであれば、/var/log/*logのログファイルがそのままLokiに流れるはず。

$ ./promtail-linux-amd64 -config.file=promtail-local-config.yaml

またぞろgoのログがずらずらと出力される。「msg="tail routine: started"」と、ログファイルのモニターがいくつか開始されているならOKだろう。

ログを見る

Grafanaがいるのかよ。そりゃそうか。しかし面倒。。
いろいろ端折るが、新しいsshセッションを開き、Grafana(OSS版)をインストールして起動する。
なお、記事作成時点でインストールされたGrafanaはV8.5.0。

$ sudo apt-get install -y apt-transport-https
$ sudo apt-get install -y software-properties-common wget
$ wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
$ echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
$ sudo apt-get update
$ sudo apt-get install grafana
$ sudo systemctl daemon-reload
$ sudo systemctl start grafana-server
$ sudo systemctl status grafana-server

起動後、AWS Lightsailのファイアウォールでtcp/3000ポートを開けてGrafanaにログインする。
デフォルトの初期ユーザー名/パスワードは admin/admin。

Grafanaにadminでログイン後、ConfigurationのData sourcesでLokiを追加する。
Loki, Grafanaのすべてを1台のサーバー上で起動しているならサンプルで表示されている「http://localhost:3100」を使用するので良いだろう。
https://grafana.com/docs/loki/latest/getting-started/grafana/
image.png
image.png

ログを見るには、ダッシュボードを使うわけではなく、左メニューから「Explore」>「Loki」である。
image.png

Log browserから「job(1)」>「verlogs」を選択して「Show logs」クリックするとLokiに集まってきたログが表示される。
image.png

画面右上の「Live」をクリックするとリアルタイムで収集したログが表示されるようになる。
image.png

sshセッションでsyslogにhelloと書き込んでみる。

$ logger hello

少し後、Grafanaの画面一番下に「hello」のログが表示されることが確認できる。
image.png

その他

上記一通りやった後で、OSのtopコマンドの出力結果は以下の通り。時間がたつとどうなるかはわからないが、1~2時間動かしてみる分には512MBのマシンでも全然動くし軽い。なるほど人気となるわけだ・・?
image.png

systemdでLokiとPromtailを起動

簡単に、LokiとPromtailをsystemdで起動するには以下。
ちなみに、Lokiのプロセスを再起動するとGrafanaのLiveモニタは再起動後のログを読んでくれなくなる。Exit live modeして再度Liveを再開すれば良いのだが。

$ sudo cp ./loki-linux-amd64 /usr/local/bin/loki
$ sudo cp ./loki-local-config.yaml /etc/
$ sudo cp ./promtail-linux-amd64 /usr/local/bin/promtail
$ sudo cp ./promtail-local-config.yaml /etc/
$ cat > loki.service << EOF
[Unit]
Description=loki
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/loki -config.file=/etc/loki-local-config.yaml
Restart=always

[Install]
WantedBy=multi-user.target
EOF
$ sudo cp loki.service /etc/systemd/system/
$ cat > promtail.service << EOF
[Unit]
Description=promtail

[Service]
ExecStart=/usr/local/bin/promtail -config.file=/etc/promtail-local-config.yaml
Restart=always

[Install]
WantedBy=multi-user.target
EOF
$ sudo cp promtail.service /etc/systemd/system/
$ sudo systemctl daemon-reload
$ sudo systemctl start loki
$ sudo systemctl enable loki
$ sudo systemctl start promtail
$ sudo systemctl enable promtail
10
6
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
10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?