0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravelのログイン可否をZabbix Webシナリオで監視してみた話

Posted at

はじめに

ZabbixのWebシナリオ機能は非常に強力ですが、
LaravelのCSRFトークン(_token)やCookieの扱いには少し工夫が必要です。

今回は、

  • Laravelのログイン画面にアクセス
  • ログイン処理
  • ログアウト処理

という一連の流れをZabbixのWebシナリオで監視する方法をまとめました。


環境

  • Laravel 11.x(CSRF・Cookie有効)
  • Zabbix 7.0
  • Webサーバ:nginx + PHP-FPM
  • セキュリティトークン:
    • hiddenフィールド _token
    • Cookie XSRF-TOKEN

やりたかったこと

  1. トップページにアクセスして、必要なトークンとセッションを取得
  2. トークン&Cookieを使ってログイン処理をPOST送信
  3. 正常なログインができたことを確認
  4. 最後にログアウト処理まで実施

Webシナリオのステップ構成

ステップ1:トップページアクセス

  • URLhttps://your.domain.com/
  • 変数の取得
  {XSRF-TOKEN}    = regex:XSRF-TOKEN=(.*?); #最短マッチ
  {_token}        = regex:name="_token" value="(.*?)" #最短マッチ
  • 取得モード:ボディとヘッダー

ステップ2:ログイン処理

login_id = {login_id}
password = {password}
_token   = {_token}
  • ヘッダー:
Cookie: XSRF-TOKEN={XSRF-TOKEN}; cpkim_session={cpkim_session}
  • 期待するステータスコード:200

ステップ3:ログアウト処理


工夫ポイント

  • LaravelのCSRFトークンはページアクセスごとに変化するため、最初のステップで正確に取得が必要
  • Cookieも同様に取得&ステップ間で維持が必要
  • POST時のヘッダーにCookieをセットしないと419エラーになる
  • ステップを3つに分けることで、トラブル時の切り分けも容易に

監視の結果

  • Zabbix Webシナリオでもここまでできれば、実質E2E監視と同等の信頼性が得られます
  • Laravelベースの管理画面や業務アプリでも応用可能です

最後に

  • Laravelの仕組みを理解すれば、Zabbixだけでかなり高度な監視が可能です
  • CSRFトークンやCookieの扱いで悩んでいる方の参考になれば嬉しいです

ご要望があれば、スクリーンショット付きの詳細設定手順も追記いたします!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?