contentふたごパパのサーバ構築日記コンピュータ関連もろもろ、出来る時に、出来ることだけ。Pi3で稼働させてます。↓タイトル長いですね(笑)仮想通貨の取引所Coincheckには取引所APIが公開されていて、各通貨のレート、板情報、ティッカーを取得したり、新規注文を行なったりすることもできます。今回はこの機能を使って、販売レートを自前のZabbixで取得し、グラフ化してみました。bitFlyerやZaif等、他の取引所にもAPIがあり、同様のことができます。Coincheckを使ったのは、単純に自分が使っているからです。取引所APIの使い方たとえばビットコインと円の販売レートを取得するには、ブラウザで下記URLにアクセスします。https://coincheck.com/api/rate/btc_jpy/すると、json形式でrateの値を取得できます。{“rate”:”288130.0′′}数値が、アクセスした時点の1ビットコインの価格(円)です。btc_jpyの部分をeth_jpyにすると、EthereumとJPYのレートを取得することができます。https://coincheck.com/api/rate/eth_jpy/その他全取扱通貨について、対円、対ビットコインのレートを取得できます。詳細はAPIドキュメントを確認してください。販売レートは認証無しで取得できます。新規注文や自分が保有している仮想通貨量の取得は、認証の手順が必要になりますが、今回は割愛。取得する販売レート今回は全ての販売レートを取得します。今回はLinuxのシェル上でCoincheckの取引所APIを参照するので、curlコマンドを使用します。取得した販売レートをZabbixに送信するにはいろいろ方法があると思いますが、今回はzabbix_senderを使用しました。zabbix_senderコマンドを使用すると、クライアント側からZabbixサーバーに値をプッシュできます。コマンドは以下のように使用します。Zabbix管理画面でホスト、アイテムを登録しておく必要があります。123各オプションの意味は以下の通りです。送信する値また、-iオプションでファイルから値を読み取り、送信することができます。/tmp/value.txtファイルには、ホスト名、アイテム名、値をスペースを空けて記載します。789詳細は公式マニュアルか、manページを確認してください。Zabbixサーバー側の準備zabbix_senderから値を受け取るため、Zabbixの管理画面で以下設定を行っておきます。「設定」→「ホスト」から「ホストの作成」をクリックし、zabbix_senderを実行するホストをZabbixの「ホスト」として作成します。monitor」として新たに作成しました。「設定」→「ホスト」で表示されるホストの一覧から、「アイテム」をクリックします。以下の値を入力します。任意の名前を入力します。私は通貨ペアの名前をそのまま入力しました。zabbix_senderの-kオプションで指定するキー名を入力します。「rate.<通貨ペア>」にしました。無くても良いですが、単位が円になるものは「¥」を入力しました。デフォルトでも良いですが、長期間保存したい場合は増やします。私は1825日(5年)にしました。ヒストリと同じく、1825日にしました。※以降はデフォルトでOKです。1つ作ったら、「複製」して名前とキーと単位のみ変更して作成していくと楽です。いえこれだけのアイテムを作成するのは面倒だと思いますので、インポート用のファイルを用意しました。インポートのテストはしていませんのでご了承ください。スクリプトを作成するzabbix_senderを実行するホストにログインし、以下スクリプトを任意のディレクトリに配置します。>(${logger_e})req_rate取得したい販売レートを配列で入力しています。不要なレートがあるなら削除してください。販売レートを取得し変数に格納curlコマンドでAPIを呼び出し、販売レートを取得します。forでreq_rate配列に格納した通貨ペアの分だけ、以下のコマンドを実行し、値を通貨ペア名を名前にした変数に格納しています。空の一時ファイルを作成touchコマンドだと上手く作成できなかったので、echoで空ファイルを作成しています。通貨ペア名の変数から、ファイルを作成します。下記のようなファイルがここで作成されます。zabbix_senderで一時ファイルの内容を送信zabbix_senderの-iオプションを使用して、一時ファイルに格納された値を一気に送信しています。コーディングポリシーは「シェルスクリプトでWordPressをバックアップする」と同様です。最後のloggerの意味は「標準出力と標準エラー出力をloggerコマンドで別々にsysylogに出力する」を参照してください。-e」コマンドでcron設定ファイルに以下のエントリを追加します。1分おきにスクリプトを実行する設定です。/dev/null※<配置パス>はスクリプトを配置しているディレクトリのパスに読み替えてください。Zabbix管理画面で確認する問題なければ「監視データ」→「最新データ」で販売レートが取得できていることが確認できます。「グラフ」を開くと、以下のように表示されます。これだけなら各取引所で同様のチャートを見ることができるのであまり意味がないですが、例えばZabbixのトリガーを使って一定額になったらメールで通知するなど、工夫しだいで様々なことが出来るようになります。PrivateAPIと組み合わせれば、自動で売り買いする仕組みを作ることも夢ではないです。次の記事ではPrivateAPIにチャレンジする予定です。最後までご覧いただきありがとうございました。PublicAPIはCoincheckのアカウントが無くても使用できますが、タダで使うのはなんだか悪い。いう人は会員になってみてはいかがでしょうか。以下バナーよりどうぞ。コメントをキャンセルメールアドレスが公開されることはありません。連結できる自動積み込み駅メインサイドバーウィジェットエリア検索対象:検索プロフィール都内でITエンジニアをやっています。サーバーとネットワークが専門です。プログラミングはVBAとC,C#を少々。