最新の気温情報をアメダスから取得し、Zabbixに取り込んで、Grafanaで可視化する

概要

  1. 気象庁が発表しているアメダスの情報から最新の気温を抽出する
  2. 抽出した気温データをZabbixで収集する
  3. Zabbixで収集したデータを可視化する(上記画像の緑の数値がアメダスから取得した外気温です)

取得対象

気象庁が発表しているアメダス(表形式)の気温のうち、最新のものを対象とします。
なお、この情報は1時間ごとに自動更新されると公式サイトに記載されていますが、実際はn時ピッタシに更新されるわけではないようで、熊谷市の場合は10分程度のタイムラグがあります。

スクレイピング行為について

今回は上記の通りタイムラグがあるため、1分に1回のアクセスで最新の気温データを取得します。過去にLibrahack事件などもありましたが、この程度のアクセスは問題無いはず。
ちなみに、気象庁がこの「表形式」のデータをWebで公開してから10年以上経ちますが、テーブルの構造が全く変わっていません。あくまで推測ですが、気象庁が暗に自動収集している人や団体を認めているのではないかと思っています。構造を変えるとスクレイピング出来なくなってしまうので。もちろん、現状の表形式で十分だからという理由もあるとは思いますが。推測です、推測。

気象庁が発表しているアメダスの情報から気温のみ抽出する

[arkey22@zabbix4]$ cat outside_temp.sh
#!/bin/bash

temperature_c=`curl -s 'https://www.jma.go.jp/jp/amedas_h/today-43056.html?areaCode=000&groupCode=29' | grep 'block middle' | tail -n +2 | tr -d '\t' | grep -oP "^<td class=\"block middle\">\-?[0-9]?[0-9]\.[0-9]" | grep -oP "\-?[0-9]?[0-9]\.[0-9]" | tail -n 1`

/usr/bin/echo ${temperature_c} > /tmp/outside_temp
[arkey22@zabbix4]$
[arkey22@zabbix4]$ cat /tmp/outside_temp
7.4
[arkey22@zabbix4]$
[arkey22@zabbix4]$ crontab -l | grep outside_temp.sh
*/1 * * * * /usr/local/src/outside_temp.sh > /dev/null 2>&1
[arkey22@zabbix4]$

さて、対象と頻度を決めたところで、データを取得していきます。いつものごとくbashです。肝心の気温が掲載されている表のHTMLを見ると、読みにくいです。パイプをつなぎまくって最新の気温を取得してみましたが、可読性がクソを極めています。ここに時間をあまりかけたくなかったので今回はこれで良しとしますが、もっとうまく書けないもんかと、ちょっと落ち込みました。
取得間隔はcronで設定し、1分ごとにスクリプトを実行して取得します。
さて、上記スクリプトですが、気温の出力先として/tmp/outside_tempに上書きしています。/tmp/outside_tempに吐き出された値をzabbixの vfs.file.contents を使って数値を収集します。

抽出した気温データをZabbixで取得する

スクリプトを作成したサーバ(Zabbix的にはホスト)で新しくアイテムを作成します。キーがポイントで、以下の値を設定しています。
vfs.file.contents[/tmp/outside_temp]
zabbix-agentが動いている必要があるので、要注意です。
データ型は、小数点以下も取得しているので「数値(浮動小数)」に設定します。
監視感覚はcronと合わせて1分にしています。
アプリケーションでilo4を選んでるのは特に意図ありません…新しくtemperatureとでも名付けてアプリケーションを作っても問題ありません。

値が正常に取得出来ると、このような感じに1時間ごとの気温がZabbixで収集されます。

Zabbixで取得したデータを可視化する

いつものごとくGrafanaを使います。

Grafanaの導入方法とかGrafana-Zabbix間の連携方法は省略します。
今回は最新の値のみを表示したかったのでこんな感じで設定しています。

あとは適当にダッシュボードに配置して、完了です。
余談ですが、横の2つは室温とサーバ周辺の気温を表示させてます。室温はRaspberry piのTemperを使って取得しています。その話はまた今度。

お疲れさまでした。

航空無線通信士の試験を受けてきました(令和2年2月)

航空無線通信士の受験記ってあまりネット上に転がってないんですね。先駆者ではありませんが、今後受験される方のご参考になればと思い、記事として残しておこうと思います。

