NanoPi NEO2を超コンパクトなアルミケースに入れる

NanoPi NEO2用のケースはついこの前100均の灰皿に入れるというのをやったばかりだけど、やはり大きすぎるのが気に入らなかった。安っぽすぎるし。
そこで、中国の通販でアルミのエンクロージャを購入した。今回は基板サイズ40x40mmの NanoPi NEO2を入れるとかなり良さげなサイズ(外寸45x47x18.5mm)。お値段はUS$2.06で送料無料。以前に買ったRaspberryPi Zero WとDAC基板を入れたケースよりだいぶ小さいのに少し高い。

今回、途中でカメラのSDカードがぶっ壊れて撮ってた写真が失われたので写真は穴あけ加工以降のものしかない。

NanoPi NEO2をコンパクトなアルミケースに入れる7
これは購入したサイトの商品説明画像。本体は筒になっているので上下にカパッと分離するタイプではない点が注意。

NanoPi NEO2をコンパクトなアルミケースに入れる8
サイズ。寸法的には間違ってない感じだけどなんか思ってたより内側が大きかった。
内側の横幅が39.7±0.15mmと思っていたが、ネジ穴間であって内側の横幅はもう少しあった。だからNanoPi NEO2を入れると1mm程度遊びがある。幅が足りないよりはマシだけど。

NanoPi NEO2をコンパクトなアルミケースに入れる1
すでに穴あけが終わってるけど金色のケースを裏返してヒートシンク側を上にしてその上にNanoPi NEO2を置いた。大きさはこんなもんよということで。
まぁ、ヒートシンクといってもフィンが申し訳程度のものだけど。
それと、NanoPi NEO2の側は以前に取り付けたピンヘッダを外している。ピンヘッダがあるとケースに当たって入らなかった。

NanoPi NEO2をコンパクトなアルミケースに入れる2

金色のケースの本来の向きはこう。ケースの高さ的にNanoPi NEO2のUSB-Aコネクタが収まらないのでケースの天板を削っている。

NanoPi NEO2をコンパクトなアルミケースに入れる3
NanoPi NEO2の基板を納めた状態で後側。
基板の足の部分はケースの断面四隅を貫通するネジ穴がある関係で普通のスペーサーやナットが使えかなったのでストローを切ったものを噛ませている。
暗くて見えないかもだけど、これまで使用していたNanoPi NEO2用ヒートシンクを外してサーマルパッドでケースに放熱させるようにした。microUSBコネクタの下あたりに少し青みががった四角いのが見えてるのがそれ。こうすることでヒートシンク分の高さが要らなくなる。そのために放熱フィン付きケースを選んだわけだし。

NanoPi NEO2をコンパクトなアルミケースに入れる4
ケースのフタをして前面側。今回は予定どおりぴったりの穴になっている。USB-Aコネクタの横に隙間があるじゃないかと思われるかもだけど、写っているとおり、USB-Aコネクタの一番奥に飛び出た金具があるのでその分余分に削る必要があった。

NanoPi NEO2をコンパクトなアルミケースに入れる5
ケースの奥行きがあと5mm程度短ければ良かったんだけど、奥行き(内寸45mm)があるせいで電源用のmicroUSBコネクタが奥まったところにある。そこにUSBケーブルでつなぐにはケーブルコネクタの「つまみ」が通る大きさの穴にしなければならない。幾つかのmiscoUSBケーブルの「つまみ」の大きさを確認しどれでも通るだけの穴を開けた。

NanoPi NEO2をコンパクトなアルミケースに入れる6
ケーブルをつなぐとこんな感じ。

今回は我ながら会心の出来。不器用なのでここまで予定通りにできることはなかなか無い。
そして、すんばらしくコンパクト。見た目では奥行き以外はNanoPi NEO/NEO2専用かと思うくらいぴったり。

2018年2月23日追記: ケースの放熱フィンが無いに等しいくらい小さいが、フィンだけでなくケース全体で放熱するのでNanoPi NEO/NEO2専用ヒートシンクよりも数段上の放熱力がある。NanoPi NEO2にUSBカメラをつなぎ、ffmpegで1280x720 17FPS H.264でエンコード&ストリーミングをさせるという負荷を数日かけたままで安定動作するだけでなくSoCの温度センサーで30℃程度という低温をキープできた。環境はケースに対して風を当てない無風状態、室温5〜10℃。

NanoPi NEO2をコンパクトなアルミケースに入れる7
2018年4月1日追記: 室温が昼に24度の頃。
稼働条件は上の追記と同じでffmpegで1280x720 17FPS H.264でエンコード&ストリーミングをさせっぱなし。(NanoPi NEO2を監視カメラにしているので) 画像の左下のグラフがSoCの温度を示すものだが、室温に影響され16時頃に最高温度、4時頃に最低温度になるのがわかる。最高温度が50℃以下で最高・最低温度の差が10℃ちょっとなのでケースによる放熱は順調で安定しているといえる。

