忘れそうな内容をメモしています

忘れっぽいのでメモ帳がわりに色々書いてます

zabbix-dockerの環境構築とリモートコマンド設定

先日obnizとzabbixを組み合わせて、ラズパイの監視環境を構築しました。 elchika.com

zabbixの環境構築についてここに書いておきます。

zabbixの環境構築

最初、zabbixのダウンロードページの手順で沿って進めようとしましたが、 パッケージのインストール以外にDBの設定が必要なことや、既存の環境と同居させたくなかったのでzabbix-dockerで構築しました。 構築した環境はdebian10です。

github.com

zabbix-dockerは、docker-composeを使用するので、 以下手順でdocker-composeのインストールを行いました。

#curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#chmod +x /usr/local/bin/docker-compose

docs.docker.com

以下でzabbix環境の出来上がりです。簡単ですね。

$git clone https://github.com/zabbix/zabbix-docker
$cd zabbix-docker
$cp  docker-compose_v3_ubuntu_mysql_latest.yaml docker-compose.yaml
#docker-compose pull
#docker-compose up -d

ちなみにコンテナを停止するときは

# docker-compose stop

コンテナの中にログインするのは以下(-u 0でrootログイン)でできます

#docker exec -it -u 0 zabbix-docker-zabbix-server /bin/bash

http://localhost/zabbix.phpにアクセスするとzabbixの管理画面が表示されます。 Admin/zabbixでログインできます。

zabbixの設定

  • エージェントの設定
    監視対象のラズパイにて#apt get install zabbix-agentでインストールしました。

  • ホストの設定
    [設定]-[ホスト]で監視対象の名前、テンプレート( Template OS Linux by Zabbix agentを使用しました)、IPアドレス、ポートを記入します。 ポートはzabbix-agentoを使用する場合は10050がデフォルトのポートになっています。
    詳しい設定内容は以下にまとまっています。
    1 ホストの設定 [Zabbix Documentation 2.2]

  • リモートコマンドの設定
    監視結果に応じて任意のコマンドを実行可能なリモートコマンドですが、
    [設定]-[アクション]から右上の[アクションの作成]をクリックし、 名前と実行条件を入力し、[実行内容]の[実行内容のタイプ]をリモートコマンドに選択して[コマンド]に実行したいコマンドを入力すればOKです。今回はcurlでwebhookにアクセスするコマンドを登録しました。
    詳しい設定内容は以下にまとまっています。
    2 アクション [Zabbix Documentation 2.2]

HS210Proでマイクロドローンに入門してみた

先日、HS210Proという小型ドローンをヨドバシカメラで購入しました。

このHS210Pro、機体にカメラが付いており映像を2.4GHz帯の電波(総務省の以下ページによると免許不要の2.4GHz帯小電力データ通信システムという分類になるらしい)を用いてスマホに伝送しています。値段もそこそこ手頃で、面白そうだったので思い切って買いました。

www.tele.soumu.go.jp

機体の裏側には技適マークのシールが貼ってあり、番号*1で調べてみると「相互承認(MRA)による工事設計認証」という形で技術適合証明を取得しているようです。

f:id:shintarof:20210215075840j:plain
機体の裏側

家の中で飛ばしてみましたが、なかなかむずかしいです。

さて、中身も気になったのでカバーを開けてみました。 この基板の下にもう一枚入っていましたが、モータの配線周りを切らないと外せそうになかったので今回はここまでにしました。

f:id:shintarof:20210214230519j:plain
PAN159CYというチップが入っていた

一番大きいチップに刻印されている「PAN159CY」でググってみると以下のページに詳しい情報がありました。 どうやらXN297という無線ICとNuvoton社のMini58 Cortex M0で構成されているようです。 www.rcgroups.com

このPAN159CY上のカスタムファームウェア(但しHS210ProではなくEachine E58という機体)のプロジェクトもあるようで、Eachine E58のハード構成が載っていました。恐らくHS210Proも同じような構成になっているような気がします。
(本当は分解して調べたいけど飛ばせなくなると困るので後日分解します)

Motor drivers - NP9926A dual mosfet x 2
Gyro - I2C Addr 0x69 - seems to be an MPU-6050
Pressure sensor - I2C Addr 0x77 possibly bmp280
Crystal - 16MHz This seems to only be used for the RF transciever

github.com

また、PAN159CYに関する各種ドキュメント・ツール等は以下にありました。 http://bbs.panchip.com/forum.php?mod=viewthread&tid=35&extra=page%3D1bbs.panchip.com

一通り飛ばして満足したら、PAN159CYというチップでいろいろ遊んでみようかと思います。

電子工作関係の中国語メモ

情報収集のため、中国語の技術系ブログなどをgoogle翻訳やDeepL翻訳で読むことがあるのですが、 勉強のために気になった単語の意味をメモすることにしました。