僕の本業はシステムエンジニア(サーバ・ネットワーク)で航空従事者ではありません。昔から飛行機が好きでFlight Simulatorをやり込んでいたのでILSやDMEなどの知識はありました。(FSXやPrepar3DはPMDG使ってBoeing飛ばしてます。737-800が好きです)
英語についてもTOEICで700点程度を取得しており、またエアバンドを聞いていた時期もあり、ATCについての基礎的な知識もあります(DEP, TWR, GND, APPの違いとか、ですね)
アマチュア無線4級、3級を取得しており、無線について完全な無学状態ではありません。
以上のことから踏まえ、僕にとっては比較的ハードルの低い試験かなと思ったのと、普段は仕事でデジタル無線(無線LAN, Wi-Fi)を扱っているので、そちらの勉強の息抜きにアナログ無線の試験でも受けてみようかなと思って受験した次第です。

埼玉県在住ですが、受験地は東京(晴海にある無線協会本部)でした。
なお、年齢は32歳です。
以上を踏まえた上でお読み頂ければと思います。

無線工学・法規

過去問からの出題がほとんどでした。無線工学に至っても過去問からの出題が多く見られました。
無線工学は計算問題を全て捨てても過去問からの暗記だけで合格基準点は超えられると思います。アンテナの種類とか指向性とか、電波の特性とか、覚えるだけの内容も盛りだくさんですので。
法規は言うまでもなく国が定めた法律に関することの暗記なので、過去問さえやってればクリアできます。だいたい3年分くらいをやれば合格範囲に届くかなと思います。遭難通信と緊急通信についてはほぼ確実に出題されてるようで、今回も出題されました。

法規は一夜漬けである程度なんとかなったのですが、無線工学に手が回らず、、、ちょっと厳しいかな…。

英語

まずリスニングがありました。全部で7問あり、全て4択です。各問題についてネイティブの方が3回、問題を繰り返し発音します。1回目はゆっくり丁寧に、2回目は少し早く、3回目はネイティブ会話と同等の速度で発話されてました。
問題と問題の間に1分間の時間が与えられるので、その間に次の問題の選択肢を読んでおくと、次の問題が解きやすくなるかと思います。

リスニングでちょっと気になった点が一つあります。確かにネイティブの発音なのですが、アメリカ英語でもなくイギリス英語でもなかったことです。シンガポール訛りでもインド訛りでもありませんでした。オーストラリアかニュージーランド辺りかなと思うのですが、僕の場合はアメリカ英語に慣れていたので少し聞き取りにくい印象でした。

次に筆記ですが、過去問を見て頂ければ分かると思うのですがA4用紙いっぱいの長文の後に設問があるスタイルです。英検準2級レベルの内容らしいですが、準2級より少し難しい内容かなと思いました。法律に関わる難しい文法・単語もありますし、カンマを多用し一文辺りの単語が多いので、文法がある程度出来ていないと難しい印象です。
設問に関して、またTOEIC比較となってしまい申し訳ございませんが、特段ひねくれた問題は無かったです。明らかに間違っている選択肢は間違っている内容でした。

実技(フォネティックコードの受話・送話)

アマチュア無線4級を中学の時に取得して、その際にフォネティックコードは暗記していたので、全然問題ないと思って無勉強で臨んだのですが、受話が思ってたより早くて死にました。
受話に関しては、CDの音声が流れてから終了まで訂正してる時間的余裕は一切なく、一度頭が真っ白になると終わります。常に書いてる状態で、2分間の集中力が必要です。
試験が終わってから知ったのですが、誤字は3点減点なのに対して脱字は1点減点なので、受話で分からなくなってしまったら、あえて書かずに呼吸を整えたほうが懸命かなと思いました。
なお受話の際のフォネティックコードは完全な日本語発音でした。

次に送話ですが、これはさすがに問題ありませんでした。練習方法としては、日常生活の中で目に入った英語を全てフォネティックコードで暗証する方法です。電車に乗って見かけた英語、商品名などなど、とにかくアルファベットを見つけたらフォネティックコードに変換していました。
送話もそこそこの速度が求められるので、英単語を見てスラスラ言えるレベルまでのレベルまで到達してないと合格基準に達するのは難しいかなと思いました。

