SlideShare a Scribd company logo
1 of 16
Download to read offline
PythonでZabbixAPIを使ってみる
Python東海 第26回勉強会
2015/1/31
@2box2bo
お前だれよ
• 名前:坪内 由孝

@2box2bo

• ブログ:http://www.zumwalt.info/blog
• お仕事:地方えすあいあーのインフラ屋

1級あひる釣り師
• 所属:(☝ ՞ਊ ՞)☝ウィーンなユーザー会

(Ejectコマンドユーザー会) 

Python東海

Ingress 緑組 L10へたれagent
• 最近のあれ:なんちゃら2003をなんちゃら2012にちぎっ
ては投げちぎっては投げ…
Zabbixってなんぞ?
• ラトビアのZABBIX SIA社が作ったOSSな監視ツール
• 最新Verは2.4系。ただしサポート期間が短い

長期間サポートは2.2系。次のVerは3系。
• 商用サポートもあります http://www.zabbix.com/jp/
• 監視エージェントはLinux、WIndows等だいたいのOS用のが
提供されている
• 気合があればなんでも監視できる。
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
APIの使い方 基本
• jsonをPOSTで投げればOK
• 初回にauth_keyを取得し、以後は取得した
キーを使う
• ドキュメントにだいたいの事は書いてある
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
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 ]
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
まじめな話はここまで
これで何がしたかったか
あひる焼きカウンタを作る!
あひる焼きとは?
• ツイッターで@ahiru3net を焼くこと。
KernelVM北陸あたりから始まった の儀式
• @ahiru3net のフォロワーが「あひる焼き」と
つぶやけば リプライが返ってくる。
• いつかBOT落としたい
あひる焼きカウンター 構想
• ついったの「あひる焼き」を数える
• 毎時、日次のアカウント毎の結果をZabbixに
記録
• Zabbixでグラフ化してあひる焼きの見える化
• 適当についったにグラフを流す
が、途中までしかできてない!
けど実演
あひる焼きカウンタ 今後の課題
• あひる焼きしてない既存ユーザーに0を入れる
• グラフ付ツイートをする
• 140文字制限対応
• あひる焼きカウンタページの作成
おまけ?
今後のPython東海について
• もくもく会と勉強会を3∼4ヶ月に1回は開催し
ていきた。

→ 次回開催は…5∼6月?
• 開催場所についていい場所あったら教えてくだ
さい。
• 何かのハンズオンもありか?(RaspberryPiとか)

More Related Content

What's hot

[NDC16] Effective Git
[NDC16] Effective Git[NDC16] Effective Git
[NDC16] Effective GitChanwoong Kim
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とdo_aki
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기nexusz99
 
Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介Hiroyuki Wada
 
Laravel 9 comprendre les fondamentaux.
Laravel 9 comprendre les fondamentaux.Laravel 9 comprendre les fondamentaux.
Laravel 9 comprendre les fondamentaux.Valdy Ngouabira
 
Git 입문자를 위한 가이드
Git 입문자를 위한 가이드Git 입문자를 위한 가이드
Git 입문자를 위한 가이드chandler0201
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습동현 강
 
ページャ lessを使いこなす
ページャ lessを使いこなすページャ lessを使いこなす
ページャ lessを使いこなすToshiyuki Shimono
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説do_aki
 
Airflow를 이용한 데이터 Workflow 관리
Airflow를 이용한  데이터 Workflow 관리Airflow를 이용한  데이터 Workflow 관리
Airflow를 이용한 데이터 Workflow 관리YoungHeon (Roy) Kim
 
PHP 語法基礎與物件導向
PHP 語法基礎與物件導向PHP 語法基礎與物件導向
PHP 語法基礎與物件導向Shengyou Fan
 
Go言語で作る webアプリ@gocon 2013 spring
Go言語で作る webアプリ@gocon 2013 springGo言語で作る webアプリ@gocon 2013 spring
Go言語で作る webアプリ@gocon 2013 springTakuya Ueda
 
Binary exploitation - AIS3
Binary exploitation - AIS3Binary exploitation - AIS3
Binary exploitation - AIS3Angel Boy
 
