2010/03/13

Hobbit(Xymon)による監視

Hobbitはサーバ監視システムです。
平易なWebインタフェースから様々な監視が可能です。

  • サーバの死活
  • HTTPやDNS等のネットワークサービスが提供されているか
  • CPU・メモリ・ディスク使用量が閾値を越えていないか
  • 特定のプロセスが起動しているか

詳しくはXymon監視を参照してください。

apt設定

自宅サーバ運用のため、パッケージのアップグレードの自動化を行う。
要件は以下の通り。
  • 毎日、自動でsafe-upgradeを行う
  • 変更点があればメールする。
  1. apt-listchangesのインストール・設定

    apt-listchangesは、upgradeしたパッケージの変更点をお知らせしてくれるツールです。

    # インストール
    sudo aptitude install apt-listchanges
    # debconfの設定
    sudo dpkg-reconfigure -plow apt-listchanges
    
    dpkg-reconfigureで生成される設定ファイルは以下の通り
    cat /etc/apt/listchanges.conf
    
    [apt]
    frontend=mail
    email_address=something@gmail.com
    confirm=0
    save_seen=/var/lib/apt/listchanges.db
    which=news
    
  2. cron-aptのインストール・設定
    cron-aptは自動的にパッケージのアップグレードをするツールです。
    #インストール
    sudo aptitude install cron-apt
    # 設定ファイルの編集
    sudo vim /etc/cron-apt/config
    
    #実行するAPTのフロントエンドをapt-getからaptitudeに変更
    APTCOMMAND=/usr/bin/aptitude
    #upgradeに失敗した場合のメール送信先を指定
    MAILTO="something@gmail.com"
    
    # ダウンロード時のオプションを変更
    sudo vim /etc/cron-apt/action.d/3-download
    # アップグレードのの実行時間を毎日6時に変更(デフォルト4時)
    sudo vim /etc/cron.d/cron-apt
    

2010/03/06

urllib2覚え書き

PythonでURLを開くためのライブラリ、urllib2の基本的な使い方。

import urllib2
import cookielib

# HTTPをデバッグするよ
hh = urllib2.HTTPHandler(debuglevel=1)

# cookie使うよ
cj = cookielib.Cookiejar()
ch = urllib2.HTTPCookieProcessor(cj)

# HandlerからOpenDirectorのインスタンスを作るよ
opener = urllib2.build_opener(hh, ch)
# リクエストを投げます。
response = opener.open("http://www.google.com")
HTTPのデバッグメッセージが表示されます。
send: 'GET / HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: www.google.com\r\nConnection: close\r\nUser-Agent: Python-urllib/2.6\r\n\r\n'
reply: 'HTTP/1.1 302 Found\r\n'
header: Location: http://www.google.co.jp/
header: Cache-Control: private
header: Content-Type: text/html; charset=UTF-8
header: Set-Cookie: PREF=ID=55d8e36ff2405b35:TM=1267881221:LM=1267881221:S=s-dUz3PaXx2rz40i; expires=Mon, 05-Mar-2012 13:13:41 GMT; path=/; domain=.google.com
header: Set-Cookie: NID=32=uP3EE_427CJw3vwUzgLNoAvxq2-rIeUY6aOIx_OwsOunNgldmmy6wUt0Pf7H4vJY4M9n93u_vJOjZXSNgBEY72j7cOptu9TyhnECS8tBkCcV0HQHjO_QZV-XGN-H0j9N; expires=Sun, 05-Sep-2010 13:13:41 GMT; path=/; domain=.google.com; HttpOnly
header: Date: Sat, 06 Mar 2010 13:13:41 GMT
header: Server: gws
header: Content-Length: 221
header: X-XSS-Protection: 0
header: Connection: close
send: 'GET / HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: www.google.co.jp\r\nConnection: close\r\nUser-Agent: Python-urllib/2.6\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
header: Date: Sat, 06 Mar 2010 13:13:41 GMT
header: Expires: -1
header: Cache-Control: private, max-age=0
header: Content-Type: text/html; charset=Shift_JIS
header: Set-Cookie: PREF=ID=9a0ca1a13152625e:TM=1267881221:LM=1267881221:S=pUQco5Mj4NSXKzgF; expires=Mon, 05-Mar-2012 13:13:41 GMT; path=/; domain=.google.co.jp
header: Set-Cookie: NID=32=M4YEeDAGj6VRt7TukiVq4lcQgsizbAvFjtK_9BXq7VB_1N-NsEy5jOvIhGBn83NPV6gHiVSTN5wUxQzZugbSyH11g-mUH1aGMZRxgsD2f_yl2fYxtkU6BzjiP-WFt24q; expires=Sun, 05-Sep-2010 13:13:41 GMT; path=/; domain=.google.co.jp; HttpOnly
header: Server: gws
header: X-XSS-Protection: 0
header: Transfer-Encoding: chunked
header: Connection: close
レスポンスを確認。
print response.read()

2010/03/03

x86-64のサーバでqmailを起動しようすると、tcpserverがエラーを吐く。

tcpserver: fatal: temporarily unable to figure out IP address for 0.0.0.0: file does not exist
解決法:

touch /etc/dnsrewrite

参考:
旧・予定は未定であって決定ではない:tcpserver: fatal: temporarily unable to figure out IP address for 0.0.0.0: file does not exist