その他

  • 受験者の9割は若い男性で、0.5割が若い女性、残り0.5割が僕のような趣味受験って感じでした。
  • 東京会場では100人かそれ以上の受験者がいたように思います。
  • 無線工学と法規は途中退室する方がほとんどでした。英語は途中退室者が少ないように感じました。
  • 実技は受験番号順に実施されました。実技が終わったらそのまま帰宅なので、受験番号が始めの方の方と最後の方の方で1時間くらいは時間差があったんじゃないかと推察します。今回僕は始めの方だったので、あくまで推察です。
  • 英語と実技は無勉強で臨みました。またまたTOEIC換算で申し訳ございませんが、TOEICで600点を超えてたら過去問をさらっと読むだけで大丈夫だと思います。航空関連の専門単語は和訳があったりしますし、前後の文から類推出来るところも多々ありました。
  • 実技は、練習していないと難しいです。フォネティックコードは受話も送話もマスターレベルまでやり込みましょう(自戒)
  • 全てを総合した勉強時間は15時間くらいです。さすがに勉強不足ですね。
  • まだ発表されていませんが、たぶん法規と英語はpassしているので、無線工学と実技を受験し直すことになります。次の試験は夏なので、今はとりあえず忘れてデジタル無線の方の勉強に戻りますw

追記(2020/03/04)

実技以外の解答が正式に公開されたので自己採点しました。

  • 無線工学 33/70(fail)
  • 法規 79/100 (pass)
  • 英会話 20/35 (pass)
  • 英語筆記 62+20=82 (pass)
  • 実技(フォネティックコード受話・送話)…おそらくfail

予想通り、無線工学が壊滅的でした。実技もおそらく落ちていると思われます。航空無線通信士は科目別の合格が認められているので、次回は無線工学と実技だけ受け直すことになると思います。次の試験は8月なので、しばらく忘れます。。。

ぶらっと北海道に行ってきました。

先日、ふとJALのマイルを確認したら、マイルだけで北海道往復が出来るくらい溜まってたので、その場で飛行機と宿の予約を取って、ほぼほぼノープランで北海道に行ってきました。

北海道(札幌近郊)には大学時代に4年ほど住んでいたので、最初は懐かしの観光スポットを巡ろうと思ったのですが、色々お世話になった方にご連絡したところ、お会いして頂けると快諾の嵐で、当時お世話になっていた方々と会う旅行に変更となりました。

お会いした方々ですが、大学時代の親友、大学時代にお世話になっていた英語の先生、当時お世話になっていた牧師さんとお会いしました。

親友は相変わらずで、大学生に戻った気分でした。ジンギスカンご馳走さまでした。ジンギスカン食べて、思い出の地を回って、朝まで語りあったのは、忘れません。また次に会うときも、同じ感じなんだろうなと思いました。良い意味で根っこは変わらないものですね。

英語の先生とは大学1年から4年までずっと何かしらで付き合いがあって、当時はよく先生の研究室に入り浸っていました。先生もあの頃からお変わり無く、考え方やフィーリングが僕と合っており、会話も弾みました。お夕飯をご馳走頂いたのですが、途中で急に英語で会話になったのは焦りましたが、なんとか乗り切りました。More you speak, more you learnですね。英語の勉強法についても今の僕に見合った勉強法を教えて頂きました。もっと英語が出来るようにがんばります。

最後に牧師さんですが、大学生当時は協会に通っていました。礼拝が終わると、50円とかでうどんが食べれたんですよね。大学生だった当時はそれが魅力で、通っていました。キリストにも興味が無かったわけではなく、そういう物事の見方をしている方々もいるのだなと勉強になりました。

その牧師さんですが、当時とは別の協会に移転しており、なんとか連絡をつけてお会いすることが出来ました。前日の連絡だったにも関わらず、受け入れて下さったことにとても感謝しています。
牧師さんとは、このブログでは語れないくらいディープな話をしました。その中で、キリスト教の教えを含めた生き方や考え方などを教えて頂きました。
僕自身はクリスチャンではないのですが、こんな親身にお話を聞いてくださる先生がもはや神のような存在です。

今回の旅は、自分自身の存在について、再認識する旅だったなと、旅を終えてから感じました。また10年後くらいに行ければなと思っています。

