Gately v0.6.3 リリース
2026年11月2日
v0.6.3 をダウンロード · GitHub Release
パフォーマンス監視(#59)
新しい「パフォーマンス監視」モジュールが、ホストの CPU、メモリ、ディスク、負荷と、Gately プロセスの CPU、メモリ、ファイルディスクリプター、ゴルーチン数を 5 秒ごとに収集します。
- ページには 60 秒 / 1 時間 / 24 時間の推移が表示され、隣に稼働中サイトの処理中リクエスト、毎秒リクエスト数、5xx の割合、最初のバイトまでの時間の P95、バックエンドの状態が並びます。サイトをクリックするとサイト統計が開きます。
- Web サイトで最初のバイトまでの時間(リクエスト受信からレスポンスヘッダー送信まで)の計測を開始し、サイト統計に P50 / P95 の曲線が加わりました。Prometheus には
gately_site_request_duration_secondsとgately_host_*、gately_process_*メトリクスが加わり、Grafana ダッシュボードも更新されています。 - アラートルールでは指標、比較方法、しきい値を選び、さらに継続時間(1~1440 分)を設定します。条件が継続時間のあいだ満たされ続けたときだけ発火し、回復時には別途通知します。5xx の割合とレイテンシーには最小リクエスト数を設定でき、トラフィックが少ないときは判定しません。アラートは通知センター経由で送信され、購読する通知ルールがない場合はページに表示されます。
履歴はメモリ上にのみ保存され、再起動後は集計し直しになります。詳しくは パフォーマンス監視 を参照してください。
WAF と SafeLine の連携
WAF インスタンスは、リクエストを自前の SafeLine コミュニティ版の検知エンジンに渡してセマンティック解析させることができ、Gately の前後にリバースプロキシを追加する必要はありません。
- 検知エンジンのアドレス(
host:port、またはunix:にsnserver.sockのパスを付けたもの)を入力します。「接続テスト」はハートビートとサンプルの SQL インジェクションを送信し、往復時間と SafeLine が記録したイベント ID を表示します。 - SafeLine はルールグループより先に実行され、SafeLine だけを使う場合はルールグループを選ばなくても構いません。「検知のみ」モードは記録だけを行いブロックしません。
- ブロックは WAF のカウンター、WAF ログ(イベント ID 付き)、アクセスログ、サイト統計、侵入防御に計上されます。
- 検知のタイムアウト(既定 1 秒)、検査する本文の上限(既定 1024 KB、超過分はそのまま転送)、エンジンが利用できないときに通過させるか 503 を返すか(既定は通過)を設定できます。
詳しくは WAF ファイアウォール · SafeLine(雷池)との連携 を参照してください。
一括操作(#57)
リストの「並べ替え」モードは「並べ替え・一括」になり、項目にチェックを入れて有効化、無効化、削除をまとめて行えます。削除前には名前の一覧で確認します。Web サービスのサイトはリスナーをまたいで選択でき、ドメインの一括追加・削除、メインドメインのサフィックス置換(old.com → new.com は www.old.com と *.old.com も書き換えます)、圧縮、アクセスログ、CORS、転送ヘッダー、拒否時の切断、WAF 参照の一括変更に対応します。変更しなかったオプションは各サイトの元の値のままです。バッチ全体を先に検証して一度に保存し、1 件でも失敗すれば何も反映されず、影響を受けるリスナーだけを再読み込みして既存の接続は切りません。API は汎用の PUT <パス>-enable、POST <パス>-delete、および POST /api/webservice/sites/batch です。
STUN: ファイアウォールのポートを自動で開放
STUN ルールに「ファイアウォールを自動で開放」が加わりました。有効にすると Gately がこのマシンのファイアウォールで穿孔ポートを開放し(UPnP / NAT-PMP の内部ポートを設定している場合はそれも開放)、ルールの停止や削除時に閉じます。nftables(OpenWrt fw4、firewalld)と iptables(fw3、ufw)に対応し、ファイアウォールの再読み込み後 30 秒以内に自動で復元され、ルールカードに結果または失敗の理由が表示されます。詳しくは STUN 穿孔 を参照してください。
修正: ワイルドカード CNAME による発行失敗(#61)
*.example.com が example.com を指すようなワイルドカードがあるドメインでは、_acme-challenge も CNAME に解決され、DNS-01 の検証レコードが @ に書き込まれて、CA が TXT レコードを見つけられないと報告していました。現在は Gately が自分で判断します。明示的に設定された CNAME は従来どおりたどるため、検証を別のドメインに委任できます。ワイルドカードによって生じた CNAME は識別され、レコードは _acme-challenge.<ドメイン> に書き込まれます。証明書には「_acme-challenge の CNAME をたどらない」オプションも加わりました。詳しくは SSL 証明書 を参照してください。
Web サービスのログ(#62)
- アクセスログにブロックの理由(禁止、IP リスト、国、レート制限、WAF)を記録し、このインスタンスの管理画面にログインしているセッションを持つリクエストには管理画面のユーザー名を記録します。
- ログページに「禁止された送信元を隠す」(既定ではオフ。禁止のきっかけになったリクエストを監査のため残します)と「管理画面のリクエストを隠す」(既定ではオン)が加わりました。表示にのみ影響し、ログは従来どおり保存されます。
- IP フィルターは
!または-で始まる除外項目に対応し、アドレス、ネットワーク範囲、部分アドレスを指定できます。
その他の改善
- ネットワークトポロジーに「フィルター」が加わり、リスナー別、問題のあるノードのみ、ブロック理由別のサイト絞り込みができます。マスクには「エイリアス」スタイルが加わり、アドレス全体を Visitor-01、Backend-01 のような番号に置き換えます(#54)。
- README のツアー動画が紹介ページから再生されるようになりました。
- 依存関係の更新: go-jose を v4.1.7 に、klauspost/compress を v1.18.7 に更新しました。
修正と強化
- WAF サイトのバックエンド自身が 403 を返した場合、WAF のブロックとして扱われなくなりました。以前はブロック数に計上されて
waf.blockedイベントが発行され、WAF のブロックを購読する侵入防御ルールが通常の訪問者を禁止することがありました。 - 「管理画面のリクエストを隠す」は管理者のセッションだけを信頼します。読み取り専用アカウントのログイン Cookie ではリクエストに管理画面の印を付けられず、ブロックされたリクエストにも印は付きません。
- 一括操作は、重複排除の前に送信件数を制限します。一括設定した WAF インスタンスが存在しない場合は保存を拒否します。
- 同じホストで複数の Gately を動かす場合、自動で開放したファイアウォールルールはインスタンスごとに区別され、互いに削除し合いません。
アップグレードの注意
- Docker は新しいイメージを pull してコンテナを再作成します。Docker ソケットをマウントしている場合は、Gately の Docker ページから Gately 自身をアップグレードすることもできます。OpenWrt は新しい
.apk/.ipkを上書きインストールします。fnOS はアプリセンターで新しい.fpkを手動でインストールします。その他のデプロイ方法では「設定」からオンラインでアップグレードできます。