シナプス技術者ブログ

シナプスの技術者公式ブログ。インターネットで、鹿児島の毎日を笑顔にします。

マラソン会場Wi-Fiの監視サーバを構築

皆さま、こんにちは。ネットワーク課の岩元です。

鹿児島では毎年3月の初めに鹿児島マラソンが開催されており、弊社ではこのマラソンイベントにおいてWi-Fiサービスを提供しております。 また、マラソン当日のWi-Fiセッション数やトラフィックの監視も行っております。 今年も例年と同様の体制で実施いたしましたが、今回は研修の一環として若手スタッフにその業務を担当させる機会があり、 私自身は監視サーバの構築を担当させていただきました。

今回は技術的な内容ではなく、監視サーバの構築から設定までの体験談を中心にお話しさせていただきます。

当日までのスケジュール

マラソン当日までは次の段取りで実施しました。

  • OS(RockyLinux9系)のインストール
  • ZABBIXの導入から初期設定
  • ZABBIXに監視設定追加
  • 検証環境での監視
  • 鹿児島マラソン当日のWi-Fi接続状況の監視

監視サーバの構築環境

監視ツールはZABBIXを導入し、公式サイトに沿ってインストールから初期設定まで実施しました。

www.zabbix.com

今回は、下記のプラットフォームを選択しました。

プラットフォーム
ZABBIX バージョン 7.0 LTS
OSディストリビューション Rocky Linux
OSバージョン 9
ZABBIX COMPONENT Server, Frontend, Agent
データベース MySQL
Web Server Apache

ネットワーク構成

全体の構成図は以下の通りです。監視サーバだけは弊社ビルで管理し、それ以外の機器はマラソン会場に設置させる計画です。

会場に設置する機器
ONU 2台
ルータ(RT01・RT02) 2台
PoEスイッチ(PS01・PS02) 2台
アクセスポイント(AP01~AP04) 4台

光ケーブルについては、NTT様へ臨時回線の申込みを実施し、ONUまで光ケーブルを引き込んで頂きました。

監視方法

主な集計対象

  • 同時接続数
  • 1日ごとの累計接続数
  • トラフィック量

Wi-Fi接続数の確認

APから監視サーバにsyslogを送る設定をして、監視サーバは、送られてきたsyslogを保管し、スクリプトをもとに監視をしています。 APから送られてきた接続・切断情報をデータベースに書き込み、Zabbixでデータベースを確認しグラフ化させております。

トラフィックの監視

SNMPを用いて監視サーバからPoEスイッチを監視し、PoEスイッチの各ポートに流れるトラフィック量を集計させます。

SNMPマネージャー SNMPエージェント
監視サーバ PoEスイッチ

各機器の死活監視

ルータ機器(RT01/RT02)には監視サーバからのPing応答で死活監視をしております。

また、PoEスイッチと、APにはインターネット側からのPingパケットは届かないため、以下の設定で死活監視を実施しました。

  • 各ホスト(PoEスイッチ・AP)にWebシナリオを設定
  • 管理画面が閲覧可能かそうでないかで監視を実施

メールによる通知設定

障害を検知した際にメールで通知が届くように設定を入れました。

試しに図のようにPS01~AP01間のリンクをダウンさせたところ、ちゃんと障害を検知した機器名とIF名がメールで通知されるようになりました。

※メール内容一部抜粋
 Subject: Problem: 鹿児島マラソン PS01 Interface Gigabit Ethernet Interface 1: 
 Link down Date: Wed, 26 Feb 2025 03:48:40 +0900
 ~省略~
 Problem started at 03:48:40 on 2025.02.26
 Problem name: 鹿児島マラソン PS01 Interface Gigabit Ethernet Interface 1: Link down
 Host: PS01
 Severity: Average
 Operational data: Current state: down (2)
 Original problem ID: 536

ダッシュボードにグラフ追加

以下の5種類のグラフを表示させ、当日の監視ができるよう設定しました。

  • APごとの接続数の集計グラフ
  • APごとの2.4GHz利用数の集計グラフ
  • APごとの5.0GHz利用数の集計グラフ
  • 全APの1日ごとの累計接続集計グラフ
  • 全APの同時接続数の集計グラフ

検証時で躓いた事

SNMPの疎通不可

  • SNMPで集計していたトラフィック量のグラフが表示されなくなった。
  • サーバの設定は内容に間違いない
  • 正常に動作しているリンク間のLANケーブルと入れ替えを実施しても改善なし

最終的にPoEスイッチを再起動させたことで復旧しました。

Pingの疎通不可

  • Wi-Fi接続数やトラフィックは正常に測定できているものの、ZABBIX上でルータに障害が表示され続けている
  • 監視が落ちた際の、Ping Downがメールで通知されずにいた

ルータ機器の設定で、外部からのICMPパケットにフィルターを掛ける設定が入ってたので、ルータの設定担当者によりフィルターを解除して頂きました。また、メール通知の設定にも問題があり、アクション設定に記載している条件式も、スペルミスが発覚したのでそちらを修正して解消しました。

管理画面の閲覧エラーが検知されない

  • PoEスイッチ/AP機器のホスト設定において、管理画面がエラーになった場合の検知が出来ていない

Webシナリオ設定の中で、ステップ設定に記載しているURLに違うIPアドレスが入力されていたことを上長が発見して下さいました。また同様にWebシナリオにトリガーが付与されていなかったので、トリガー設定を追加したことで本件解消しました。

当日の監視状況

マラソン当日(03/02)の監視状況は以下の様子でした。

※弊社の都合上、数値は非表示にしています。

  • セッションの挙動

  • トラフィック状況

当日のセッションの増減について

同時接続数のグラフを分析すると、会場に観客やランナーが集まっていると予想される時間帯には、やはりセッション数の増加が確認されました。

なお当日の朝、データベース内のセッション数に不整合があることに上長が気づき、データベースを修正していただきました。

詳しく調べてみたところ、マラソン前日(2025/03/01)で集計していたセッションデータの end カラムが NULL値 のままだったため、翌日までセッション数が残置されておりました。これらのセッションの end カラムを前日の時刻に修正し、本番当日のセッションデータから除外する対応をとりました。

 2025/03/02, 09:01 にコマンド実行(macアドレスは伏字表記)
 mysql> select * from wifi where end IS NULL;
 +---------------------+------+------+------+-------------------+
 | start               | end  | ap   | band | mac               |
 +---------------------+------+------+------+-------------------+
 | 2025-03-01 10:32:30 | NULL | AP02 | 5GHz | **:**:**:**:**:** |
 | 2025-03-01 12:12:28 | NULL | AP03 | 5GHz | **:**:**:**:**:** |
 | 2025-03-01 12:44:25 | NULL | AP04 | 5GHz | **:**:**:**:**:** |
 | 2025-03-01 12:59:41 | NULL | AP03 | 5GHz | **:**:**:**:**:** |
 | 2025-03-01 13:33:05 | NULL | AP02 | 5GHz | **:**:**:**:**:** |
 | 2025-03-01 13:53:47 | NULL | AP02 | 5GHz | **:**:**:**:**:** |
 | 2025-03-01 15:33:51 | NULL | AP04 | 5GHz | **:**:**:**:**:** |
 | 2025-03-01 15:50:35 | NULL | AP02 | 5GHz | **:**:**:**:**:** |
 | 2025-03-01 17:02:11 | NULL | AP03 | 5GHz | **:**:**:**:**:** |
 | 2025-03-01 17:11:43 | NULL | AP03 | 5GHz | **:**:**:**:**:** |
 | 2025-03-01 17:58:29 | NULL | AP04 | 5GHz | **:**:**:**:**:** |
~省略~

なお、累計セッション数と、最大セッション数には影響していないとのことで、当日は無事に最後まで監視データを集計することができました。

所感

大変だったこと

  • 分からないところは、これまでの監視サーバの設定なども参考にしましたが、バージョンが異なる部分が多々あり、1つ1つ問題を解決することが大変でした。
  • SQLや、データベース管理の知識が無かったため、テーブルの操作に慣れるまでに時間がかかりました。
  • 監視データを取得するスクリプトは、過去のスタッフが作成されたものを参考にしましたが、細かい部分を理解する時間までは確保できていなかったです。

さいごに

紆余曲折はあったもののマラソン当日はしっかり監視が出来て良かったです。 ZABBIXの導入から設定、運用まで一から実施した経験がなかったため大変勉強になりました。