---
title: "赤外線カメラでも読み取れる、サーバのステータスモニターを自作してみました | grasys blog"
url: "https://blog.grasys.io/post/t-kitipot/homeserver-statusmonitor-infraredcamera/"
description: "目次 1. あらすじ 2. 心配した僕が最近編み出したのは 3. 余談 4. まとめ あらすじ 私は何年も趣味で自宅サーバを運用していますが、その間いろんな問題が発生しました。 - LAN ケーブルが原因不明で抜けた - ルータの電源アダプターが重すぎて勝手にタップから抜けた - サーバの SSL 証明書の自動更新が…"
---

# 赤外線カメラでも読み取れる、サーバのステータスモニターを自作してみました

-   ![](/_astro/noicon.CTHOhNiB_1HMs6A.webp)[Lycoris52](/authors/t-kitipot/)
-   公開日：2026年5月13日
-   カテゴリー：[Tech](/categories/tech/)
-   タグ：[#gpu](/tags/gpu/)[#Python](/tags/python/)[#インフラ](/tags/インフラ/)[#サーバ監視](/tags/サーバ監視/)[#個人開発](/tags/個人開発/)

![赤外線カメラでも読み取れる、サーバのステータスモニターを自作してみました](/_astro/hero.CMhjvZud_Z6p8RV.webp)

目次

1.  [あらすじ](#%E3%81%82%E3%82%89%E3%81%99%E3%81%98)
2.  [心配した僕が最近編み出したのは](#%E5%BF%83%E9%85%8D%E3%81%97%E3%81%9F%E5%83%95%E3%81%8C%E6%9C%80%E8%BF%91%E7%B7%A8%E3%81%BF%E5%87%BA%E3%81%97%E3%81%9F%E3%81%AE%E3%81%AF)
3.  [余談](#%E4%BD%99%E8%AB%87)
4.  [まとめ](#%E3%81%BE%E3%81%A8%E3%82%81)

## あらすじ

私は何年も趣味で自宅サーバを運用していますが、その間いろんな問題が発生しました。

-   LAN ケーブルが原因不明で抜けた
-   ルータの電源アダプターが重すぎて勝手にタップから抜けた
-   サーバの SSL 証明書の自動更新が失敗した
-   nvidia-smi が原因不明で落ちた
-   夏でサーバが爆熱になった

などなど、大なり小なり問題がありました。

**自宅サーバちゃんは高性能なGPUを積んでいて発熱しやすいもの**だったので、  
サーバに接続できないたびに火災が起きないか毎回焦りました。

![あらすじの画面](/_astro/01-fire-e6d40b39.Dtn6HPg6_Z2taCVM.webp)

## 心配した僕が最近編み出したのは

そんな僕が最近編み出したのは、これ

**監視カメラを別のインターネット回線にして、  
物理的にサーバの様子を確認できるステータスモニターを作ればいいでは？**

というアイディアがあったので、作成しました。

最終的にこんな感じになりました。

![心配した僕が最近編み出したのはの画面（1）](/_astro/02-blog01-04542636.DUVH3nq5_2iiY9x.webp)

家に余ったポータブル 14 インチ画面の光度を 0 まで下げることで、電気代節約できそう。。。？  
部屋の方も電気消しているので、監視カメラが勝手に赤外線カメラになった。

![心配した僕が最近編み出したのはの画面（2）](/_astro/03-blog02-807dc1c7.D7Osgk0T_ZV0Ofq.webp)

ちなみに、サーバの方に GUI がないので、bash から起動しています。

完成したコードはこちらのリポジトリーにて確認できます。

[github.comhttps://github.com/Lycoris52/Terminal\_Dashboard![心配した僕が最近編み出したのはのロゴ（1）](/_astro/04-favicons-1427ce21.nNS6Exf1_ZIeTer.webp)github.com![心配した僕が最近編み出したのはのロゴ（2）](/_astro/04-favicons-1427ce21.nNS6Exf1_ZIeTer.webp)github.com](https://github.com/Lycoris52/Terminal_Dashboard)

赤外線カメラでも各ステータスが確認できます。

Copy

Plain textcontent\_copy

```
一行目 = CPU 温度 | GPU 温度 | ネットワーク回線の状態
二行目 = nvidia-smi | サーバのヘルスチェック
```

仮に LAN ケーブルを抜いてみたらこうなります。

![心配した僕が最近編み出したのはの画面（3）](/_astro/06-image-16-b4c1605a.CKDi_MVo_Z9cVhH.webp)

ネットワーク状況とサーバのヘルスチェックが通らなくなりましたので、  
Dead に変わりました。

これである程度サーバがどういう死に方しているかを物理で把握できましたので、  
火災の心配も少なくなりました。

## 余談

結果だけ見ると簡単に作れそうですが、わりと時間がかかりました。  
いくつかの問題に遭遇しました。

#### ターミナルによってフォントが違う

なので、単純にテキストを描画することができません。  
回避策として、0 と 1 フラグを使って、文字列っぽいのを作成しました。  
0 の場合、背景色を描画する一方、  
1 の場所で背景色を表示するため描画しないようにしました。

下記は “D” 文字の列サンプルです。

[https://github.com/Lycoris52/Terminal\_Dashboard/blob/main/dashboard.py#L40-L48](https://github.com/Lycoris52/Terminal_Dashboard/blob/main/dashboard.py#L40-L48)

#### ターミナルによって表示できる色が違う

Windows のターミナルや mintty, powershell など非常に表示できる色は多いですが、  
生の bash だと表示できる色は非常に限られています。

しかも同じ色でも描画してみたらターミナルによって違う色になります。  
Black で指定しても、サーバで描画したのはほぼグレーに見えた場合もあります。

なので、Black のフォントの代わりに本来のターミナルの色の方が黒いので、  
Black を使う時、代わりに何も描画しないようにしました。

#### 暗い色じゃないと赤外線カメラでは見えづらい

**赤外線カメラ**はかなり敏感に光に反応しますので、**明るい色だと真っ白にしか見えません。**  
最初は緑と赤で正常時とエラー時を区別していましたが、赤外線カメラを通すとなにも違いがわかりません。

![暗い色じゃないと赤外線カメラでは見えづらいの画面](/_astro/07-blog04-d2b4c33a.DTiutEFe_ZCGnw5.webp)

なので、黒色と暗い赤色にして、画面の輝度を 0 にしたら見えました。

#### LCD 画面が Burn-in する問題

これは後で気付きましたが、ずっと同じ描画をしたら LCD 画面が Burn-in　  
（画面に同じ表示を長時間出し続けた結果、うっすら残像のように見える現象）  
する可能性が高いので、1 分ごとに画面を 3 秒間画面を暗くし、  
各ステータス更新が終わったらまた描画するようにしました。  
今回は TN パネルを使っていましたが、OLED パネルなど Burn-in しやすいものだともっと工夫しないといけないと思います。

## まとめ

趣味でやっている自宅サーバですが、やっぱり何年もやると色々と知恵を得られ、かなり貴重な存在だと感じました。  
これからも自宅サーバを育てながら、運用でしか得られない知見を積み重ねていきます。

## この記事を書いた人

[![](/_astro/lycoris52.CDov1moa_Z1fdESo.webp)](/authors/t-kitipot/)

### [Lycoris52](/authors/t-kitipot/)

仕様書より空気が読めない系エンジニア

-   [GitHub](https://github.com/Lycoris52/ "GitHub")
-   [LinkedIn](https://www.linkedin.com/in/kitipot-966078190/ "LinkedIn")
-   [Zenn](https://zenn.dev/lycoris52 "Zenn")
-   [Hugging Face](https://huggingface.co/Lycoris53 "Hugging Face")

[プロフィールと記事一覧](/authors/t-kitipot/)