Python」タグアーカイブ

Zabbixでこのはちゃんを監視するお話

この記事はConoHa Advent Calendar 2015Zabbix Advent Calendar 2015の23日目です。
ConoHa Advent Calendarは3日連続でAPIネタとなってしまいましたね…

このはちゃんとの今年1年の振り返り

煽られて


記事を書いても煽られて

アドベントカレンダー前の煽りは無しの放置プレイときました。
やっぱあんずちゃんの方が愛に溢れてる気がする…

Zabbixでこのはちゃんを監視

何をしたかったか

ぶっちゃけ、サーバの監視ならZabbixagent放り込んで監視すれば万事OKなのですが、だいぶ前のZabbix勉強会で @fripper1214 さんが発表してたLLDとsenderの組み合わせで遊んでないことに気づいたので
このはちゃんの監視ついでにやってみました。

仕組みはスライドとおほぼ同じですが、Python使ってるのと監視対象がこのはちゃんという点がちょっと違います。

できたこと

余り実用性は考えていなかったので適当実装です。

  • 先月の利用金額を取得
  • ホストが増えたら自動で監視対象に追加(senderとLLDの活用)
  • ConoHaダッシュボードと同じくらいの情報を取得
  • cronで動かす

くらいです。

中身はgithubに置いてあります。
zbx_ConoHa

なお、対応は日本リージョンのみです。

動き

こんな感じで見えます
1

cronで1分に1回実行しているのでホストを追加すると自動的にZabbixのホストにも追加されます。
2
3

ConoHaで仮想マシンを削除すればLLDで検知できなくなるのでホストからも消えます。
4

はまったとこ

ディスクIO

ConoHa APIのディスクIO取得で値が返ってきたりNoneが返ってきたりでお手上げでした。
リアルタイムでは難しいのですかねこれ…

サーバステータス

ConoHa APIのVM詳細取得でVMのステータスが取れるのですが、どの値が何なのかさっぱりでした…
ConoHaAPIのベースになってるなんとかスタックのドキュメント見ても記載されてないし、フォーラム漁ったらソース嫁と素敵な回答があったのでわかる範囲だけいれてあります。
今回の監視で作った値のマッピングはこんな感じです。
ConoHa VPS Status
0 ⇒ Build
1 ⇒ Active
4 ⇒ SHUTOFF

まとめ

LLDとsenderの組合せは便利

3系で監視時間の指定ができるようになれば外部スクリプトとLLD、senderの組合せで更に進化させれそう。マクロも使えばユーザー情報もZabbixで管理できるし。

ConoHA APIも想像は膨らむ