サイボウズ Office 10 バージョン比較資料
サイボウズ Office 10 バージョン比較資料サイボウズ Office 10 バージョン比較資料
サイボウズ Office 10 バージョン比較資料Cybozucommunity
 
Internet Explorer サポート提供終了で変わること変わらないこと
Internet Explorer サポート提供終了で変わること変わらないことInternet Explorer サポート提供終了で変わること変わらないこと
Internet Explorer サポート提供終了で変わること変わらないこと彰 村地
 
Micro Service Architecture의 이해
Micro Service Architecture의 이해Micro Service Architecture의 이해
Micro Service Architecture의 이해Terry Cho
 
초보자를 위한 Git & GitHub
초보자를 위한 Git & GitHub초보자를 위한 Git & GitHub
초보자를 위한 Git & GitHubYurim Jin
 

What's hot (20)

Vagrant - Concept
Vagrant - ConceptVagrant - Concept
Vagrant - Concept
 
[NDC16] Effective Git
[NDC16] Effective Git[NDC16] Effective Git
[NDC16] Effective Git
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기
 
Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介
 
Laravel 9 comprendre les fondamentaux.
Laravel 9 comprendre les fondamentaux.Laravel 9 comprendre les fondamentaux.
Laravel 9 comprendre les fondamentaux.
 
Git 입문자를 위한 가이드
Git 입문자를 위한 가이드Git 입문자를 위한 가이드
Git 입문자를 위한 가이드
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습
 
ページャ lessを使いこなす
ページャ lessを使いこなすページャ lessを使いこなす
ページャ lessを使いこなす
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
 
Airflow를 이용한 데이터 Workflow 관리
Airflow를 이용한  데이터 Workflow 관리Airflow를 이용한  데이터 Workflow 관리
Airflow를 이용한 데이터 Workflow 관리
 
PHP 語法基礎與物件導向
PHP 語法基礎與物件導向PHP 語法基礎與物件導向
PHP 語法基礎與物件導向
 
Go言語で作る webアプリ@gocon 2013 spring
Go言語で作る webアプリ@gocon 2013 springGo言語で作る webアプリ@gocon 2013 spring
Go言語で作る webアプリ@gocon 2013 spring
 
Binary exploitation - AIS3
Binary exploitation - AIS3Binary exploitation - AIS3
Binary exploitation - AIS3
 
サイボウズ Office 10 バージョン比較資料
サイボウズ Office 10 バージョン比較資料サイボウズ Office 10 バージョン比較資料
サイボウズ Office 10 バージョン比較資料
 
Git flow
Git flowGit flow
Git flow
 
DevOpsって何?
DevOpsって何?DevOpsって何?
DevOpsって何?
 
Internet Explorer サポート提供終了で変わること変わらないこと
Internet Explorer サポート提供終了で変わること変わらないことInternet Explorer サポート提供終了で変わること変わらないこと
Internet Explorer サポート提供終了で変わること変わらないこと
 
Micro Service Architecture의 이해
Micro Service Architecture의 이해Micro Service Architecture의 이해
Micro Service Architecture의 이해
 
초보자를 위한 Git & GitHub
초보자를 위한 Git & GitHub초보자를 위한 Git & GitHub
초보자를 위한 Git & GitHub
 

Similar to Pythonでzabbix apiを使ってみる

Pyenvで幸せになろう.py
Pyenvで幸せになろう.pyPyenvで幸せになろう.py
Pyenvで幸せになろう.py2bo 2bo
 
Next-L Enjuのご紹介(2018年版)
Next-L Enjuのご紹介(2018年版)Next-L Enjuのご紹介(2018年版)
Next-L Enjuのご紹介(2018年版)Kosuke Tanabe
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Reportgree_tech
 
ZabbixでDockerも監視
ZabbixでDockerも監視 ZabbixでDockerも監視
ZabbixでDockerも監視 Atsushi Tanaka
 
第5回九州libre-office勉強会バグハンティング
第5回九州libre-office勉強会バグハンティング第5回九州libre-office勉強会バグハンティング
第5回九州libre-office勉強会バグハンティングShinji Enoki
 
