狠狠撸
Submit Search
Pythonて?zabbix apiを使ってみる
?
4 likes
?
8,221 views
2bo 2bo
Python東海 第26回勉強会の資料です。
Read less
Read more
1 of 16
Download now
Downloaded 21 times
More Related Content
Pythonて?zabbix apiを使ってみる
1.
PythonでZabbixAPIを使ってみる Python東海 第26回勉強会 2015/1/31 @2box2bo
2.
お前だれよ ? 名前:坪内 由孝? @2box2bo? ?
ブログ:http://www.zumwalt.info/blog ? お仕事:地方えすあいあーのインフラ屋? 1級あひる釣り師 ? 所属:(? ?? ?)?ウィーンなユーザー会? (Ejectコマンドユーザー会) ? Python東海? Ingress 緑組 L10へたれagent ? 最近のあれ:なんちゃら2003をなんちゃら2012にちぎっ ては投げちぎっては投げ…
3.
Zabbixってなんぞ? ? ラトビアのZABBIX SIA社が作ったOSSな監視ツール ?
最新Verは2.4系。ただしサポート期間が短い? 長期間サポートは2.2系。次のVerは3系。 ? 商用サポートもあります http://www.zabbix.com/jp/ ? 監視エージェントはLinux、WIndows等だいたいのOS用のが 提供されている ? 気合があればなんでも監視できる。
4.
ZabbixのAPI ? 監視アイテム、ホスト等の登録、参照、削除等Webからでき ることはだいたいできる ? APIのドキュメントもある? https://www.zabbix.com/documentation/2.2/manual/api ?
Python向けライブラリもある? https://github.com/baniuyao/ZabbixPythonApi? https://github.com/gescheit/scripts/tree/master/zabbix? https://github.com/lukecyca/pyzabbix? https://github.com/gnetsman/zabbix_api
5.
APIの使い方 基本 ? jsonをPOSTで投げればOK ?
初回にauth_keyを取得し、以後は取得した キーを使う ? ドキュメントにだいたいの事は書いてある
6.
APIの使い方 ログイン # coding:
UTF-8 ! import json import urllib2 ? # ZABBIXサーバーのAPIアクセスURL zbxsv = “http://127.0.0.1/zabbix/api_jsonrpc.php"? # リクエストヘッダ headers = {"Content-Type":"application/json-rpc"} # ZABBIX API アクセスユーザー zbx_usr = "admin" # ZABBIX API アクセスユーザーパスワード zbx_upw = "zabbix" # POSTする認証用json を生成 post_data = json.dumps({'jsonrpc':'2.0','method':'user.login','params': {'user':zbx_usr,'password':zbx_upw},'auth':None,'id': 1}) # リクエストを生成 request = urllib2.Request(zbxsv, post_data, headers) # リクエストを送信して結果受け取り contents = urllib2.urlopen(request) # 結果の中身を読み取る contents_str = contents.read() # キー [result] にAPIの戻り値が入ってます print contents_str
7.
APIの使い方 ホスト一覧の取得 # ホスト一覧を取得するjson post_data
= json.dumps({'jsonrpc':'2.0', 'method':'host.get', 'params':{ "output":"extend"}, 'auth':zbx_auth, 'id':1}) # リクエストを生成 request = urllib2.Request(zbxsv, post_data, headers) # リクエストを送信して結果受け取り contents = urllib2.urlopen(request) # 結果の中身を読み取る contents_str = contents.read() contents_dict = json.loads(contents_str) for host in contents_dict["result"]: print host[ name ], host[ hostid ]
8.
APIの使い方 監視アイテムの登録 item_key =
"testkey." + str(time.time()) # ホスト一覧を取得するjson post_data = json.dumps({ "jsonrpc": "2.0", "method": "item.create", "params": { "name": item_key, "key_": item_key, "hostid": "10107", "type": 2, "value_type": 3}, "auth":zbx_auth, "id": 1}) ! # リクエストを生成 request = urllib2.Request(zbxsv, post_data, headers) # リクエストを送信して結果受け取り contents = urllib2.urlopen(request) # 結果の中身を読み取る contents_str = contents.read() contents_dict = json.loads(contents_str) print contents_str
9.
まじめな話はここまで これで何がしたかったか
10.
あひる焼きカウンタを作る!
11.
あひる焼きとは? ? ツイッターで@ahiru3net を焼くこと。 KernelVM北陸あたりから始まった
の儀式 ? @ahiru3net のフォロワーが「あひる焼き」と つぶやけば リプライが返ってくる。 ? いつかBOT落としたい
12.
あひる焼きカウンター 構想 ? ついったの「あひる焼き」を数える ?
毎時、日次のアカウント毎の結果をZabbixに 記録 ? Zabbixでグラフ化してあひる焼きの見える化 ? 適当についったにグラフを流す
13.
が、途中までしかできてない! けど実演
14.
あひる焼きカウンタ 今後の課題 ? あひる焼きしてない既存ユーザーに0を入れる ?
グラフ付ツイートをする ? 140文字制限対応 ? あひる焼きカウンタページの作成
15.
おまけ?
16.
今後のPython東海について ? もくもく会と勉強会を3~4ヶ月に1回は開催し ていきた。? → 次回開催は…5~6月? ?
開催場所についていい場所あったら教えてくだ さい。 ? 何かのハンズオンもありか?(RaspberryPiとか)
Download