コンピュータ: 2017年1月アーカイブ

というわけで(何がというわけなのか(^^;)、長い間、社内の Web 開発・実験機&DNSコンテンツサーバとして使用していた DELL PowerEdge 830 の火を落としました。

最近は、Web 開発・実験はインターネット上にホスティングしているサーバで行っており、第三のDNSコンテンツサーバとして使用していただけだったので、思い切って Raspberry Pi 3(Raspbian) で作ったサーバに切り替えちゃったのです。

20170119_dell_PE830.JPG
この 830 は何年使ってたかなあ。

以前はうちで DELL サーバの販売も行っていて、この 830 は確かお客さんから「830 の5年保守が切れるんだけど、もう一年だけ使いたいんで、なんとか故障時の交換部品を確保しといてもらえんか。次のサーバもお宅で買うから」と懇願され、「じゃ、うちの開発作業用マシンとして 830 の中古を買います。故障が発生した時は、この 830 を代替機として持っていきますよ。」という話で購入したんだよなあ。
当時、すでに 830 の新品は売ってなかったので、ネット上の中古サーバ専門店みたいなところで買って。

で、一年経って約束通りうちでサーバを買い替えてもらい、代替機にする必要もなくなったんで、DNSコンテンツサーバとしても使い始めたという。

色々な思い出がありますよ。

一番の思い出はアレか(^^; アレだな。

以前、うちでメンテナンスさせてもらってた(開発は広島地場の某社が行ったそうな)PHP で作られた Web システムのテスト環境をセットアップしたらサーバが固まっちゃって。

最初は HDD の障害かと思って交換作業をしたりしたんだけど症状が変わらなくて、結局、件の PHP 製システムが糞重くてメモリを食いつぶし、 OOM Killer が重要なプロセスをバンバン消していたためと判明(^^; OOM Killer、こまめに優先順位の設定とかしとかないと、OS の重要なプロセスでも容赦なく殺すからな(^^;

いやあ、うちは Perl や PHP で作ったシステムが多かったので、(重いアプリケーションサーバが動く Java なんかと違い)あまりメモリを食いつぶすようなことってなかったんで、さっと OOM Killer に考えがいかんかったわ(^^;

このシステムを初期開発した広島の某社のオリジナル(?)フレームワークが糞で、DBからレコードを取ってくるのに基本的に緩い条件で大量のレコードを取ってきて、そのレコードをプログラム内で全件なめて、ロジックで必要なレコードを抽出するという形になってた。そこでメモリを消費したんだなあ。複雑な SQL を使えない仕様になってたんよ。
最初はフレームワークの仕様に則ってうちでメンテナンス(プログラム修正等)してたんだけど、途中から仕様を無視して、直接複雑な SQL を書いて(てほど複雑でもないんだけど)、DB から必要なレコードだけ取ってくるようしたけど(笑)

まあ、現在、(うちはからんでませんが)このシステムの次期バージョン開発が「まともなフレームワーク」を元に行われているようです(笑)

あらら。変に思い出話が長くなってしまいましたが(^^;、そういうわけで、830 よ、長いことありがとう。
既に事務所内で運用していたサーバの移行作業は終わったので、そろそろ旧サーバを止めようかな・・・と思いつつ、ログを眺めていると・・・

Jan 19 16:08:09 host3 smartd[3478]: Device: /dev/sdb, 95 Currently unreadable (pending) sectors
Jan 19 16:38:10 host3 smartd[3478]: Device: /dev/sdb, 95 Currently unreadable (pending) sectors

ありゃあ、30分毎に SMART からのメッセージが出てたのねえ。
CentOS では、標準で S.M.A.R.T の情報を確認する smartd が動いている。異常を発見したらメールを送る・・・なども出来るが、俺は設定してない(笑)

とりあえず、詳細を見てみる。

# smartctl -a /dev/sdb
smartctl version 5.38 [x86_64-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen

・・・

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   016    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   136   136   054    Pre-fail  Offline      -       95
  3 Spin_Up_Time            0x0007   157   157   024    Pre-fail  Always       -       247 (Average 236)
  4 Start_Stop_Count        0x0012   100   100   000    Old_age   Always       -       22
  5 Reallocated_Sector_Ct   0x0033   098   098   005    Pre-fail  Always       -       137
  7 Seek_Error_Rate         0x000b   100   100   067    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   140   140   020    Pre-fail  Offline      -       30
  9 Power_On_Hours          0x0012   093   093   000    Old_age   Always       -       49591
 10 Spin_Retry_Count        0x0013   100   100   060    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       22
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       25
193 Load_Cycle_Count        0x0012   100   100   000    Old_age   Always       -       25
194 Temperature_Celsius     0x0002   253   253   000    Old_age   Always       -       22 (Lifetime Min/Max 15/38)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       163
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       95
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always       -       0

・・・

むむむ・・・

確かに Current_Pending_Sector(現在異常があって代替処理を待つセクタ)があるな。
それも、ワースト値に近い 95セクタもだ(^^;;;

問題がないか、簡易なセルフテストをしてみる。

# smartctl -t short /dev/sdb
smartctl version 5.38 [x86_64-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 1 minutes for test to complete.
Test will complete after Thu Jan 19 17:35:56 2017

Use smartctl -X to abort test.

「Thu Jan 19 17:04:34 2017 にはテストが終わる」ってことなので、この時間まで待って内容確認。

# date
2017年  1月 19日 木曜日 17:36:10 JST
# smartctl -a /dev/sdb
smartctl version 5.38 [x86_64-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen

・・・

196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       163
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       95
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always       -       0

SMART Error Log Version: 0
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%     49592         -

・・・

おっ。「Completed without error」だから問題無しか?

Current_Pending_Sector は 95セクタあるけど、実質的な問題はないってことかね?
俺もあんまり(というか、実際のところ、ほとんど(^^;)smartctl コマンドを知らないのでアレですが、ま、もう火を落とすサーバだからいいか・・・

この間、UPS が壊れて夜中に電源落ちちゃってたからなあ・・・あの時にそれなりのダメージはあったと思うが・・・

「Completed without error」だからね・・・「Completed without error」だからね・・・

もし、識者でお暇な方がいらっしゃったら、ぜひコメント等でご教授いただければ幸いです。
Raspberry Pi 3(Raspbian)+motion で構築する監視カメラの話。

とりあえず、手持ちの Web カメラ 2台で試してみたけど、どちらもちゃんとカメラとして認識された。
一台は Elecom のちゃんとしたヤツ(モデル名忘れた(^^;まあ、中身は中国の Vimicro 社製なんだけど(笑))、もう一台はこのブログでも記事を書いたことのある中国製の(最初からモデル名など一切不明(^^;)のクソ安いドライブレコーダー(PC カメラモードあり)。

例えば格安ドラレコを PC モードに切り替えて lsusb コマンドで確認すると、

root@host1:~# lsusb
Bus 001 Device 006: ID 0472:0068 Chicony Electronics Co., Ltd
Bus 001 Device 005: ID 0472:0068 Chicony Electronics Co., Ltd
Bus 001 Device 004: ID 056e:0072 Elecom Co., Ltd Mouse
Bus 001 Device 007: ID 0603:8612 Novatek Microelectronics Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

こんな感じで「Novatek Microelectronics Corp.」というデバイスが増えている。

/var/log/messages にも、

Jan 10 18:48:28 host1 kernel: [615642.053250] usb 1-1.3: Product: USB PC Camera
Jan 10 18:48:28 host1 kernel: [615642.053263] usb 1-1.3: Manufacturer: NOVATEK
Jan 10 18:48:28 host1 kernel: [615642.054327] uvcvideo: Found UVC 1.00 device USB PC Camera              (0603:8612)
Jan 10 18:48:28 host1 kernel: [615642.056216] input: USB PC Camera              as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0/input/input3

こんな風にカメラとして認識された結果が残っている。
まあ、実際 motion で使えてるんで、確実にカメラとして動作してるんだけど。

で、Elecom のカメラの方は、日頃お仕事用PCに取り付けているので(まあ、ビデオチャットなんかほとんどしないんだけどね(^^;)、この格安ドラレコの方をとりあえず監視カメラ用として使っておこうかな・・・と思ってたんだけど・・・駄目やね(^^;

20170111_camera.JPG
Raspberry を再起動したら、一旦格安ドラレコの PC カメラモードも解除されちゃって、「メモリ(刺している SD カードへのアクセス可)」モードか「PC カメラ」モードかの選択画面で止まっちゃう。人間が物理的に操作しないと Raspberry Pi 3 にカメラとして認識されないまま。

こりゃいかん(^^;
サーバを遠隔(岩国の自宅とか)からリブートすることもあるからなあ。
それでカメラが止まっちゃうようじゃ、監視カメラ(防犯用)の意味がないよなあ(^^;

というわけで、格安物でいいのでカメラ専用の機種買わないと。
昔は、こういうデバイスって、「○○社の△△というモデルなら認識する。でも、最新モデルは認識しなくなった」みたいに UNIX/UNIX ライクな OS で使おうとしたらけっこうモデル選びがシビアだったけど、格安ドラレコで OK だったんで、たいがいの物が大丈夫そう。

プリンタのインクも買わないといけないし、夕方にエディオンにでも寄ってみるか。
昨夜、手動で実行すると motion が deamon として起動することを確認したんだけど、Raspberry Pi3 を置いているのは十日市の事務所なので、ブラウザで実際にカメラが動いていることを確認することはできなかった。

なので、今朝、事務所に寄って確認してみたけど、この

root@host1:~# motion -l /tmp/motion.log -c /etc/motion/motion.conf -d 9
root@host1:~# start-stop-daemon --start --oknodo --exec /usr/bin/motion -b --chuid motion

どちらのコマンドでも、シェル上から直接実行したら、ちゃんと motion が deamon として起動して、

http://127.0.0.1:8081

で、実際にカメラが撮影している画像を、ブラウザ上からストリーミングで確認することができた。

20170111_motion.JPG

うーむ・・・わからん(^^;

自動起動スクリプトを、実行すると、

root@host1:~# /etc/init.d/motion start
[ ok ] Starting motion (via systemctl): motion.service.

という具合に起動メッセージは出るが、

root@host1:~# ps auxww|grep motion
root      4697  0.0  0.2   3776  1908 pts/2    S+   08:41   0:00 grep motion

実際には起動していないのである。

スクリプト触って、ALL ログを出すようにしてみんとわからんなあ・・・

まあ、とりあえず手動では起動出来るので、先に動体検知撮影の設定の方をすることにしよう。

<追記>

先程、Raspberry Pi3 を再起動したら、問題なく motion が自動起動された???

手動で実行しようとすると、

root@host1:~# start-stop-daemon --start --oknodo --exec /usr/bin/motion -b --chuid motion
/usr/bin/motion already running.

ん? ps コメンドで確かめてみると、

root@host1:~# ps auxww|grep motion
motion     649  1.0  0.8  53568  8152 ?        Sl   12:31   0:12 /usr/bin/motion
root      1934  0.0  0.2   3780  1908 pts/0    S+   12:51   0:00 grep motion

あ、ちゃんと motion ユーザで motion が実行されている。てことは、/etc/init.d 以下の自動起動スクリプトで起動したんだ。

突然自動起動出来るようになった原因はわからないが、もしかしたら一度手動で start-stop-daemon コマンドで実行したせいかもしれない。
それで、今まではパーミッション関係の問題があって新規作成できなかったディレクトリが作成できたので先に進めたとか、そういうことはあるからだ。

ということで、「なぜか motion が自動起動できねえ!!」と言うてる人がいたら、一度手動で起動してみることをお薦めします(笑)
Raspberry Pi 3(Raspbian Jessie)を動体検知式の監視カメラにするために motion のインストールをしてみたんだけど、うまくいかない。

状況としては、「motion が deamon で起動しない」というもの。
-n オプションを付けて、「non-daemon mode」でなら立ち上がる。

でも、手動で、deamon モードで起動してみたら、ちゃんと動いたなあ・・・

root@host1:~# motion -l /tmp/motion.log -c /etc/motion/motion.conf -d 9
[0] [NTC] [ALL] conf_load: Processing thread 0 - config file /etc/motion/motion.conf
[0] [ALR] [ALL] conf_cmdparse: Unknown config option "sdl_threadnr"
[0] [NTC] [ALL] motion_startup: Motion 3.2.12+git20140228 Started
[0] [NTC] [ALL] motion_startup: Logging to file (/tmp/motion.log)

プロセスを見ると、

root@host1:~# ps aux|grep motion
root      2820  1.7  0.7  53444  7544 ?        Sl   01:06   0:00 motion -l /tmp/motion.log -c /etc/motion/motion.conf -d 9

やはり立ち上がっているようだ。

※今、自宅なのでブラウザでストリーミングを視聴出来るかは未確認。

コマンド直打ちなら起動するのに、なぜに sevice motion start では上手く起動しないのか・・・

/etc/init.d/motion を見てみると、直接 motion を起動するのではなく、start-stop-daemon 経由で、

start-stop-daemon --start --oknodo --exec /usr/bin/motion -b --chuid motion 

と、起動してるんだな。

手動で実行してみると、

root@host1:~# start-stop-daemon --start --oknodo --exec /usr/bin/motion -b --chuid motion
root@host1:~# ps auxww|grep motion
motion    3199  2.7  0.8  53568  8008 ?        Sl   02:22   0:00 /usr/bin/motion

あらら。立ち上がるなあ・・・謎。

まあ、取り敢えずこの間買った激安ドライブレコーダーがそのまま USB カメラとして使えたのは良かったけど・・・

このアーカイブについて

このページには、2017年1月以降に書かれたブログ記事のうちコンピュータカテゴリに属しているものが含まれています。

前のアーカイブはコンピュータ: 2016年10月です。

次のアーカイブはコンピュータ: 2017年2月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら