twlogeye

操作イメージ

twlogeyeはAIネイティブなログサーバーです。
SIGMAルール
https://github.com/SigmaHQ/sigma
を直接読み込み脅威の検知をすることができます。標準で Windows / Linux / ネットワーク機器 / Web 攻撃に対応した組み込みルールパックを備えており、簡単な設定ですぐに運用開始できます。 MCPサーバーに対応しておりAIがログ分析することを助けます。 WebhookによりAI対応の自動化ツールに通知することができます。 機械学習によりログから異常を検知できます。
対応しているログは
- syslog
- SNMP Trap
- Netflow
- Windowsイベントログ (Windows環境のみ)
です。
システムの構成は

です。
ログやレポートの保存にGo言語製の高速Key/Value Store Badgerおよび ビッグデータ向け列指向フォーマットParquetに対応しているため、 毎秒数万件のログを数TB単位で効率的に保存・集計できます。
Install
Linux/Mac OSの環境では、シェルスクリプトでインストールすることができます。
$curl -sS https://raw.githubusercontent.com/twsnmp/twlogeye/main/install/install.sh | sh
Linux/Mac OSではHomebrewでもインストールできます。
$brew install twsnmp/tap/twlogeye
Linux版のパッケージもリリースに用意してあります。 https://github.com/twsnmp/twlogeye/releases
Windowsは、リリースのzipファイルをダウンロードするかscoopでインストールできます。
>scoop bucket add twsnmp https://github.com/twsnmp/scoop-bucket
>scoop install twlogeye
Docker
GitHub ActionsによりビルドされたコンテナイメージはGitHub Container Registry (GHCR) で公開されています。
起動方法
$mkdir ./twlogeye
$vi ./twlogeye/config.yaml # 設定ファイルの編集
$docker run --rm -v ./twlogeye:/datastore \
-p 2055:2055/udp -p 514:514/udp -p 162:162/udp -p 1883:1883 \
-e TZ=Asia/Tokyo \
ghcr.io/twsnmp/twlogeye:latest
特定のバージョンを指定して起動する場合は、以下のようにタグ名を指定します:
$docker run --rm -v ./twlogeye:/datastore \
-p 2055:2055/udp -p 514:514/udp -p 162:162/udp -p 1883:1883 \
-e TZ=Asia/Tokyo \
ghcr.io/twsnmp/twlogeye:v0.7.0
config.yamlを編集してください。
ダッシュボードの表示
$docker exec -it <コンテナID> /twlogeye dashboard \
monitor anomaly netflow.count mqtt.count

基本的な使い方
操作イメージ

- ログを保存するディレクトリとSigmaルールを保存するディレクトリを作成
- 設定ファイルを作成
- Sigmaルールをコピーまたは、作成
- サーバーを開始
~$mkdir logs
~$mkdir sigma
~$code twlogeye.yaml
~$cp <sigma rules> sigma
~$twlogeye start
コマンドの説明
helpコマンドで確認できます。
$twlogeye help
AI-Native log server to monitor threats in logs with sigma rules
Supported logs are
- syslog
- SNMP trap
- NetFlow/IPFIX
- Windows event log
- OpenTelemetry
- MQTT
You can find sigma rule here.
https://github.com/SigmaHQ/sigma
Support MCP server and webhook notify for AI
Usage:
twlogeye [command]
Available Commands:
clear Clear DB of twlogeye
completion Generate the autocompletion script for the specified shell
dashboard Display twlogeye dashboard
gencert Generate TLS private key and cert
help Help about any command
log Search log
mcp Run MCP server via stdio
notify Search notify
otel Get OpenTelemetry info
reload Reload rules
report Get report
service Manage twlogeye as a Windows service
sigma Check sigma rules (list|stat|logsrc|field|check|test)
start Start twlogeye
stop Stop twlogeye
update Update twlogeye to the latest or specified version
version Show twlogeye version
watch Watch notify
Flags:
-p, --apiPort int API Server port (default 8081)
--apiServer string server IP or host name (default "localhost")
--caCert string API CA cert
--clientCert string API client cert
--clientKey string API client private key
--config string config file (default is ./twlogeye.yaml)
-h, --help help for twlogeye
--serverCert string API server cert
--serverKey string API server private key
Use "twlogeye [command] --help" for more information about a command.
ログサーバー
start コマンド
サーバーを起動するコマンドです。
操作イメージ