google翻訳、DeepL翻訳の結果をそのまま載せています。

今後随時追加予定です。

電子工作関係

中国語 日本語
开源 オープンソース
博客 ブログ
串口 シリアルポート
麦克 マイク
麦克风阵列 マイクロフォンアレイ
麦克风阵列驱动 マイクロフォンアレイドライバ(驱动がドライバという意味?)
硬件 ハードウェア
固件 ファームウェア
源码 ソースコード

その他

中国語 日本語
神经网络模型 ニューラルネットワークモデル
转换 変換
手把手教你使用 ハンズオン
论坛 フォーラム
棒棒哒! すごい

grafanaのcsvプラグインを使ってみた

久しぶりのブログ投稿です。最近データの可視化にgrafanaをよく使っているのですが、 csvデータを可視化するプラグインを見つけたので試してみました。

github.com

環境はDebian10.7です。

1.grafanaの環境構築

以下のコマンド一発でcsvプラグイン込のgrafanaをdockerで立ち上げます。

#docker run -d  -p 3000:3000 --name=grafana  -e "GF_INSTALL_PLUGINS=marcusolsson-csv-datasource" -v /home/user/docker:/home  grafana/grafana:7.3.7-ubuntu

http://localhost:3000にアクセスしてログイン画面が表示され、歯車マークのpuginsにcsvが表示されていれば成功です。 f:id:shintarof:20210124013957p:plain ちなみに、立ち上げたコンテナにログインする際は、以下のように-uを0に指定しないとrootになれないようです。

#docker exec -it -u 0 grafana /bin/bash

stackoverflow.com

2.Data Saurcesの設定

歯車マーク→Data Sourcesを選択→CSVを選択→Localを選択→csvのパスを選択してSave&Testするだけです。 f:id:shintarof:20210124014904p:plain csvデータは日経ウェブサイトから日経平均株価の日次データをダウンロードを使用しましたが、csvデータの末尾にテキストが入っていたので削除し、文字コードがshiftJISだったので$nkf -w input.csv > output.csvでutf8に変換しました。

3.Dash bordsの設定

+マーク→Dash Bordを選択→Add New Panelを選択して、以下画像のようにデータの名前とデータタイプを指定しました。

f:id:shintarof:20210124013041p:plain
グラフ表示できました

4.感想

これまでcsvデータを可視化するためだけにコードを書いたり、LibreOffice等でグラフ書いてたりしてましたが、このプラグインを使えば簡単にgrafanaで扱えるので便利です。
オリジナルのプラグイン作成に最近興味があるので、まずはこのプラグインの中身を解読してみようと思います。

BareMetalで遊ぶRaspberry Pi

連休中に「BareMetalで遊ぶRaspberry Pi」を購入して初代ラズパイ( RaspberryPi 1 Model B )でLチカとハローワールドをやってみました。 ラズパイ上でプログラムが動く仕組みや、ハードウェア制御の仕組みが詳しく解説してありとても勉強になります。
tatsu-zine.com

基本、書籍に沿って進めれば動作しますが、環境構築とSDカードに仕込むbootcode.binとstart.elfでちょっとハマりました。
ちなみに開発環境はDebian10.4の使いました。

Crosstool-NGのビルドについて

Crosstool-NGは書籍にある1.19.0を試してみましたが、./configureで色々とエラーが出たので最新版を以下手順で入れました。

$wget https://github.com/jcmvbkbc/crosstool-NG/archive/crosstool-ng-1.24.0.tar.gz
$tar -zxvf crosstool-ng-1.24.0.tar.gz 
$cd crosstool-NG-crosstool-ng-1.24.0/
$./bootstrap 
$./configure --prefix=/home/user/cross
$make
$make install

SDカードに仕込むbootcode.binとstart.elfについて

ビルドしたイメージを空のSDカードに置く際に一緒に、config.txt、bootcode.bin、start.elfも一緒に置く必要がありますが、 config.txtは自分で作れば良いものの、bootcode.binとstart.elfをどこから持ってくるかで悩みました。調べたところgithubの以下ページから最新版のbootcode.binとstart.elfが合ったのでそれを持ってきて配置してLチカはうまく動きました。
(実は最初、このbootcode.binとstart.elfを別の初代ラズパイで動いているvolumioのSDカードのものを移植して動かしていましたが、 おそらくバージョンが合わなかったのか、エラーでLEDが点滅し、それをLチカのプログラムが正しく動いていると勘違いしていました) github.com

最新版のbootcode.binとstart.elfでLチカは動きましたが、第5章のUARTでラズパイからの送信データが0xFFになる現象が起こりました。 色々原因を調査して試したところ、おそらくbootcode.binとstart.eldのバージョンが新しかったようで、 以下の古いバージョンにすると正しく送信できるようになりました。 github.com