アットウィキロゴ

 Tweepy API を利用したサーバ監視

 UbuntuMagazine7を参考にした覚書。

概要

監視の作業工程

  1. タイムラインのデータを取得する
  2. データを解析する
  3. 必要に応じてツイート(DM)する

各監視に対しての考慮ポイント

  1. ツイートの場合には、情報共有可能か否かの判断
  2. 投稿制限(投稿量)
  3. 無限ループの脱出策
  4. Twitterサーバ自体の負荷によるエラー回避方法
  5. ボット再起動手段

参考

  1. Tweepy API List

環境準備

 以下は監視対象サーバをUbuntuServer10.04LTSで実施しています。UbuntuServer以外では試してはいないが、PythonとTweepyが入れば行けるかも。

1.サーバ側作業

 必要なモジュールのインストールを行う。

 # apt-get update
 # apt-get upgrade
 # apt-get install python-setuptools
 # easy_install tweepy

 以下のスクリプト「get_timeline.py」実行により環境に問題ないか確認可能。

 #! /usr/bin/env python  
 import tweepy
 tweets = tweepy.api.public_timeline()
 for tweet in tweets:
         print tweet.text

 以下のコマンドラインで実行を行う。

 $ python ./get_timeline.py

 上記のコマンドは、世界中の最新ツイートが20件表示されるスクリプト。正しく、表示されていればOK。

2.認証準備

  1. Twitterのアカウント作成(持ってない場合)
  2. TwitterDeveloperで「My applications」を作成
     Application details
     ・Name: <applications名>
     ・Description: <applicationsの詳細>
     ・WebSite: https://twitter.com/#!/<アカウント名>
     ・Callback URL: <空白>
    
  3. ConsumerKEYの確認(※ access tokenの表示がない場合には、こちら
     My applicationsから上記で作成したものを選択し、Detailsの以下の項目をメモ。
     ・[OAuth settings]-[Consumer key]
     ・[OAuth settings]-[Consumer secret]
     ・[Your access token]-[Access token]
     ・[Your access token]-[Access token secret]
    
  4. [Setting]タブの[Application type]を[Read, Write and Access direct messages]

テスト実行

 ツイートする場合にはスクリプト「stdinput_tw.py」を使用、ダイレクトメールを使用する場合にはスクリプト「stdinput_dm.py」を使用する。

  • KEY = "[OAuth settings]-[Consumer key]"
  • SECRET = "[OAuth settings]-[Consumer secret]"
  • ATOKEN = "[Your access token]-[Access token]"
  • ASECRET = "[Your access token]-[Access token secret]"
 tail -f foo.log | python stdinput_dm.py

 ただし、気を付けてほしい。通常のログから発報させるためには、それなりにフィルタリングしてからじゃないと。

監視スクリプト例

最終更新:2012年04月11日 10:42