$twlogeye help start
Start twlogeye
Usage:
twlogeye start [flags]
Flags:
--anomalyAlgo string Anomaly detection algorithm (iforest|autoencoder|lstm|lof|knn|mahalanobis|zscore) (default "iforest")
--anomalyNotifyDelay int Grace period for sending notifications when detecting anomalies (default 24)
--anomalyReportThreshold float anomaly report threshold
--anomalyUseTime Include weekends and hours in the vector data for anomaly detection
-d, --dbPath string DB Path (.badger, .parquet) default: memory
--debug debug mode
--geoIPDB string Geo IP Database Path
--grokDef string GROK define file
--grokPat string GROK patterns
-h, --help help for start
--keyValParse Splunk Key value parse
-l, --logPath string Log DB Path (.badger, .parquet) default: dbPath
--logRetention int log retention(hours) (default 48)
--logRetentionDays int log retention(days)
--mcpEndpoint string MCP server endpoint
--mcpFrom string MCP server from ip address list
--mcpToken string MCP server token
--mibPath string SNMP Ext MIB Path
--mqttCert string MQTT server certificate
--mqttFrom string MQTT client IPs
--mqttKey string MQTT server private key
--mqttTCPPort int MQTT TCP Port
--mqttUsers string MQTT user and password
--mqttWSPort int MQTT Websock Port
--namedCaptures string Named capture defs path
--netflowPort int netflow port 0=disable
--notifyRetention int notify retention(days) (default 7)
--otelCA string OpenTelemetry CA certificate
--otelCert string OpenTelemetry server certificate
--otelFrom string OpenTelemetry client IPs
--otelHTTPPort int OpenTelemetry HTTP Port
--otelKey string OpenTelemetry server private key
--otelRetention int log retention(hours) (default 48)
--otelgRPCPort int OpenTelemetry gRPC Port
--parquetBufferSize int Parquet log buffer size (default 10000)
--parquetBufferTime int Parquet log buffer flush interval (seconds) (default 60)
--reportInterval int report interval (minute) (default 5)
--reportRetention int report retention(days) (default 7)
--reportTopN int report top n (default 10)
--resolveHostName Resolve Host Name
--sigmaConfigs string SIGMA config path
--sigmaRules string SIGMA rule path
--sigmaSkipError Skip sigma rule error
--sjis Windows eventlog SHIFT-JIS mode
--syslogDst string syslog dst
--syslogTCPPort int syslog TCP port 0=disable
--syslogUDPPort int syslog UDP port 0=disable
--trapCommunity string SNMP TRAP Community
--trapDst string SNMP TRAP dst
--trapPort int SNMP TRAP receive port 0=disable
--webhookDst string Webhook dst URL
--winAuth string Windows eventlog auth
--winEventLogChannel string Windows eventlog channel
-i, --winEventLogCheckInterval int Windows eventlog check interval
-s, --winEventLogCheckStart int Windows eventlog check start time (hours)
--winPassword string Windows eventlog password
--winUser string Windows eventlog user
Global Flags:
-p, --apiPort int API Server port (default 8081)
--apiServer string server IP or host name (default "localhost")
--caCert string API CA cert
--clientCert string API client cert
--clientKey string API client private key
--config string config file (default is ./twlogeye.yaml)
--serverCert string API server cert
--serverKey string API server private key
クライアント
log コマンド
操作イメージ