関連記事:

ELK Stackでシステム監視 kibanaでVisualizeとDashboard作成のキホンのキ

前々回はkibanaでSearchオブジェクトを作成したので、今回はそれを利用してVisualizeオブジェクトを作成し、ダッシュボードにグラフを設置する。今回は推移を見るためのグラフとして「エリアチャート」(だけ)を使用する。

Visualize作成

kibanaでVisualize作成 1
画面1:
左列のメニューから[Visualize]を選択。
初めてだと存在しないが、作成済みのVisualizeがリスト表示される。上部の(新規追加)を押す。

kibanaでVisualize作成 2
画面2:
利用できるグラフ等のタイプがリスト表示される。今回はエリアチャートを使用したいので[ Area chart]をクリックする。

kibanaでVisualize作成 3
画面3:
作成済みのSearchオブジェクトがリスト表示されるのでグラフ化したいのを1つ選んでクリックする。今回はcollectdで取得したホストのメモリ使用状況のSearchオブジェクトを選択する。

kibanaでVisualize作成 4
画面4:
エリアチャートなのでX軸とY軸で考える。まずY軸方向に何を入れるかということで初期値で存在するY-Axisの左横の(右向き三角)を押して開く。

kibanaでSearch確認 1
画面5:
(実際にはここでVisualize画面から離れてSearch画面を開くと言うことではないが、)
グラフのX軸とY軸に何を入れるかが重要なので、メモリのSearchオブジェクトの構成を確認。
推移を見るグラフを作りたいのでX軸は時間にしたい。時間になるものは@timestampが適当。
Y軸は「メモリの使用量」(アバウト)の値なのでvalueが適当。
ただし、このSearchオブジェクトには実際には「メモリの使用量」(?)を抽出しているのではなく、メモリのfree, active, inactive, wired, cacheの各値が入っている。それらの種類がtype_instance。
だから5種類のデータが含まれている。

kibanaでVisualize作成 5
画面6:
Y-AxisにはY軸側の設定を入れる。
上で確認したようにY軸方向は「値」にしたい。グラフにはその値の何を使いたいか「最大」「最小」「平均」その他を選択する。
今回は「平均」にしたいのでAggregationをAverageにした。FieldはY軸方向に何を表示したいかなので「値」であるvalue。
必ず先にAggregationを指定してからFieldを指定する。Aggregationを変更した場合はFieldが未選択になるので再度指定しなければならない。
Y軸の設定をしただけではグラフとして成立しないのでX軸側の指定を行う。
bucketsでX-Axisをクリック。

kibanaでVisualize作成 6
画面7:
X-Axisが表示されるのでAggregationをプルダウンメニューから選択する。
今回はX軸を時間軸にするので[Date Histogram]を選択する。

kibanaでVisualize作成 7
画面8:
Fieldには時間軸となるものを指定するので画面5で確認した@timestampを指定する。
インターバルは「分」「時間」「日」その他を選択できるけどAutoでも良い。
上の画像ではCustom Label欄を空白にしているが、X軸の下に表示する文字列の指定。「時間」でも何でも良いので書いといた方が良いかも。でないと未指定では例えば「@timestamp per 5 minute」などと表示されることになる。

これだけだとメモリのfree, active, inactive, wired, cacheの全て値が1つのグラフに入ってわけがわからないので各type_instanceに分離してやる。そこで [Add sub-buckets]をクリック。

kibanaでVisualize作成 8
画面9:
Split Areaは1つのチャートに複数のグラフ。Split Chartはチャートを複数に分けてそれぞれ1グラフにするもの。
今回は1つのチャートに複数の折れ線グラフを描きたい。そこで[Split Area]をクリック。

kibanaでVisualize作成 9
画面10:
Split Areaが新しく表示される。
今回はSub AggregationのブルダウンメニューでTermsを選択する。

kibanaでVisualize作成 10
画面11:
Field欄は「何によって分離するか」を選ぶので画面5で見たようにメモリのfree, active, inactive, wired, cacheという種類があるtype_instanceを指定したい。プルダウンメニューで選べるのはtype_instace.keyword。
Order byとかOrderは何を何順というものなので好みで。Sizeは分離した項目を幾つまで表示するかというもので重要なのに結構指定し忘れやすい。今回の例では元々type_instanceに含まれるのが5種類なのでSizeの初期値5でぴったりだが、5種類以上含まれるのに初期値のままにしているとOrderで指定された上位5項目しか表示されない。

