ハードウェア関連 目次

概要

USB thermometer-528018の扱い方全般。

Raspberry Pi

Raspberry Piに導入したDebian GNU/Linux 12(bookworm)にて使用する方法。
注意点としては、本機器を複数接続してもデバイスのIDが重複するため、1システム内では1個までに控えることを推奨する。

基礎情報

デバイスの接続

本機器を接続することで自動的に認識される。
正常に認識されていることを確認する。

# lsusb
Bus 001 Device 019: ID 0c45:7401 Microdia TEMPer Temperature Sensor

制御コマンドの準備

本デバイスからデータを出力するためのコマンドはgit上にソースが公開されている。

bitplane/temper

以下の手順に従い、gitよりソースコードを取得してコンパイルして使用する。

正常にコンパイルが終了すると、temperのバイナリが生成される。
必要な権限などを付与し、バイナリを然るべきディレクトリに移動させる。

# chmod 755 temper
# cp temper /usr/local/sbin

温度の取得

コマンドを実行すると、以下のようにタイムスタンプと温度が標準出力にカンマ切りで出力される。

# /usr/local/sbin/temper 
05-Jul-2024 14:06,34.640152

タイムスタンプはUTCで表示される。

データの活用

Zabbixに温度データを取り込み、時系列グラフを生成する。
データを取り込むに当たり、Zabbix Agentをインストールする。

# apt-get install zabbix-agent

詳細な設定などは省略

取り込み方法の考案

Zabbixに取り込むには、いくつかの方法が考えられる。

temperはroot権限による実行が必要となる。このため、1.の方式を実装するためにはZabbix Agentからsystem.run[]キーで実行出来るように、sudoを用いてzabbixユーザ権限でも実行が可能な状況を作る必要がある。また、Zabbix AgentのAllowkeyにsystem.run[*]を許可させる必要があることから、セキュリティ面のリスクも存在する。
また、3.の方式は標準出力の結果をコマンドに引き渡すスクリプトが必要となる。
以上のことから、今回は2.の方式を採用することとした。

cronとログの設定

定期実行は1分毎とするため、以下の設定を行う。

実行の度にログに追記されていくことから、ログ溢れを起こさない様にzabbix-agentのローテーションの設定に細工する。~、 対象となるログファイルを *.log に変更することで、ファイル名が合致すればローテーション出来るようにする。 また、保存期間が長いため、ローテーションは日次(daily)、世代数は14世代とした。

監視設定

監視設定はログ監視を行うアイテムと、その中から温度情報のみを取り込む依存アイテムを用いた構造とする。
ホストにより参照するログファイルが変わる場合には、ホストマクロとして{$TEMPERLOG}を定義して絶対パスを設定することで上書きする。


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-03-16 (日) 23:22:19