APIガシガシ叩けばなんでもできそうなので想像は膨らむ
このはちゃんの胸は(ry

明日のアドベントカレンダー

明日のConoHa Advent Calendar 2015は @unsuitan さんです。
明日のZabbix Advent Calendar 2015は @_BSmile_ さんです。

Pocket

SenseHATとZabbixで温度、湿度、気圧を監視が…なお話

この記事はZabbix Advent Calendar 2015Raspberry Pi Advent Calendar 2015をまとめて書いた横着な11日目です。

が、Zabbix分は薄めかもです。

先にオチを書いておくと温度監視が出来上がってなかったり…orz

Sense HATてなんぞ?

RaspberryPiとGPIOで簡単に繋げれるHardware Attached on Top(HAT)です。
先日打ち上げられたAstroPiにも使われてるHATで、
Pimoroniで20ポンドくらいで売られてます。
お手軽に使えるのですが、機能が豊富です。
イカ、SenseHAT搭載機能

  • ジャイロセンサ
  • 加速度計
  • 磁力計
  • 湿度計
  • 気圧計
  • 8×8のRGB LEDディスプレイ
  • 4軸ミニジョイスティック

IMAG0358
IMAG0363

11/21 のRaspbian JessieであればOS標準でモジュールが組み込まれているのでジョイスティック以外は何も追加インストールせずに使えます。
ジョイスティックはpygameが必要なようです。
温度計が搭載機能にないように見えますが、気圧計か湿度計から取得できます。

Sense HATで監視

SenseHATの使い方はAPIリファレンス(英語)にだいたいまとまってます。
Raspbian Jessieであれば /usr/src/sense-hat/examples にサンプルもあるのでそれを見てもいい思います。

今回は温度と湿度、気圧の取得なのでこんな感じに書けば取得できます。

簡単です。

で、こんだけできたならあとはZabbixSenderで一家に一台はあるZabbixへ投げます。
ここまで作ったのはGitHubにあります。
Python実装のZabbixSenderなので、RasPiにZabbixSenderをインストールする必要がありません。
超お手軽。

問題

さて、実際に監視を始めたここ数日の私の部屋の気温なのですが…
chart.php
岐阜の田舎にあるのに気温は30℃前後の南国…
どういうこっちゃ。

対策

やっぱ温度がおかしいようわーん٩(๑´0`๑)۶なことがあるようでRasPiのフォーラムに色々対策がでてました。
フォーラムの内容を意訳すると、
「温度がおかしい原因はCPUと近いから」
「(CPU温度 – SenseHAT取得温度) / 2 )すれば正常な値になる」
「SenseHATを離してとりつければいい」
等々、喧々囂々な感じでした。

とりあえず、CPU温度との関連性を取得するため、「vcgencmd measure_temp」コマンドの結果もZabbixへ投げ込んでグラフを作成。
手間がかからないZabbixまじで最高です。
その結果がこちら。
chart.php
比例していることを確認できます。

さてここから計算式を直して監視する!ってとこなのですが、ここまでしかできてません…orz
記録可能で正常な温度を監視できる機材を揃えるところからという本末転倒感がある状態です…

ちなみにフォーラムにでていた(CPU温度 – SenseHAT取得温度) / 2 等の式も試してみたのですが、全く当てはまりませんでした。
(SenseHAT取得温度 – (CPU温度 – SenseHAT取得温度)) * 0.75 くらいがいい感じな気はしてますが絶賛検証中です。

まとめ

  • RasPiではPython実装のZabbixSenderとの相性が最高によい
  • Zabbixは温度キャリブレーションにも使える
  • SenseHATの全機能を使いこなすのはかなり難しい
  • 温度センサが正しいか見極めるには正しい値を出力するセンサが必要

ZabbixとSenseHATで超簡単に温度とか監視できるぜぇ!って話にしようと思ったのに…orz

明日のAdvent Calendar

Raspberry Pi Advent Calendar 2015は@junk_coken さんです。
Zabbix Advent Calendar 2015は@atanaka7 さんです。

Pocket

第25回Python東海勉強会

開催してきました。
開催間隔が間延びしてるのはもう仕様ということで…

募集当初は全然人が集まらなくて\(^o^)/オワタ感あったんですが、開催してみれば15名参加と前回よりも多くの人に来ていただけました。
ありがとうございました。

時間配分がgdgdで後半発表の方、申し訳なかったです。
次回は発表前にひと通り確認します。

とりあえず自分の発表だけ適当に。

pillowの使い方

自分の発表
時間なくて1時間で書いた資料なので内容スカスカです…
もうちょっと深堀りしたいなぁ…

LTの方は内容は無いようだったのでパス。
Pycon2014 見ればだいたい載ってる気もするけど。

今後の方針とか?

ConoHa を使ったハンズオンとかもくもく会的なのをやってみたいかなーとか思ってたり。
午前中にもくもく会やって午後から発表する感じのスケジュールで。
まぁ、今回は一人もくもく会で資料書いてましたが…

とりあえず次回、1月 or 2月開催は守りたい!

Pocket

PyConJP2014 に参加してきた

Pythonの地域コミュニティであるPython東海の共同管理人にもなったのでPyConJP2014に初参加してきました。

何があったか

あ…ありのまま 今 起こった事を話すぜ!
『おれはPyconJP2014に参加したと思ったらいつのまにかZabbixを設定していた』
な… 何を言ってるのか わからねーと思うがおれも何をされたのかわからなかった…
頭がどうにかなりそうだった…
催眠術だとか超スピードだとかそんなチャチなもんじゃあ断じてねえ
もっと恐ろしいものの片鱗を味わったぜ…

今回はこれが全て。

開催前の色々

前日仕事がトラブって、夜行バスで行く予定が直前キャンセルからの朝一新幹線という時間を金で買うこととなりました…
やっぱ切替日に移動日をかさねちゃあかんね…

1日目

朝一の新幹線で無事会場着。
会場前でKernelVM北陸でお会いした@k242hd_akgさんに遭遇。

基調講演はとりあえずPython3使ってみないとーと思ったくらい。
ただ、2→3だけでなく、4とか5になってもいいんじゃない?とは思う。

他の講演は適当にかいつまんで聞いてた感じ。
JKC48が個人的に最高に笑えました。

2日目

基調講演の西尾さんがだされたワンライナーが狂気の沙汰にしか見えなかった…
どうも最近は画像認識周りと機械学習が流行りっぽい。
OpenCVとscikit-learnは勉強してみたい。

NOCヘルプ

1日目の途中、色々あってなぜか会場NW監視のZabbixを設定することとなり、名札がひとつ増えて「NOCヘルプ」となりました。
2014-09-13 21.55.19

Zabbixの設定内容

  • MAPの作成
  • 総トラフィック量グラフの作成
  • 気になったとこ適当に

結果としてまともに完了できたのはMAPの作成だけだでした…(見たい講演の合間とかに設定してました)
カウンターがリセットされる値を集計し続けるアイテムって計算アイテムでsum取ればいいと思ったけど、どうもダメっぽい…
あとSNMPがウニャウニャなのもなんとかしたかった…
このへんは完全に実力不足。
最近Zabbixは楽しすぎてたから勉強しなおさないと…orz

まとめ

  • 自宅ラック勢怖い
  • 機械学習面白そう
  • mini Pycon 東海 とかもありやなしや…
  • こんなの絶対おかしいよ…
Pocket

Ansible のcopy とtemplate でハマった

copyとtemplateモジュールを使うとコピー先のファイル名末尾に改行がついてハマったのでメモ。

環境

playbookの構造

事象が発生するmain.yml

実行結果

とりあえず回避できるmain.yml

playbookの書き方を1行に変更すれば回避可能

実行結果

Pocket