kibanaでVisualize作成 11
画面12:
ここまでで一応全て指定したのでグラフを描いてみる。上部の(グラフ描画)を押す。この記事ではこのタイミングで押すとしているが、X軸Y軸共に最低1つ指定してグラフとして成立するようになった時点でグラフは描ける。グラフ表示は自動更新しないので指定を変更して確認したい度にを押す。
グラフの色が気に入らなければグラフの凡例部分をクリックすると上の画像の上部右端部分のように色見本から色を選択可能。
思ったとおりに出来た(または作成途中で一時的にキープ)ということでこのVisualizeを保存するには上部の[Save]をクリック。

kibanaでVisualize作成 12
画面13:
新しいVisualizeオブジェクトとして名前を付けて[Save]を押す。

collectdで集めたデータはこれと同じ方法でグラフ化するのが多いのでこれを憶えればいろいろ対応できる。
次に、違うパターンとしてcollectdで収集したロードアベレージのデータをグラフ化する。

kibanaでSearch確認 2
画面14:
上の画像は作成済みのロードアベレージSearchオブジェクトで抽出したデータ。
前述のメモリと同じく推移を見るグラフを作りたいのでX軸は時間にしたい。時間になるものは@timestampが適当。(これは同じ)
Y軸が前述のメモリとは違ってlongterm, midterm, shorttermというフィールド名があってそれに値が入っている。グラフのY値は「値」にするので今回はY軸方向はlongterm, midterm, shorttermの3つとなる。

kibanaでVisualize作成 13
画面15:
過程は大幅に省略したが、Y-AxisでFieldにlongtermを選択する、[Add metrics]を押してFieldにmidtermを選択する、[Add metrics]を押してFieldにshorttermを選択する、ということを行った。
X軸側はAggregationでDate Histogramを選択し、Fieldで@timestampを選択、ということをした。つまり時間軸を作っただけ。

kibanaでVisualize作成 14
画面16:
で、先に作ったメモリとロードアベレージのグラフで何が最も違うかというと、メモリの方は「内訳」なので各値を積み重ねるとおおよそメモリの総量になる、ロードアベレージの方はそれぞれ独立した値なので各値を積み重ねちゃダメということ。
kibanaのエリアチャートの初期値は「積み重ねる」(Stacked)なのでロードアベレージでは変更してやらないといけない。
上の方に[Options]タブがあるのでそれをクリック。
Chart Modeをstackedからoverlapに変更。
その他は好みで。例えば上の画像ではグラフの線をカクカクの折れ線ではなく曲線のsmoothedに変更している。グラフのY軸の最大値・最小値や凡例の位置もこの画面で。

Dashboard作成

kibanaでDashboard作成 1
画面17:
左メニューからDashboardをクリック。
これまでにDashboardを1つも作成していないなら[+ Create a dashboard]ボタンがあるのでそれを押す。(上の画像)
既に1つ以上のDashboardを作成しているならDashboardリストが表示されて[+ Create a dashboard]ボタンが存在しないので上の方にある (新規作成)を押す。

kibanaでDashboard作成 2
画面18:
新規作成したダッシュボードは当然空なのでemptyであるという表示がある筈。
上部の[Add]を押して部品(Visualizeオブジェクト等)を追加することになる。

kibanaでDashboard作成 3
画面19:
今回はグラフを追加するので作成済みのVisualizeオブジェクトをリストから選択する。上の画像ではprocessを選択しているが前述のメモリオブジェクトと似たようなもの。リストのオブジェクトをクリックすると開いているダッシュボードにそのグラフの枠が追加されるので好きなだけポチポチする。

kibanaでDashboard作成 4
画面20:
この画像ではメモリとロードアベレージのグラフを追加してグラフを右に広げた。グラフの大きさや位置は変更可能。
新規作成時はもちろんだけどダッシュボードに変更を加えたら上部の[Save]を押して保存する。

kibanaでDashboard作成 5
画面21:
ダッシュボードの名前を付けて[Save]を押す。

違うダッシュボードを表示するときは左上の赤いkibanaロゴの右横のDashboardをクリック。

Visualize, Dashboardオブジェクトの管理

kibanaでVisualize作成 15
画面17:
VisualizeとDashboardもSearchオブジェクトと同様にManagementから管理できる。
Saved Objectsを選択してから[Dashboards] [Seaches] [Visualizations]のタブを選択して中のリストから操作する。
リストのオブジェクト名をクリックするとソースの編集画面になる。この記事のレベルの人だと途方にくれるやつ。
そこで、リスト表示のオブジェクト名にマウスカーソルを合わせてその右横に表示される(目玉)アイコンをクリックすると、ここまでの記事で触ってた画面Search, Visualize, Dashboardのビジュアル画面で表示される。

ここまでkibanaのキホンのキだけで、小学2年の算数でグラフの作り方を習ってれば出来る程度の内容。Excelで初めて簡単な表を単純なグラフにするのと同様ツマランっちゃつまらんけど、これだけでもできるようになるといろいろやってみたいっていう意欲が湧くよね。

関連記事:
Up