Portfolio

個人で構築・検証したプロジェクトの記録

オンプレネットワークの設計や監視基盤の整備など、運用視点を持って手を動かしたプロジェクトをまとめています。構成図と手順を残し、あとから見返せる形で公開しています。

  • Linux
  • Network
  • Monitoring
  • Python
  • Security

01 · on-premises

オンプレネットワーク構築

完成

  • Linux
  • DMZ
  • VLAN
  • ACL
  • UFW
  • ポートフォワーディング

当初は自宅の Flask + Nginx でこの Web ページを公開していましたが、配信を AWS S3 + CloudFront へ移行したことに伴い、オンプレ側をネットワークから設計し直しました。上位ルータ AX1800 の配下に DMZ(192.168.5.x)を切って外部公開ホストを隔離し、内部は ER605 を境界に VLAN10(クライアント)/20(サーバ)/30(Wi-Fi・IoT)/40(テスト)へセグメント分割、ACL でゾーン間の通信を制御しています。

DMZ の Ubuntu では Minecraft サーバを運用しており、ポートフォワーディングで必要なポートのみを開放し、サーバ自体も使用するときだけ起動する運用にすることで、常時外部にさらす面を最小限に抑えています。テスト用の VLAN40 も同様に、検証時のみ立ち上げる構成としました。

  • Qiita 記事公開準備中DMZ 分離と VLAN セグメント設計についてまとめた記事
  • GitHub リポジトリ公開準備中ネットワーク構成と公開サーバの設定ファイル

構成図

クリックで拡大
オンプレネットワーク構成図

02 · monitoring

Zabbix 監視基盤

運用中

  • Zabbix
  • Raspberry Pi
  • Linux
  • Discord
  • API

自宅環境で監視の仕組みを自分で試すため、VLAN20(サーバセグメント)の Raspberry Pi に Zabbix Server を構築しました。監視しているのは、Raspberry Pi 自身、ER605(ルーター)、DMZ の公開サーバ(Ubuntu)の3台です。Raspberry Pi 自身と公開サーバは Zabbix Agent で CPU・メモリ・ディスクを、ER605 は ICMP で疎通と応答時間を確認しています。

障害の通知は Discord の Webhook に送ります。常に動いている Raspberry Pi と ER605 で警告以上の障害が起きたときに、発生と復旧を Discord へ自動で知らせるアクションを設定しました。公開サーバは使うときだけ起動するので、電源を切るたびに通知が届かないよう、通知の対象からは外しています。

監視値は画面で見るだけでなく、Zabbix API からも取得しています。API には読み取り権限と使えるメソッドを絞った専用ユーザーのトークンを使い、最新値と一緒に最終取得時刻や Agent の利用可否も確かめることで、値が来ていない項目を正常と見誤らないようにしています。管理画面と API は自宅のネットワーク内だけで使い、公開サーバとはセグメントを分けて監視以外の通信を止めていますが、接続はまだ HTTP のため、HTTPS 化に取り組んでいます。構成と検証の詳細は Qiita 記事にまとめました。

  • Qiita 記事公開済み監視・Discord 通知・API でのデータ取得を、実際に取れた値とあわせてまとめた記事
  • GitHub リポジトリ公開準備中Zabbix 構成の設定ファイル・手順

画面

Zabbix server health のダッシュボード(データ処理数とプロセスの利用率) · クリックで拡大
Zabbix のダッシュボードに表示された、1秒あたりのデータ処理数、データ収集プロセスと内部プロセスの利用率のグラフ
監視サーバーの CPU 使用率(2026年10月14日までの24時間) · クリックで拡大
監視サーバーの CPU 使用率の過去24時間の推移。ほぼ 0.5% 前後で推移し、午前3時半ごろに 2.6% まで上がっている