サーバーに保存されたログを検索するためのコマンドです。
$twlogeye help log
Search log via api
Usage:
twlogeye log [flags]
Flags:
--end string end date and time
-h, --help help for log
--logtype string log type (default "syslog")
--search string search text
--start string start date and time
Global Flags:
-p, --apiPort int API Server port (default 8081)
--apiServer string server IP or host name (default "localhost")
--caCert string API CA cert
--clientCert string API client cert
--clientKey string API client private key
--config string config file (default is ./twlogeye.yaml)
--serverCert string API server cert
--serverKey string API server private key
notify コマンド
サーバーに保存された通知を検索するコマンドです。
$twlogeye help notify
Search notify via api
Usage:
twlogeye notify [flags]
Flags:
--end string notify level
-h, --help help for notify
--level string notify level
--start string start date and time
Global Flags:
-p, --apiPort int API Server port (default 8081)
--apiServer string server IP or host name (default "localhost")
--caCert string API CA cert
--clientCert string API client cert
--clientKey string API client private key
--config string config file (default is ./twlogeye.yaml)
--serverCert string API server cert
--serverKey string API server private key
watch コマンド
サーバーで発生する通知をリアルタイムで監視するコマンドです。
$twlogeye help watch
Watch notify via api
Usage:
twlogeye watch [flags]
Flags:
-h, --help help for watch
Global Flags:
-p, --apiPort int API Server port (default 8081)
--apiServer string server IP or host name (default "localhost")
--caCert string API CA cert
--clientCert string API client cert
--clientKey string API client private key
--config string config file (default is ./twlogeye.yaml)
--serverCert string API server cert
--serverKey string API server private key
report コマンド
操作イメージ

レポートを表示するコマンドです。
$twlogeye help report
Get report via api
Usage:
twlogeye report <report type> [<anomaly type>] [flags]
Flags:
--end string end date and time
-h, --help help for report
--noList report summary only
--start string start date and time
Global Flags:
-p, --apiPort int API Server port (default 8081)
--apiServer string server IP or host name (default "localhost")
--caCert string API CA cert
--clientCert string API client cert
--clientKey string API client private key
--config string config file (default is ./twlogeye.yaml)
--serverCert string API server cert
--serverKey string API server private key
dashboard コマンド
ダッシュボードを表示するコマンドです。

操作イメージ

