博士後期1年の小山です.CDSLの研究室内に共有ログサーバ(ELK Stack)を3年生と4年生に協力してもらいながら構築を行いました.2025年3月19日にこの共有ログサーバをリリースしました.この記事では共有ログサーバの概要を紹介します.
共有ログサーバは下図のアーキテクチャで構築されています.ログサーバは6台のノード(ls-master, ls-worker1, ls-worker2, ls-worker3, ls-worker4, ls-worker5)から構成されたKubernetesクラスタ上で動作しています.KubernetesクラスタのエンジンにはK3sを採用しています.各ノードのOSにはUbuntuを使用しています.ログサーバを構成するソフトウェアはElasticsearch,Logstash,Kibana (ELK Stack)です.これらはKubernetesクラスタ上にPodとして構築されています.各コンテナのPersistent VolumeのStorage Classにはnfs-subdir-external-provisionerを使いました.これによりPodにNASのNFSサーバがマウントされています.
共有ログサーバへのログ収集を想定している機器・サーバは,VMware ESXi, NAS, Wi-Fiルータ, DNSサーバ, DHCPサーバです.NAS, Wi-Fiルータ, VMware ESXiにはsyslogプロトコルを使ったログ転送機能があります.そのため,ログ転送機能を使いLogstashに設定したsyslogサーバへログを転送しています.DNSサーバ, DHCPサーバはKubernetesクラスタ上に配置されているためFilebeatでログを転送する設計にしました.
この他に,NASに外部公開のWebサーバから出力されたNginxのアクセスログが保存されています.NASにはファイルの変更を検知してLogstashへログを追加する機能がありません.そのため,共有ログサーバにFilebeatのPodを配置し,NASをNFSでPodにマウントしています.Filebeatでログの追加を検知すると,Elasticsearchにログを転送するよう設計しました.
共有ログサーバは,以下の機能を利用者に提供します.共有ログサーバを使うと利用者は独自でログサーバを構築することなく,ログの収集と閲覧を行えます.
- syslogプロトコル, beatsプロトコルに対応したログサーバ(Logstash)
- ログ検索のUIとダッシュボード(Kibana)
- ログ検索のAPI(Elasticsearch)
下図はKibanaのログ検索画面です.収集したsyslogが表示されています.スクリーンショットを撮影した時点で210,887件のログがElasticsearchに保存されています.

ログサーバの構築には,以下のメンバーが参加しました.
- 博士後期課程1年
- 小山 智之
- 学部4年生
- 川端 ももの
- 三上 翔太
- 学部3年生
- 岡田 京太郎
- 山崎 雅也
- 手塚 雄星