脱・勉強会宣言 @ 「勉強会主催者のための勉強会」
脱・勉強会宣言 @ 「勉強会主催者のための勉強会」脱・勉強会宣言 @ 「勉強会主催者のための勉強会」
脱・勉強会宣言 @ 「勉強会主催者のための勉強会」Naruhiko Ogasawara
 
非開発者でもできる、オープンソースプロジェクトに貢献する方法
非開発者でもできる、オープンソースプロジェクトに貢献する方法非開発者でもできる、オープンソースプロジェクトに貢献する方法
非開発者でもできる、オープンソースプロジェクトに貢献する方法Shinji Enoki
 
Raspberry p ionzabbixproxy
Raspberry p ionzabbixproxyRaspberry p ionzabbixproxy
Raspberry p ionzabbixproxy2bo 2bo
 
Soft layer APIの使い方と実装のポイント
Soft layer APIの使い方と実装のポイントSoft layer APIの使い方と実装のポイント
Soft layer APIの使い方と実装のポイントShuichi Yukimoto
 
Aizu.LT::Tokyo #2
Aizu.LT::Tokyo #2Aizu.LT::Tokyo #2
Aizu.LT::Tokyo #2Taku Unno
 
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programingKei IWASAKI
 
Introduction of kabepy
Introduction of kabepyIntroduction of kabepy
Introduction of kabepyKenjiro Kosaka
 
YoctoでLTSディストリを作るには
YoctoでLTSディストリを作るにはYoctoでLTSディストリを作るには
YoctoでLTSディストリを作るにはwata2ki
 
LibreOffice mini Conference 2014 QA
LibreOffice mini Conference 2014 QALibreOffice mini Conference 2014 QA
LibreOffice mini Conference 2014 QAShinji Enoki
 
Pythonコミュニティ-紹介 @ LOCAL 2015
Pythonコミュニティ-紹介 @ LOCAL 2015Pythonコミュニティ-紹介 @ LOCAL 2015
Pythonコミュニティ-紹介 @ LOCAL 2015Takayuki Shimizukawa
 

Similar to Pythonでzabbix apiを使ってみる (20)

osc_tokyo20091030
osc_tokyo20091030osc_tokyo20091030
osc_tokyo20091030
 
osc_tokyo20100910
osc_tokyo20100910osc_tokyo20100910
osc_tokyo20100910
 
Pyenvで幸せになろう.py
Pyenvで幸せになろう.pyPyenvで幸せになろう.py
Pyenvで幸せになろう.py
 
Next-L Enjuのご紹介(2018年版)
Next-L Enjuのご紹介(2018年版)Next-L Enjuのご紹介(2018年版)
Next-L Enjuのご紹介(2018年版)
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
 
ZabbixでDockerも監視
ZabbixでDockerも監視 ZabbixでDockerも監視
ZabbixでDockerも監視
 
nextlenju73
nextlenju73nextlenju73
nextlenju73
 
Zabbix on SoftLayer
Zabbix on SoftLayer Zabbix on SoftLayer
Zabbix on SoftLayer
 
第5回九州libre-office勉強会バグハンティング
第5回九州libre-office勉強会バグハンティング第5回九州libre-office勉強会バグハンティング
第5回九州libre-office勉強会バグハンティング
 
脱・勉強会宣言 @ 「勉強会主催者のための勉強会」
脱・勉強会宣言 @ 「勉強会主催者のための勉強会」脱・勉強会宣言 @ 「勉強会主催者のための勉強会」
脱・勉強会宣言 @ 「勉強会主催者のための勉強会」
 
非開発者でもできる、オープンソースプロジェクトに貢献する方法
非開発者でもできる、オープンソースプロジェクトに貢献する方法非開発者でもできる、オープンソースプロジェクトに貢献する方法
非開発者でもできる、オープンソースプロジェクトに貢献する方法
 
Raspberry p ionzabbixproxy
Raspberry p ionzabbixproxyRaspberry p ionzabbixproxy
Raspberry p ionzabbixproxy
 