余談ですが、ジンギスカンはやっぱ北海道で食べるのが一番美味しいです。特に松尾ジンギスカンが最高です。都内にもジンギスカンのお店はあるのですが、ラム特有の臭みが全然無いんですよね。あれが美味しいのに…!
お寿司も、今回は旅ということもあって回らないお寿司屋さんに行ってみました。お店が静かだし、店主から色々お寿司の食べ方などについて教えて頂けるなど、最高でした。

以上、2020年2月の北海道ノープラン旅行でした。またね~。

ピアノが難しい

お世話様です、ゆうきです。この「お世話様です」って表現、埼玉県は秩父の方から伝わっている方言みたいなんですが、みなさんの地方ではどのように表現されてますでしょうか。あ、もちろん熊谷でも問題なく通じます。

さて、ピアノが難しいという話ですが、何が難しいって表現が難しいんですね。これでも一応10年ほど習ってはいたので、簡単な譜面だったら短時間で譜読みは終わるのですが、譜読み止まりで終わってしまう、と。先生曰くただ単に楽譜をなぞってるだけ、と。それは中学生でやめましょうねってはっきり言われました。
曲には情緒があり、その時の情勢を表したものが多いそうです。ベートーベンなら情熱的とか、ショパンなら甘美にとか、簡単に言えばそんな感じです。

今は一般的に言うショパン ワルツの10番(op69 2を習ってるのですが(参考: https://youtu.be/lJUCOMsFDEY) 、同じフレーズが続く上に、途中で転調して雰囲気が大きく変わる場面があり、踊るようなワルツというより三拍子の中でいかに表現出来るかに重きが置かれてる曲です。

ワルツ=ズンチャッチャなので、最初の一拍目(ズン)が抜けたらアホみたに間の抜けた曲になってしまいますから、かなり集中力を問われます。クラシックに関しては何が正解というのは無くて、自分が満足するのが正解と教わりました。まだまだ、満足出来てないと実感しております。

あと、ペダルで音を誤魔化す癖を指摘されました。はい、まさにその通りでございます。知った上で誤魔化してました。その点、ワルツなどは軽快さがもとめられるので、ペダルは最初のズンだけにして、右手は右手でしっかりリズムを弾こうねってなりました。
いやーーーー恥ずかしい。ピアノを真剣にやっている方だとあっという間にバレますね。誤魔化し効かない。右手の音をしっかり丁寧に弾くのは、そこそこの技量が必要です。

そんなこんなで、ピアノのレッスンを受けておりますが、僕が社会人で練習時間がまともに取れないということもあり、音楽→音を楽しむという方向でやらせて頂いております。自分をさらけ出すのってとても恥ずかしいのですが、さらけ出した上の表現とかもあるんだなぁと思うと、音楽って深いなぁと改めて思いました。

先生が超気さくな方で良かったです。一週間全然練習出来てなくても察してくださって、僕の満足出来るクラシックを教えて頂いております。

音楽は楽譜という縛られた旋律の中から、いかに感情を表現出来るかが問われるんですね。難しい。頑張ります。

Raspberry piをZabbixと連動させてパトランプ化する

https://twitter.com/Yuuki_047/status/1222913226855202817

なんかTweetで思ったより反応があったので、メモ書きしておきます。

【必要なもの】
・Raspberry Pi 第一世代 Model B+以降
Crystal Signal Pi (http://crystal-signal.com/)

【手順(クリスタルパイ側の組み立て)】
http://crystal-signal.com/
Crystal Signal Piを買うと手順が記載されてますので、その通りに組み立てるだけです。工具で必要なものはプラスドライバーのみ!

【手順(Zabbix側 】

メディアタイプに「警告ランプ」として追加

警告ランプのAPIを叩くスクリプトを作成。実行するように設定。vimで書いてchmod +xしてchownをzabbixにするだけです。

Zabbixサーバの/usr/lib/zabbix/alertscripts/内に上記のシェルスクリプトを配置する。ちなみにcolorの部分はRBG(255,0,0)で赤に指定してますが、何色でもオーケーです。

アクションで、点灯させるトリガーを決めます。画像では、深刻度が「情報」以上で、ホストグループが「All」の場合に点灯するようになっています。
実務で使う場合は深刻度を「致命的」にして、ホストグループを「NW機器」とかに限定して絞ることで余計なアラート発砲を防げます。ここは現場によって変わると思います。