kibana でさくらのウェブアクセラレータのログを確認してみた [第1回]

さくらのクラウド , 監視・運用 # さくらのウェブアクセラレータ

さくらのウェブアクセラレータはログをオブジェクトストレージに保存する機能がありますが、そのままでは手軽にログ調査ができません。ここでは、さくらのウェブアクセラレータのログを kibana で閲覧できるようにしたいと思います。

kibana はご存じの方も多いかと思いますが、elasticsearch に保存されたログを手軽に検索・閲覧できる Web インタフェースを提供しています。elasticsearch は Apache Lucene をベースにした検索エンジンです。

ログの取り込みには filebeat を使用します。オブジェクトストレージは S3 互換ですので、filebeat の input type でaws-s3 を使用すれば、オブジェクトストレージに保存されたウェブアクセラレータのログを elasticsearch に取り込むことができます。

今回は、まずさくらのクラウドのサーバを作成し、elasticsearch、kibana、filebeat をインストールします。オブジェクトストレージからのログ取得は、次回ご紹介します。

クラウドのサーバ作成

クラウドのサーバを作成します。

さくらのクラウドにログインして、ホーム画面から「さくらのクラウド」を選択してください。

  • 左側のサイドメニューより「サーバ」を選択
  • 右上の「追加」を選択
  • 「シンプルモード」にチェックを入れる

下記の内容でサーバを作成します。

・「Unix / Linux」タブから「AlmaLinux」の「9.8 64bit」を選択
・サーバプラン: 「2仮想コア / 4GB」
・ディスクプラン: 「20GB SSDプラン」
・接続先のネットワーク: 「インターネット」
・サーバの設定
  - 管理ユーザのパスワード 適宜
  - 公開鍵 適宜
・ホスト名: kibana01

今回は最小限のスペックで作成していますが、用途に応じてスペックは変更してください。

「作成」ボタンを押して、サーバが起動するまでしばらく待ちます。

サーバが作成されて起動したら、サーバの IPv4 アドレスを確認して、ssh 接続ができることを確認してください。

elasticsearch インストール

elasticsearch、kibana、filebeat ともに rpm のリポジトリより最新版をインストールします。

まず、PGP キーをインストールします。