Soft layer APIの使い方と実装のポイント
Soft layer APIの使い方と実装のポイントSoft layer APIの使い方と実装のポイント
Soft layer APIの使い方と実装のポイント
 
Aizu.LT::Tokyo #2
Aizu.LT::Tokyo #2Aizu.LT::Tokyo #2
Aizu.LT::Tokyo #2
 
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
 
Introduction of kabepy
Introduction of kabepyIntroduction of kabepy
Introduction of kabepy
 
YoctoでLTSディストリを作るには
YoctoでLTSディストリを作るにはYoctoでLTSディストリを作るには
YoctoでLTSディストリを作るには
 
Hannari python#27
Hannari python#27Hannari python#27
Hannari python#27
 
LibreOffice mini Conference 2014 QA
LibreOffice mini Conference 2014 QALibreOffice mini Conference 2014 QA
LibreOffice mini Conference 2014 QA
 
Pythonコミュニティ-紹介 @ LOCAL 2015
Pythonコミュニティ-紹介 @ LOCAL 2015Pythonコミュニティ-紹介 @ LOCAL 2015
Pythonコミュニティ-紹介 @ LOCAL 2015
 

More from 2bo 2bo

PyScriptの紹介
PyScriptの紹介PyScriptの紹介
PyScriptの紹介2bo 2bo
 
結婚式のエンドロールを「Pythonで」当日作った話
結婚式のエンドロールを「Pythonで」当日作った話結婚式のエンドロールを「Pythonで」当日作った話
結婚式のエンドロールを「Pythonで」当日作った話2bo 2bo
 
あひる焼きの歴史 ver0.1
あひる焼きの歴史 ver0.1あひる焼きの歴史 ver0.1
あひる焼きの歴史 ver0.12bo 2bo
 
Python東海の紹介.py
Python東海の紹介.pyPython東海の紹介.py
Python東海の紹介.py2bo 2bo
 
自宅仮想マシンをConohaに移行してみた
自宅仮想マシンをConohaに移行してみた自宅仮想マシンをConohaに移行してみた
自宅仮想マシンをConohaに移行してみた2bo 2bo
 
Pillowの使い方
Pillowの使い方Pillowの使い方
Pillowの使い方2bo 2bo
 
PEP8を読んでみよう
PEP8を読んでみようPEP8を読んでみよう
PEP8を読んでみよう2bo 2bo
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
 
Raspberry piの紹介
Raspberry piの紹介Raspberry piの紹介
Raspberry piの紹介2bo 2bo
 
Cent osにpyhtonをインストールしてみよう
Cent osにpyhtonをインストールしてみようCent osにpyhtonをインストールしてみよう
Cent osにpyhtonをインストールしてみよう2bo 2bo
 

More from 2bo 2bo (10)

PyScriptの紹介
PyScriptの紹介PyScriptの紹介
PyScriptの紹介
 
結婚式のエンドロールを「Pythonで」当日作った話
結婚式のエンドロールを「Pythonで」当日作った話結婚式のエンドロールを「Pythonで」当日作った話
結婚式のエンドロールを「Pythonで」当日作った話
 
あひる焼きの歴史 ver0.1
あひる焼きの歴史 ver0.1あひる焼きの歴史 ver0.1
あひる焼きの歴史 ver0.1
 
Python東海の紹介.py
Python東海の紹介.pyPython東海の紹介.py
Python東海の紹介.py
 
自宅仮想マシンをConohaに移行してみた
自宅仮想マシンをConohaに移行してみた自宅仮想マシンをConohaに移行してみた
自宅仮想マシンをConohaに移行してみた
 
Pillowの使い方
Pillowの使い方Pillowの使い方
Pillowの使い方
 
PEP8を読んでみよう
PEP8を読んでみようPEP8を読んでみよう
PEP8を読んでみよう
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
Raspberry piの紹介
Raspberry piの紹介Raspberry piの紹介
Raspberry piの紹介
 
Cent osにpyhtonをインストールしてみよう
Cent osにpyhtonをインストールしてみようCent osにpyhtonをインストールしてみよう
Cent osにpyhtonをインストールしてみよう
 

Pythonでzabbix apiを使ってみる