Yagura v0.2.0
Yagura v0.2.0
Windows イベントログも、syslog と同じ画面へ。
v0.1.0 に続く機能リリースです。引き続き評価・試用向けであり、本番利用はまだ推奨していません(v1.0 の公開基準は ADR-0006 参照)。
v0.2 の新機能
Windows イベントログの転送(Fluent Bit 配布キット)
- フォワーダ配布キット同梱: Fluent Bit(Apache-2.0)で Windows 端末のイベントログを RFC 5424 syslog として Yagura へ転送するキット(
forwarder/fluent-bit/)。サイレント導入対応(install.ps1)で、Intune / SCCM / GPO などの配布基盤から無人展開できます(#99) - 重大度・イベント ID・チャネルを保って転送: Windows の Level を syslog severity へ対応づけ(エラーはエラーとして色分け表示)。イベント ID とチャネルは RFC 5424 構造化データで運びます(#101、#104)
- 管理画面でキットを生成(NEW): 管理 UI の「フォワーダキット生成」画面で宛先・チャネルを選ぶと、自機を指す設定入りキット(ZIP)をそのままダウンロードできます(ADR-0008、#106)
- 手順書: Windows イベントログを Yagura へ転送する(Windows Server 2025 実機で導入 → OS 再起動 → 転送再開まで検証済み)
SQL Server への切替がフォームで完結
- 昇格ウィザードを改善: サーバ名・データベース名・認証方式(Windows / SQL Server)を項目で入力し、接続文字列は Yagura が組み立てます。SQL Server 認証のパスワードはマスク表示・DPAPI 暗号化(#102)
- 検証に失敗したら、次の一手を画面が提示: 証明書エラーやログイン失敗(18456 等)の原因別に、コピーして使える修復 SQL・接続オプションを表示します(#102)
閲覧画面の改善(試用フィードバック反映)
- 送信元 IP に逆引き(PTR)ホスト名を併記(送信者が名乗るホスト名とは別軸の補完。ADR-0007、#103)
- ログ詳細をオーバーレイ表示に(結果の下に埋もれない)+ 重大度の色帯ヘッダー(#93)
- 受信量グラフは棒にカーソルを合わせるとその時間帯と件数を表示(#94)
- ファシリティを「番号: 名前」で表示(例:
3: デーモン) - 取りこぼし(累計)カードに「サーバ起動からの累計・この画面を開いてからの増分」を併記し、過去分と進行中を見分けられるように(#97)
- 管理ポート(8515)で開いたときは左ナビに管理画面への導線を表示・カード高さ揃え(#96)
- Windows イベントログへの運用通知を日本語化(#95)
インストール / アップグレード
- 下の Assets から
Yagura-0.2.0.msi(約 45 MB)をダウンロードして実行 - v0.1.0 からのアップグレードは MSI 実行だけ: 設定・保存済みログ・SQL Server 接続はそのまま引き継がれます(実機で 0.1.0 → 0.2.0 系のアップグレードを検証済み。アップグレード中の受信停止は数秒で、停止区間は Yagura 自身が「受信できなかった時間帯」として記録します)
- 新規の場合: 機器の syslog 送信先をこのサーバの UDP 514 / TCP 514 へ → ブラウザで
http://<サーバ名>:8514/
改ざん確認: Yagura-0.2.0.msi.sha256 と突合してください。
Get-FileHash .\Yagura-0.2.0.msi -Algorithm SHA256セキュリティの前提: 既定構成は管理された社内ネットワーク向けです(受信は平文・閲覧 UI は認証なしで LAN 公開・管理操作は localhost 限定)。インターネットに露出するホストには置かないでください。詳細: SECURITY.md
ゼロ設定ファーストランの検証記録(ADR-0006 基準 1)
リリース時点の main に対し、GitHub Actions(windows-latest)上で実 MSI による自動検証を実行しました:
サイレントインストール → サービス起動 → UDP 514 へ送信 → 閲覧画面(8514)で確認 → アンインストール → 残置物確認。
- 検証 run: https://github.com/Yanai-Taketo/Yagura/actions/runs/28825195110(全 12 ステップ Passed。windows-latest・実 MSI)
- 機械可読サマリ(summary.json):
{
"schemaVersion": 1,
"runId": "YAGURA-E2E-37b2d59e398a41438a336027c619d300",
"mode": "Full",
"overall": "Passed",
"startedUtc": "2026-07-06T21:43:18.8141080Z",
"finishedUtc": "2026-07-06T21:43:49.7126741Z",
"msiPath": "D:\\a\\Yagura\\Yagura\\installer\\bin\\Release\\ja-JP\\Yagura.msi",
"udpPort": 514,
"viewerBaseUrl": "http://localhost:8514/",
"machine": {
"computerName": "runnervmuktm0",
"osVersion": "Microsoft Windows NT 10.0.26100.0",
"userName": "runneradmin"
},
"steps": [
{ "name": "preflight", "status": "Passed", "detail": "msi=D:\\a\\Yagura\\Yagura\\installer\\bin\\Release\\ja-JP\\Yagura.msi admin=ok", "durationMs": 45 },
{ "name": "install-msi", "status": "Passed", "detail": "msiexec exit code 0 (log: msiexec-install.log)", "durationMs": 21992 },
{ "name": "wait-service-running", "status": "Passed", "detail": "service \"Yagura\" is Running", "durationMs": 38 },
{ "name": "installed-state-evidence", "status": "Passed", "detail": "firewall rules present (Yagura Syslog (UDP 514); Yagura Syslog (TCP 514); Yagura Viewer (TCP 8514)), data root and firewall-rules.ini present", "durationMs": 1985 },
{ "name": "send-and-verify", "status": "Passed", "detail": "token YAGURA-E2E-37b2d59e398a41438a336027c619d300 visible on http://localhost:8514/ after 1 datagram(s) to udp/514", "durationMs": 1242 },
{ "name": "verify-interactive-framework-script", "status": "Passed", "detail": "blazor.web.js served: HTTP 200, 200538 bytes", "durationMs": 192 },
{ "name": "uninstall-msi", "status": "Passed", "detail": "msiexec exit code 0 (log: msiexec-uninstall.log)", "durationMs": 5069 },
{ "name": "residue-service-removed", "status": "Passed", "detail": "service \"Yagura\" removed", "durationMs": 2 },
{ "name": "residue-firewall-removed", "status": "Passed", "detail": "no Yagura* firewall rules remain", "durationMs": 260 },
{ "name": "residue-startmenu-removed", "status": "Passed", "detail": "start menu folder removed", "durationMs": 0 },
{ "name": "residue-dataroot-retained", "status": "Passed", "detail": "data root retained with yagura.db: C:\\ProgramData\\Yagura", "durationMs": 1 },
{ "name": "residue-installdir-removed", "status": "Passed", "detail": "install dir removed", "durationMs": 0 }
]
}