Raspbian

Raspberry Pi用としてメンテナンスされているDebian系ディストリビューションの一つ。
Debian系なのでAPT(apt-get)を利用してパッケージをインストールする事が出来る。
初期設定を簡素化する為にRaspbian特有のシェルスクリプトが準備されており、
Linux初心者でも楽に最低限のOS設定をする事が出来るようになっている。


イメージバックアップ

Raspberry PiではSDカードにOSをインストールする事を前提としている為、
ddコマンドによるイメージバックアップ・リストアが簡単に実行できるが、
小さい容量のSDカードへリストアすると、SDカード容量不足でddが欠落してしまう。
 
よって、Raspberry Pi(Raspbian)では専用のOSコピー(バックアップ)コマンドが用意されており、
こちらを利用する方が正確にコピーを取得する事が出来る。
 

 rpi-clone


Crystal Signal Pi

Raspberry Piでパトライト(回転灯)を実装する追加モジュール。
(株)インフィニットループが開発・販売をしており、amazonで購入出来る。
APIも用意されている為、監視システムからパトライト代わりに光らせる事も可能。

1. インストール
詳細はオフィシャルページのマニュアル参照。
インストール先やapacheのスクリプト設定は固定となるが、インストール用スクリプトが用意されている。
インストールにはroot権限が必要なのでrootユーザか、sudoでスクリプトを実行する。
スクリプト実行時はシェルをbashにする必要があるので、bash以外を利用している人は注意する。

# curl -O https://raw.githubusercontent.com/infiniteloop-inc/crystal-signal/master/install.sh
# ./install.sh


2. アップデート
Crystal Signal Piのミドルウェアアップデートもスクリプトから実行する。
OSアップデートと同時にCrystal Signal Piのミドルウェアもアップデートする場合、
下記のオプションを[fullupdate]に変更して実行する

# curl -O https://raw.githubusercontent.com/infiniteloop-inc/crystal-signal/master/install.sh
# ./install.sh update


3. スクリプト修正
apacheのListenを[0.0.0.0]からIPアドレス指定に変更している場合、
スクリプトからAPIを叩けなくなり、結果としてCrystal Signal Piのアラート停止ボタンも使えなくなる。
停止ボタンを使えるようにするには、下記コマンドを実行してスクリプトを修正する。

・apacheのListenを192.168.0.1にしている場合
---
# cd /var/lib/crystal-signal/scripts/
# mv Ack.sh           Ack.sh-
# mv AckNewestOnly.sh AckNewestOnly.sh-
# cat Ack.sh-           | sed -e 's/localhost/192.168.0.1/g' > Ack.sh
# cat AckNewestOnly.sh- | sed -e 's/localhost/192.168.0.1/g' > AckNewestOnly.sh
# chmod 755 Ack.sh AckNewestOnly.sh
# rm Ack.sh- AckNewestOnly.sh-


4. APIスクリプト
Crystal Signal PiはAPIを備えているので、スクリプトを用意すればパトライト代わりに光らせる事が出来る。
参考までに作成したスクリプトを掲載。
バーストした時にLEDへ負荷が掛からないように、一度APIを叩くと1分間はAPIを叩けないようにしてみた。

 スクリプト [zabbix_csp.pl]


 実行方法


乱数生成器

乱数を取得する際に使用する/dev/randomは、
デバイスドライバ等から収集した乱数エントロピーが溜まらないとReadLock状態になる。
Raspberry Piはハードウェアの乱数生成器を搭載しているので、
エントロピープール参照元をハードウェアに設定する事でエントロピーを確保出来る。

・Raspberry Pi 2 Model B
---
# modprobe bcm2708-rng
# echo "bcm2708-rng" >> /etc/modules
# apt-get install rng-tools 
# systemctl enable rng-tools
# systemctl start rng-tools

・Raspberry Pi 3 Model B
---
# modprobe bcm2835-rng
# echo "bcm2835-rng" >> /etc/modules
# apt-get install rng-tools 
# systemctl enable rng-tools
# systemctl start rng-tools

・エントロピープールの確認
---
# cat /proc/sys/kernel/random/entropy_avail