$twlogeye help dashboard
Display twlogeye dashboard.
<panel type> is
monitor | anomaly
syslog.count | syslog.pattern | syslog.error
trap.count | trap.type
netflow.count | netflow.ip.packet | netflow.ip.byte | netflow.mac.packet | netflow.mac.byte
netflow.flow.packet | netflow.flow.byte | netflow.fumble | netflow.prot
netflow.host | netflow.loc | netflow.country
winevent.count | winevent.pattern | winevent.error
otel.count | otel.pattern | otel.error | otel.metric.<id>
mqtt.count | mqtt.type
Usage:
twlogeye dashboard <panel type>... [flags]
Flags:
-h, --help help for dashboard
--history int Keep report history (default 100)
--topn int Number of top n lines. (default 5)
Global Flags:
-p, --apiPort int API Server port (default 8081)
--apiServer string server IP or host name (default "localhost")
--caCert string API CA cert
--clientCert string API client cert
--clientKey string API client private key
--config string config file (default is ./twlogeye.yaml)
--serverCert string API server cert
--serverKey string API server private key
otel コマンド
OpenTelemetryのメトリック、トレースを取得するコマンドです。
$twlogeye help otel
Get OpenTelemetry info via api
Usage:
twlogeye otel <metric|trace> <list|id> [flags]
Flags:
-h, --help help for otel
Global Flags:
-p, --apiPort int API Server port (default 8081)
--apiServer string server IP or host name (default "localhost")
--caCert string API CA cert
--clientCert string API client cert
--clientKey string API client private key
--config string config file (default is ./twlogeye.yaml)
--serverCert string API server cert
--serverKey string API server private key
stop コマンド
サーバーを停止するコマンドです。
$twlogeye help stop
Stop twlogeye via api
Usage:
twlogeye stop [flags]
Flags:
-h, --help help for stop
Global Flags:
-p, --apiPort int API Server port (default 8081)
--apiServer string server IP or host name (default "localhost")
--caCert string API CA cert
--clientCert string API client cert
--clientKey string API client private key
--config string config file (default is ./twlogeye.yaml)
--serverCert string API server cert
--serverKey string API server private key
service コマンド (Windows専用)
Windows環境で twlogeye をバックグラウンドサービス(Windows Service)として登録・管理するためのコマンドです。 管理者権限のコマンドプロンプトまたはPowerShellで実行します。
>twlogeye help service
Manage twlogeye as a Windows service (install, remove, start, stop, status).
Usage:
twlogeye service [command]
Available Commands:
install Install twlogeye as a Windows service
remove Remove twlogeye Windows service
start Start twlogeye Windows service
status Show status of twlogeye Windows service
stop Stop twlogeye Windows service
Flags:
-h, --help help for service
--name string Service name (default "twlogeye")
サービスのインストール
# デフォルト設定でインストール(自動起動)
>twlogeye service install
# 設定ファイルパスを指定してインストール
>twlogeye service install --config C:\twlogeye\twlogeye.yaml
サービスの開始・停止・状態確認
>twlogeye service start
>twlogeye service status
>twlogeye service stop
サービスの削除
>twlogeye service remove
Note: Windowsの標準コマンド(
sc.exe)やPowerShell(New-Service)、サービス管理ツール(services.msc)からも直接管理可能です。SCMから起動された場合は自動的にサービスモードで動作し、作業ディレクトリも実行ファイル配置場所に自動設定されます。また、サービスの起動・停止ログはWindowsイベントログ(「Windowsログ > アプリケーション」)に記録されます。
reload コマンド
サーバーにSigmaルールの再読み込みを指示するコマンドです。
$twlogeye help reload
Reload rules via api
Usage:
twlogeye reload [flags]
Flags:
-h, --help help for reload
Global Flags:
-p, --apiPort int API Server port (default 8081)
--apiServer string server IP or host name (default "localhost")
--caCert string API CA cert
--clientCert string API client cert
update コマンド
GitHubのリリースページから最新版(または指定したバージョン)をダウンロードして自身を更新するコマンドです。
$twlogeye help update
Update twlogeye to the latest or specified version from GitHub releases.
Usage:
twlogeye update [flags]
Flags:
-c, --check Check for updates only
-h, --help help for update
--version string Update to specified version
-y, --yes Update without confirmation
Global Flags:
-p, --apiPort int API Server port (default 8081)
--apiServer string server IP or host name (default "localhost")
--caCert string API CA cert
--clientCert string API client cert
--clientKey string API client private key
--config string config file (default is ./twlogeye.yaml)
--serverCert string API server cert
--serverKey string API server private key
clear コマンド
データベース上のログ、通知、レポートをクリアするコマンドです。
$twlogeye help clear
Clear DB of twlogeye via api type is "logs","notify","report"
Usage:
twlogeye clear <type> <subtype> [flags]
Flags:
-h, --help help for clear
Global Flags:
-p, --apiPort int API Server port (default 8081)
--apiServer string server IP or host name (default "localhost")
--caCert string API CA cert
--clientCert string API client cert
--clientKey string API client private key
--config string config file (default is ./twlogeye.yaml)
--serverCert string API server cert
--serverKey string API server private key
Util
gencert コマンド
サーバーとクライアントのgRPC通信を暗号化するための証明書、秘密鍵を作成するコマンドです。
$twlogeye help gencert
Generate TLS private key and cert for gRPC server/client
Usage:
twlogeye gencert [flags]
Flags:
--cn string CN for client cert (default "twsnmp")
-h, --help help for gencert
Global Flags:
-p, --apiPort int API Server port (default 8081)
--apiServer string server IP or host name (default "localhost")
--caCert string API CA cert
--clientCert string API client cert
--clientKey string API client private key
--config string config file (default is ./twlogeye.yaml)
--serverCert string API server cert
--serverKey string API server private key
クライアントは
$twlogeye gencert --clientCert c.crt --clientKey k.key
サーバーは
$twlogeye gencert --serverCert s.crt --serverKey s.key
で作成します。
sigma コマンド
Sigmaルールや組み込みルールパックの確認、およびWazuhルールの変換を行うためのコマンドです。
Check sigma rules (list|packs|stat|logsrc|field|check|test|convert-wazuh)
list: list rules
packs: list available embedded rule packs
stat: stat rules
logsrc: list log sources
field: list fields
check: check rule
test: test rule args
convert-wazuh: convert Wazuh rules XML to Sigma YAML
convert-wazuh-decoder: convert Wazuh decoders XML to named-capture regex patterns
Usage:
twlogeye sigma [flags]
twlogeye sigma [command]
Available Commands:
convert-wazuh Convert Wazuh XML rules to Sigma YAML rules
convert-wazuh-decoder Convert Wazuh XML decoders to named-capture regex patterns
Flags:
--custom Filter custom (file/db) rules only
-h, --help help for sigma
--pack string Filter rules by pack name
--sigmaPacks strings SIGMA rule packs (e.g. windows-essential,linux-auth)
--sigmaRules string SIGMA rule path
Global Flags:
-p, --apiPort int API Server port (default 8081)
--apiServer string server IP or host name (default "localhost")
--caCert string API CA cert
--clientCert string API client cert
--clientKey string API client private key
--config string config file (default is ./twlogeye.yaml)
--serverCert string API server cert
--serverKey string API server private key
主な利用例:
# 利用可能な組み込みルールパック一覧の表示
$ twlogeye sigma packs
# 指定したルールパックを有効にしてルール一覧を表示
$ twlogeye sigma list --sigmaPacks windows-essential,linux-auth
# 特定のルールパックのみを絞り込み表示
$ twlogeye sigma list --sigmaPacks windows-essential,linux-auth --pack linux-auth
# Wazuh XMLルールをSigma YAMLルールに変換
$ twlogeye sigma convert-wazuh -o ./converted-rules ./ruleset/rules/0095-sshd_rules.xml
# Wazuh XMLデコーダーをNamedCaptures用正規表現パターンに変換
$ twlogeye sigma convert-wazuh-decoder -o ./patterns ./decoders/0310-ssh_decoders.xml
MCP (Model Context Protocol) サーバー
TwLogEyeはMCPサーバー機能を備えており、Claude DesktopやCursor、AIエージェントなどのLLMクライアントと連携してログ分析やインシデント調査を行うことができます。
接続方法
1. stdioモード (Claude Desktop / Cursor等でのローカル連携)
twlogeye mcp コマンドで標準入出力 (stdio) 経由のMCPサーバーを起動できます。
Claude Desktopの設定例 (claude_desktop_config.json):
{
"mcpServers": {
"twlogeye": {
"command": "twlogeye",
"args": ["mcp"]
}
}
}
2. HTTPモード (リモート / Web連携)
設定ファイルで mcpEndpoint (例: 0.0.0.0:8080) を指定すると、/mcp エンドポイントでHTTP (SSE/Streamable HTTP) 経由の待ち受けを行います。
mcpToken が設定されている場合は、Authorization: Bearer <トークン> による認証が必要です。
MCPサーバー ツールの仕様
search_log
TwLogEyeからログを検索します。
- パラメータ:
start(string): 検索を開始する日時 (例:2025/08/30 11:00:00)。指定しない場合は1970/01/01 00:00:00になります。end(string): 検索を終了する日時 (例:2025/08/30 11:00:00)。指定しない場合は現在時刻になります。type(string): ログの種別 (syslog,trap,netflow,winevent,otel,mqttのいずれか)。filter(string): ログをフィルタリングするための正規表現。limit(int): 取得する最大件数(デフォルト: 100、最大: 1000)。
search_notify
TwLogEyeから通知を検索します。
- パラメータ:
start(string): 検索を開始する日時 (例:2025/08/30 11:00:00)。指定しない場合は1970/01/01 00:00:00になります。end(string): 検索を終了する日時 (例:2025/08/30 11:00:00)。指定しない場合は現在時刻になります。level(string): 通知レベルをフィルタリングするための正規表現 (例:high|critical)。指定しない場合はフィルタリングされません。レベル名にはinfo,low,medium,high,criticalなどがあります。limit(int): 取得する最大件数(デフォルト: 100、最大: 1000)。
investigate_ip
指定したIPアドレスに関するGeoIP情報、DNS逆引きホスト名、および関連するログ・通知を集約調査します。
- パラメータ:
ip(string): 調査対象のIPアドレス。start(string): 調査対象の開始日時。指定しない場合は24時間前になります。end(string): 調査対象の終了日時。指定しない場合は現在時刻になります。limit(int): 取得する関連ログの最大件数(デフォルト: 20、最大: 100)。
test_sigma_rule
作成したSigmaルールYAMLを過去ログに対してシミュレーション評価(バックテスト)し、マッチ件数とマッチしたログのサンプルを取得します。
- パラメータ:
rule(string): YAML形式のSigmaルール文字列。type(string): テスト対象のログ種別 (syslog,trap,netflow,winevent,otel,mqtt。デフォルト:syslog)。start(string): テスト対象の開始日時。指定しない場合は24時間前になります。end(string): テスト対象の終了日時。指定しない場合は現在時刻になります。limit(int): 取得するマッチログサンプルの最大件数(デフォルト: 5、最大: 50)。
get_otel_trace
指定したTrace IDのOpenTelemetryトレース詳細(スパンツリー)を取得します。
- パラメータ:
id(string): 取得するOpenTelemetryのTrace ID。
get_otel_metric
指定したMetric ID/KeyのOpenTelemetryメトリクス詳細を取得します。
- パラメータ:
id(string): 取得するOpenTelemetryのMetric ID。
get_report
TwLogEyeからレポートを取得します。
- パラメータ:
start(string): レポートの開始日時 (例:2025/08/30 11:00:00)。指定しない場合は1970/01/01 00:00:00になります。end(string): レポートの終了日時 (例:2025/08/30 11:00:00)。指定しない場合は現在時刻になります。type(string): レポートの種別 (syslog,trap,netflow,winevent,otel,mqtt,anomaly,monitorのいずれか)。wineventは Windowsイベントログを指します。
get_anomaly_report
TwLogEyeから異常検知のレポートを取得します。
- パラメータ:
start(string): レポートの開始日時 (例:2025/08/30 11:00:00)。指定しない場合は1970/01/01 00:00:00になります。end(string): レポートの終了日時 (例:2025/08/30 11:00:00)。指定しない場合は現在時刻になります。type(string): 異常検知レポートの種別 (syslog,trap,netflow,winevent,otel,monitorのいずれか)。wineventは Windowsイベントログを指します。
get_last_report
TwLogEyeから最新のレポートを取得します。
- パラメータ:
type(string): レポートの種別 (syslog,trap,netflow,winevent,otel,anomaly,monitorのいずれか)。wineventは Windowsイベントログを指します。
get_sigma_evaluator_list
TwLogEyeからSigmaルール評価器のリストを取得します。
- パラメータ: なし
get_sigma_rule_id_list
TwLogEyeからSigmaルールのIDリストを取得します。
- パラメータ: なし
get_sigma_rule
TwLogEyeから指定したIDのSigmaルールを取得します。
- パラメータ:
id(string): 取得するSigmaルールのID。
add_sigma_rule
TwLogEyeに新しいSigmaルールを追加します。
- パラメータ:
rule(string): YAML形式のSigmaルール文字列。
delete_sigma_rule
指定したIDのSigmaルールをTwLogEyeから削除します。
- パラメータ:
id(string): 削除するSigmaルールのID。
reload_sigma_rule
TwLogEyeにロードされているSigmaルールを再読み込みします。
- パラメータ: なし
get_sigma_packs
利用可能な組み込みSigmaルールパックの一覧、または指定したパック内のルール一覧を取得します。
- パラメータ:
pack(string, 任意): 特定のパック名 (例:windows-essential,linux-auth)。省略時は全パックの概要(説明・ルール数)を返します。
convert_wazuh_rules
WazuhのXMLルールを階層依存関係(if_sid, if_matched_sid)および相関分析属性(frequency, timeframe)を含めてSigma YAMLルールに変換します。
- パラメータ:
xml(string, 必須): 変換対象のWazuh XMLルール文字列。min_level(int, 任意): 変換対象とする最小Wazuhルールレベル (デフォルト 0)。skip_frequency(bool, 任意): 頻度/時間相関ルールの除外フラグ。default_product(string, 任意): デフォルトのSigma logsource product (例:linux,windows)。default_service(string, 任意): デフォルトのSigma logsource service (例:sshd,sudo)。
convert_and_add_wazuh_rule
WazuhのXMLルールをSigma YAMLルールに変換し、直接TwLogEyeのSigmaルールデータベースへ追加・自動再読み込みを行います。
- パラメータ:
xml(string, 必須): 変換対象のWazuh XMLルール文字列。min_level(int, 任意): 変換対象とする最小Wazuhルールレベル (デフォルト 0)。skip_frequency(bool, 任意): 頻度/時間相関ルールの除外フラグ。default_product(string, 任意): デフォルトのSigma logsource product。default_service(string, 任意): デフォルトのSigma logsource service。
convert_wazuh_decoder
WazuhのXMLデコーダーをTwLogEyeの名前付き正規表現抽出パターンに変換します。
- パラメータ:
xml(string, 必須): 変換対象のWazuh XMLデコーダー文字列。
MCP Resources (リソース)
MCPクライアントから以下のURIでリソースを直接参照できます:
twlogeye://status: システム状態・リソース情報twlogeye://sigma/rules: 有効なSigmaルールIDリストtwlogeye://sigma/packs: 組み込みSigmaルールパック一覧(説明・ルール数)twlogeye://reports/{type}/latest: 各種最新レポート (syslog,trap,netflow,winevent,otel,mqtt,monitor,anomaly)
MCP Prompts (プロンプト)
investigate_incident: インシデント対象(IP、ホスト名、通知ID)をもとに深層調査を行うプロンプトdaily_security_briefing: 過去24時間のセキュリティ状況を集約する日次ブリーフィングプロンプトtest_and_add_sigma_rule: Sigmaルールのバックテストから登録・反映を行うプロンプトsearch_log,search_notify,get_report,get_last_report,get_anomaly_report: 各種検索・レポート取得プロンプト
設定ファイル
–config パラメータで指定するか、カレントディレクトリの ./twlogeye.yaml を設定ファイルとして使用します。YAML形式です。
コア設定
dbPath: データベースファイルのパスを指定します(例:./twlogeye.badger,memory)。logPath: ログ専用のデータベースパスを指定します。Parquet形式(例:parquet:///path/to/logs,./logs.parquet)またはBadger形式(例:./logs.badger)が指定可能です。省略時はdbPathと同一になります。parquetBufferSize: Parquetログ保存時のメモリ内バッファサイズ(件数、デフォルト: 10000)。parquetBufferTime: Parquetログバッファのフラッシュ間隔(秒、デフォルト: 60)。
受信データポート
syslogUDPPort: SyslogメッセージをUDPで受信するポート。syslogTCPPort: SyslogメッセージをTCPで受信するポート。netflowPort: NetFlowデータを受信するポート。snmpTrapPort: SNMPトラップメッセージを受信するポート。otelHTTPPort: OpenTelemetryメッセージをHTTP/JSONで受信するポート。otelgRPCPort: OpenTelemetryメッセージをgRPCで受信するポート。mqttTCPPort: MQTTブローカーのTCPポート。mqttWSPort: MQTTブローカーのWebSocketポート。
OpenTelemetry設定
otelRetention: OpenTelemetryのログ保持期間を時間単位で指定します。otelFrom: OpenTelemetryの許可されたクライアントIPアドレスのリスト。otelCert: OpenTelemetryサーバーの証明書パス。otelKey: OpenTelemetryサーバーの秘密鍵パス。otelCA: OpenTelemetryのCA証明書パス。
MQTTサーバー設定
mqttUsers: MQTTクライアントのユーザー名:パスワードのカンマ区切りリスト。mqttFrom: MQTTの許可されたクライアントIPアドレスのリスト。mqttCert: MQTTサーバーの証明書パス。mqttKey: MQTTサーバーの秘密鍵パス。
Windowsイベントログ収集
winEventLogChannel: 監視するWindowsイベントログのチャンネル名(例: “System”, “Security”)。winEventLogCheckInterval: イベントログのチェック間隔を秒単位で指定します。winEventLogCheckStart: イベントログの監視を開始する起点(過去からの時間)を時間単位で指定します。winRemote: リモートWindowsマシンのホスト名またはIPアドレス。winUser: リモートマシン認証用のユーザー名。winPassword: 認証用のパスワード。winAuth: 使用する認証方法。winLogSJIS: WindowsログがSHIFT-JISエンコーディングである場合にtrueを設定するブール値フラグ。
転送先設定
syslogDst: Syslogメッセージの転送先ホストのリスト。trapDst: SNMPトラップの転送先ホストのリスト。webhookDst: Webhookの転送先URLのリスト。mqttDst: MQTTメッセージの転送先MQTTブローカーのリスト。trapCommunity: トラップに使用されるSNMPコミュニティ文字列。
データ保持期間
logRetention: ログの保持期間を時間単位で指定します。logRetentionDays: ログの保持期間を日単位で指定します(Parquet保存時はlogRetentionとlogRetentionDaysの大きい方が適用されます)。notifyRetention: 通知データの保持期間を日単位で指定します。reportRetention: レポートデータの保持期間を日単位で指定します。
レポート設定
reportInterval: レポート生成の間隔を分単位で指定します。reportTopN: レポートに含める上位N件の数。
異常検知
anomalyReportThreshold: 異常検知の閾値を表す浮動小数点値。anomalyUseTimeData: 異常検知分析に時間と曜日のデータを含めるかどうかのブール値フラグ。anomalyNotifyDelay: 異常検知時に通知を送信するまでの猶予期間を時間単位で指定します。anomalyAlgo: 異常検知アルゴリズム (iforest,autoencoder,lstm,lof,knn,mahalanobis,zscore) を指定します(デフォルト:iforest)。
ログ解析
grokPat: Grokパターンを含むファイルのパスのリスト。grokDef: Grok定義ファイル(例:grok-patterns)のパス。namedCaptures: ログから特定の情報を抽出するための名前付きキャプチャグループの設定。keyValParse: キー/値ログ解析を有効または無効にするブール値フラグ。
Sigmaルール
sigmaPacks: 組み込みの推奨ルールパックのリスト(各パックの対象ログや詳細な検知項目は組み込みルールパック詳細ガイドを参照)。以下のパックが利用可能です:windows-essential: Windows標準セキュリティイベント(認証失敗、ログ消去、新規サービス等)windows-ad: Active Directory / ドメインコントローラ脅威(Kerberoasting、DCSync等)windows-client: Windows端末・クライアント脅威(不審なRDP接続、UACバイパス、USB接続等)linux-auth: Linux認証系ログ(SSHブルートフォース、sudo失敗等)linux-system: Linuxシステム永続化・改ざん(cron改変、systemdサービス追加等)network-threats: ネットワーク機器・FW(VPN認証失敗、管理ログイン失敗、スキャン検知等)web-attacks: Webサーバー攻撃(Log4Shell、パストラバーサル、SQLi、WebShell等)wazuh-linux: Wazuh変換Linuxルール(SSHDブルートフォース、sudo不正昇格、PAM失敗等)wazuh-web: Wazuh変換Webルール(脆弱性スキャナー、隠しファイルアクセス等)wazuh-network: Wazuh変換ネットワーク機器ルール(Cisco管理ログイン失敗、FortiGate VPN連続失敗等)wazuh-compliance: コンプライアンス基準(PCI-DSS, NIST, GDPR, CIS等に基づく監査・アカウント管理・改ざん検知)
sigmaRules: 個別のSigmaルールファイルまたはディレクトリのパス。sigmaConfigs: Sigma設定ファイルのパス。sigmaSkipError: 処理中にエラーが発生した場合にルールをスキップするかどうかのブール値フラグ。
その他の設定
resolveHostName: IPアドレスからホスト名を解決するかどうかのブール値フラグ。geoIPDB: GeoIPデータベースファイルのパス。mibPath: SNMP MIBファイルのパス。mcpEndpoint: Model Context Protocol (MCP) のエンドポイントURL。mcpFrom: MCPに送信されるメッセージの”From”アドレス。mcpToken: MCPの認証トークン。debug: デバッグモードを有効または無効にするブール値フラグ。
環境変数
以下の環境変数が利用可能です。
| Key | Descr |
|---|---|
| TWLOGEYE_APIPORT | API ポート番号 |
| TWLOGEYE_APISERVER | API サーバーアドレス |
| TWLOGEYE_SERVERCERT | サーバー証明書のパス |
| TWLOGEYE_SERVERKEY | サーバーの秘密鍵のパス |
| TWLOGEYE_CLIENTCERT | クライアント証明書のパス |
| TWLOGEYE_CLIENTKEY | クライアントの秘密鍵のパス |
| TWLOGEYE_CACERT | CA証明書のパス |
ビルド方法
ビルドには
https://taskfile.dev/
を利用します。
$task
Copyright
LICENSEを参照してください。
Copyright 2025 - 2026 Masayuki Yamai