[root@kibana01 ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

リポジトリの設定をします。

[root@kibana01 ~]# vi /etc/yum.repos.d/elasticsearch.repo

ファイルには下記の内容を記述します

[elasticsearch]
name=Elasticsearch repository for 9.x packages
baseurl=https://artifacts.elastic.co/packages/9.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
type=rpm-md

elasticsearch をインストールします。

[root@kibana01 ~]# dnf install --enablerepo=elasticsearch elasticsearch

インストールが完了すると、下記のようなメッセージが表示されます。
「The generated password for the elastic built-in superuser is :」の後に、管理者パスワードが表示されているので、控えておいてください。

--------------------------- Security autoconfiguration information ------------------------------

Authentication and authorization are enabled.
TLS for the transport and HTTP layers is enabled and configured.

The generated password for the elastic built-in superuser is : yPxxxxxxxxxxxxxxxx1w

今回のサーバは全体で 4GBメモリなので、elasticsearch のメモリ上限を 1GB で設定しておきます。

[root@kibana01 ~]# vi /etc/elasticsearch/jvm.options

ファイルに下記の内容を追記します。

-Xms1g
-Xmx1g

elasticserach サービスを有効化して、起動します。

[root@kibana01 ~]# systemctl enable elasticsearch

[root@kibana01 ~]# systemctl start elasticsearch

起動状況をログで確認します。

[root@kibana01 ~]# tail -3 /var/log/elasticsearch/elasticsearch.log
[2026-09-05T23:16:34,575][INFO ][o.e.c.m.MetadataCreateDataStreamService] [kibana01] adding data stream [ilm-history-7] with write index [.ds-ilm-history-7-2026.09.05-000001], backing indices [], and aliases []
[2026-09-05T23:16:34,576][INFO ][o.e.c.r.a.AllocationService] [kibana01] in project [default] updating number_of_replicas to [0] for indices [.ds-ilm-history-7-2026.09.05-000001]
[2026-09-05T23:16:34,668][INFO ][o.e.c.r.a.AllocationService] [kibana01] current.health="GREEN" message="Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.ds-ilm-history-7-2026.09.05-000001][0]]])." previous.health="YELLOW" reason="shards started [[.ds-ilm-history-7-2026.09.05-000001][0]]"

「current.health="GREEN"」となっていれば正常に動作しています。

curl で elasticsearch に接続確認をします。
basic 認証が必要となります。ユーザ名は「elastic」、パスワードはインストール時に控えたものです。

[root@kibana01 ~]# curl -k -u elastic:yPxxxxxxxxxxxxxxxx1w https://localhost:9200
{
  "name" : "kibana01",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "hvX--1HISQStr1eA3MIqng",
  "version" : {
    "number" : "9.5.3",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "367ec317ec5f668dd864d41be06052a567102fec",
    "build_date" : "2026-09-01T16:11:59.322249404Z",
    "build_snapshot" : false,
    "lucene_version" : "10.5.1",
    "minimum_wire_compatibility_version" : "8.19.0",
    "minimum_index_compatibility_version" : "8.0.0"
  },
  "tagline" : "You Know, for Search"
}

上記のような結果が出れば、認証して接続も確認できています。

basic 認証の情報を都度、コマンドラインに入れるのも手間なので、ファイルに保存して curl に参照させます。

[root@kibana01 ~]# vi ~/.netrc

下記の内容を保存します。

machine localhost
login elastic
password yPxxxxxxxxxxxxxxxx1w

再度、接続確認します。

[root@kibana01 ~]# curl -k --netrc https://localhost:9200

前に確認した内容と同様に結果が返ってくれば OK です。

kibana インストール

PGP キーは elasticsearch と同じなので、再度インストールする必要はありません。

リポジトリの設定をします。

[root@kibana01 ~]# vi /etc/yum.repos.d/kibana.repo

ファイルには下記の内容を記述します

[kibana-9.X]
name=Kibana repository for 9.x packages
baseurl=https://artifacts.elastic.co/packages/9.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

elasticsearch のバージョンを確認します

[root@kibana01 ~]# /usr/share/elasticsearch/bin/elasticsearch -V
Version: 9.5.3, Build: rpm/367ec317ec5f668dd864d41be06052a567102fec/2026-09-01T16:11:59.322249404Z, JVM: 26.0.2

elasticsearch と同じバージョンの kibana をインストールします。

[root@kibana01 ~]# dnf install kibana-9.5.3

kibana のセキュリティのために鍵の生成が必要です。下記を実行して生成します。

[root@kibana01 ~]# /usr/share/kibana/bin/kibana-encryption-keys generate
## Kibana Encryption Key Generation Utility

The 'generate' command guides you through the process of setting encryption keys for:

xpack.encryptedSavedObjects.encryptionKey
    Used to encrypt stored objects such as dashboards and visualizations
    https://www.elastic.co/guide/en/kibana/current/xpack-security-secure-saved-objects.html#xpack-security-secure-saved-objects

xpack.reporting.encryptionKey
    Used to encrypt saved reports
    https://www.elastic.co/guide/en/kibana/current/reporting-settings-kb.html#general-reporting-settings

xpack.security.encryptionKey
    Used to encrypt session information
    https://www.elastic.co/guide/en/kibana/current/security-settings-kb.html#security-session-and-cookie-settings


Already defined settings are ignored and can be regenerated using the --force flag.  Check the documentation links for instructions on how to rotate encryption keys.
Definitions should be set in the kibana.yml used configure Kibana.

Settings:
xpack.encryptedSavedObjects.encryptionKey: c64xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx195
xpack.reporting.encryptionKey: eb1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx103
xpack.security.encryptionKey: 6bbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc4d

最後の3行の鍵情報を kibana の設定ファイルに記述します。

kibana の設定ファイルを編集します。

[root@kibana01 ~]# vi /etc/kibana/kibana.yml

kibana の待ち受け IPアドレスと、前述の鍵情報を追記します。

server.host: "0.0.0.0"

xpack.encryptedSavedObjects.encryptionKey: c64xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx195
xpack.reporting.encryptionKey: eb1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx103
xpack.security.encryptionKey: 6bbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc4d

elasticserach サービスを有効化して、起動します。

[root@kibana01 ~]# systemctl enable kibana

[root@kibana01 ~]# systemctl start kibana

サービスの起動に失敗していないか、確認しておきます。

[root@kibana01 ~]# systemctl status kibana

messages ログを確認します

# tail -F /var/log/messages

下記のようなログが出ていれば、起動しています。

Sep  5 13:26:49 kibana01 kibana[2128]: Go to http://0.0.0.0:5601/?code=615705 to get started.

firewalld で kibana のポート番号 5601 を許可設定します。

[root@kibana01 ~]# firewall-cmd --add-port=5601/tcp --permanent

[root@kibana01 ~]# firewall-cmd --reload

なお、外部からのアクセスについては、接続元 IPアドレスや、VPNルータ経由とするなど含めて、適宜制限することもご検討ください。

セットアップで必要となるため、elasticsearch に接続する kibana_system ユーザのパスワードを生成します。

[root@kibana01 ~]# /usr/share/elasticsearch/bin/elasticsearch-reset-password -u kibana_system
This tool will reset the password of the [kibana_system] user to an autogenerated value.
The password will be printed in the console.
Please confirm that you would like to continue [y/N]y


Password for the [kibana_system] user successfully reset.
New value: hKxxxxxxxxxxxxxxxxpE

ブラウザから下記の URL で kibana のページにアクセスします。

http://133.125.237.198:5601/

・「Elasticを構成して開始」画面で「手動で構成」ボタンを押す


・「アドレス」が「https://localhost:9200」であることを確認して「アドレスを確認」ボタンを押す


・「ユーザー名」「パスワード」の入力画面が出るので、下記を入力する

ユーザー名: kibana_system
パスワード: 前述で作成した kibana_system のパスワード
認証局: 「この証明書を認識し、信頼する」にチェックを入れる


・「Elasticを設定」ボタンを押す


・「検証が必要です」画面が出るので、下記コマンドでコードを生成する

[root@kibana01 ~]# /usr/share/kibana/bin/kibana-verification-code
Your verification code is:  6X4 7X1

・生成したコードを画面に入力して「検証」ボタンを押す

設定の進捗画面が出ます。

最後に下記のようなメッセージのエラー画面が出ることがありますが、その場合はブラウザの画面を再読み込みしてください。

statusCode	503
error	"Service Unavailable"
message	"License information could not be obtained from Elasticsearch. Please check the logs for further details."

kibana のログイン画面が出れば正常です。

下記のアカウントでログインしてください。以後、kibana にはこのアカウントでログインします。

ユーザー名: elastic
パスワード: elasticsearch のインストール時に表示された管理者パスワード

・「統合を追加して開始する」の画面で「独りで閲覧」を選択

ホーム画面が表示されます。


kibana がメモリを確保し続けて swap するようになるとパフォーマンスが落ちるため、kibana のメモリ上限を設定します。

[root@kibana01 ~]# vi /etc/kibana/node.options

ファイルに下記を追記します

--max-old-space-size=1024

kibana を再起動します

[root@kibana01 ~]# systemctl restart kibana

filebeat インストール

PGP キーは elasticsearch と同じなので、再度インストールする必要はありません。

リポジトリの設定をします。

[root@kibana01 ~]# vi /etc/yum.repos.d/elastic.repo

ファイルには下記の内容を記述します

[elastic-9.x]
name=Elastic repository for 9.x packages
baseurl=https://artifacts.elastic.co/packages/9.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

kibana と同様に、elasticsearch と同じバージョンの filebeat をインストールします。

[root@kibana01 ~]# dnf install filebeat-9.5.3

filebeat で、elasticsearch の接続について、下記の設定をおこないます。

・接続プロトコルを https で指定
・証明書検証をしない
・接続ユーザのアカウント設定
  ユーザ: elastic
  パスワード: elasticsearch のインストール時に表示された管理者パスワード

filebeat の設定ファイルを編集します。

[root@kibana01 ~]# vi /etc/filebeat/filebeat.yml

「output.elasticsearch:」のセクションに、下記を追記します。
yml ファイルなので、各行頭の空白文字数に注意してください。

  protocol: "https"
  ssl.verification_mode: "none"
  username: "elastic"
  password: "yPxxxxxxxxxxxxxxxx1w"

構文チェックをします。

[root@kibana01 ~]# filebeat test config
Config OK

elasticsearch への接続確認をします。

[root@kibana01 ~]# filebeat test output
elasticsearch: https://localhost:9200...
  parse url... OK
  connection...
    parse host... OK
    dns lookup... OK
    addresses: ::1, 127.0.0.1
    dial up... OK
  TLS...
    security... WARN server's certificate chain verification is disabled
    handshake... OK
    TLS version: TLSv1.3
    dial up... OK
  talk to server... OK
  version: 9.5.3

上記のように表示されれば問題ありません。WARN が一件出ていますが、証明書検証なしに設定しているためです。

filebeat のセットアップを実施します。

[root@kibana01 ~]# filebeat setup
Overwriting lifecycle policy is disabled. Set `setup.ilm.overwrite: true` to overwrite.
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Loaded Ingest pipelines
[root@kibana01 ~]#

少し時間がかかりますが、上記のように表示されれば正常に完了です。

もし、実行中に状況を確認したい場合は、messages ログを見ます。

[root@kibana01 ~]# tail -F /var/log/messages

system モジュール有効化と、filebeat のサービス起動

filebeat の動作確認として、secure ログを kibana から確認できるように filebeat を設定してみます。

filebeat の system モジュールを有効化します。

[root@kibana01 ~]# filebeat modules enable system
Enabled system

secure ログを読み込むように、system モジュールの auth を有効にします。

[root@kibana01 ~]# vi /etc/filebeat/modules.d/system.yml

下記を変更します。

変更前

auth:
enabled: false

変更後

auth:
enabled: true

構文チェックをします。

[root@kibana01 ~]# filebeat test config
Config OK

filebeat のサービスを有効にして、起動します。

# systemctl enable filebeat

# systemctl start filebeat

念のためステータスを確認します。

# systemctl status filebeat

何回かサーバに ssh でログイン/ログアウトなどをして、secure ログを更新します。

kibana にログインして確認します。

・左上のハンバーガーメニューを押す


・「Analytics」の「Dashboards」を選択


・検索ボックスに「filebeat system」と入力
・検索された結果から「[Filebeat System] SSH login attempts ECS」を選択

画面に ssh ログインのアクセスとログイン成功の件数の履歴が表示されます。

7:38 の成功は、自分がサーバに ssh でログインした履歴です。

こうやって見ると、結構 ssh アタックが来ているのがわかりますね。
皆さん、ssh 接続は鍵認証を必須にしてくださいね。

次回はさくらのウェブアクセラレータからのログを kibana で確認できるようにします。

この記事を書いた人

H.M.

ネットアシスト運用チーム 

さくらのクラウド検定 2026年 第1回試験 合格