PHP, Perl, Python, Ruby 文法などの比較まとめチートシート

プログラミング言語の比較対応で文法覚えられそうなんで便利!

* Big Script: PHP, Perl, Python, Ruby, Smalltalk
http://hyperpolyglot.wikidot.com/scripting

* Small Script: Bash, Tcl, Lua, Javascript, IO
http://hyperpolyglot.wikidot.com/small

* Platform: C, C++, Objective C, Java, C#
http://hyperpolyglot.wikidot.com/platform

CentOS 5.4 に munin(サーバー監視ツール) をインストール MRTG/cacti

▼munin 本家サイト
http://munin-monitoring.org/

munin って何?

munin(ムーニン)は、オープンソースで公開されているサーバー監視、グラフ化ツールです。
MTRG/cacti などと同様のツールです。

主な特徴

  • 比較的導入が簡単
  • プラグインによる取得データの拡張が出来る
  • グラフ化部(マスター)とデータ取得部(ノード)が違うプログラムになっている

マスター(munin)とノード(munin-node)の役割

マスター: データ収集 + グラフ化
ノード: マスターへのデータ提供

▼munin のインストール
基本的に munin を yum でインストールします。
しかし、CentOS-Base.repo では munin のパッケージが見つからないので
dag.repo を使用して munin のインストールをします。

▼そこで、yum レポジトリの追加(dag.repo)
参考:http://mt.mizba.net/archives/001205.php

$ sudo vi /etc/yum.repos.d/dag.repo

[dag]
name=Dag RPM Repository for redhat
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag
enabled=0   # enabled は0にして必要な時だけ有効にします
gpgcheck=1

続いて PGP key をインポートします。

$ sudo rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

これで dag.repo の設定は完了です。

▼次に munin を使用するに当たって必要になるアプリケーションのインストール
今回は「情報を集積するサーバ(マスター)」と「監視対象になるサーバ(ノード)」を
同一のサーバにするため munin と munin-node の両方をインストールします。

自分の場合は以下のようになりました。
※各自の環境によって違うと思います。

$ sudo yum --enablerepo=dag install munin munin-node

================================================================================
 Package                           Arch        Version              Repository
================================================================================
Installing:
 munin                             noarch      1.2.5-2.el5.rf       dag
 munin-node                        noarch      1.2.5-2.el5.rf       dag
Installing for dependencies:
 perl-Compress-Zlib                i386        1.42-1.fc6           base
 perl-Crypt-DES                    i386        2.05-3.2.el5.rf      rpmforge
 perl-DateManip                    noarch      5.44-1.2.1           base
 perl-Digest-HMAC                  noarch      1.01-15              base
 perl-HTML-Parser                  i386        3.64-1.el5.rf        rpmforge
 perl-HTML-Tagset                  noarch      3.20-1.el5.rf        rpmforge
 perl-HTML-Template                noarch      2.9-1.el5.rf         rpmforge
 perl-Net-SNMP                     noarch      5.2.0-1.2.el5.rf     rpmforge
 perl-Net-Server                   noarch      0.97-1.el5.rf        rpmforge
 perl-Socket6                      i386        0.23-1.el5.rf        rpmforge
 perl-URI                          noarch      1.35-3               base
 perl-libwww-perl                  noarch      5.805-1.1.1          base        

Transaction Summary
================================================================================
Install     14 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

▼続いて munin の設定です。
といっても特に必要ないと思います。

作られたファイルは以下の設定ファイルを見ると分かります。
※各自の環境によって違うと思いますが。
設定ファイルは /etc/munin/munin.conf です。

自分の環境では、以下のようになっていました。

  ・htmldir /var/www/munin

  ・/etc/httpd/conf.d/munin.conf
    ScriptAlias /munin/cgi/ /var/www/munin/cgi/
    Alias /munin/ /var/www/munin/

▼設定ファイルの確認が終わったら munin の起動と apache の再起動をします。
・munin の起動及び自動起動設定

    $ sudo /etc/init.d/munin-node start
    Starting Munin Node:       [  OK  ]

    $ sudo /sbin/chkconfig --list munin-node
    munin-node      0:off   1:off   2:off   3:off   4:off   5:off   6:off

    off になっていたら、以下コマンドを実行
    $ sudo /sbin/chkconfig munin-node on
    $ sudo /sbin/chkconfig --list munin-node
    munin-node      0:off   1:off   2:on    3:on    4:on    5:on    6:off

上記のようになったら自動起動 OK!

・apache を再起動します。
munin を起動してからは5分おきにグラフが更新されるようになります。

    $ sudo /etc/init.d/httpd restart

apache の再起動が完了したら http://localhost/munin/ にアクセスし
munin の状況を見てみましょう。

munin-graph

このように、MRTG/cacti とよく似た感じのグラフィカルなグラフで
負荷状況やサーバー状態などを確認出来ます。

MRTG/cacti よりもインストール設定などが簡単なので是非とも
導入してみては如何でしょうか。

日付と時刻の正しい表現方法

日付と時刻の正しい表現方法のメモ。

参考url:
http://neta.ywcafe.net/000851.html

日付を表現したい場合は YYYY-MM-DD たとえば
2008-05-16

時刻を表現したい場合は hh:mm:ss たとえば
11:25:30

日本時間であることをわかりやすく明記したい場合は
11:25:30+09:00
もちろんグリニッジ標準時からの時差がプラス9時間、の意。 (「JST」と書けとかUTCならZだとかそういう細かい話は省略。)

日付と時刻を両方表現したい場合は
2008-05-16T11:25:30+09:00
つまり日付と時刻をTでつなげる。

これが世界的スタンダードとしてISO8601とRFC3339に定められた日付と時刻の表現方法。 有名どころの言語やらデータベースその他ミドルウェアはすべてこれに沿った表記を解釈し入出力できるようになっている。 プログラマのみなさんは覚えておいて損はないというか絶対覚えておいたほうがいい。 できればプログラマに発注する側の人間も覚えておきましょう。

アクセス解析「AWStats日本語版」のインストール方法メモ その2

アクセス解析「AWStats日本語版」のインストール方法メモ その2

その1はこちら

  1. Apache の設定
  2. まず、Apache のログファイル名とログ形式を設定します。ファイル名は必ず「ホスト名-access_log」とし、形式は combined にしてください。

    バーチャルホストを使用していない場合

    # vi /etc/httpd/conf/httpd.conf
    
    CustomLog logs/access_log combined env=!no_log
    ↓
    CustomLog logs/blog.96q.org-access_log combined
    

    バーチャルホストを使用している場合

    # vi /etc/httpd/conf.d/virtualhost.conf
    
    <VirtualHost *:80>
    ServerName blog.96q.org
    :
    CustomLog logs/blog.96q.org-access_log combined  ←ログをこのように指定
    </VirtualHost>
    

    Web から AWStats のレポートにアクセスできるように設定します。

    # vi /etc/httpd/conf.d/awstats.conf
    
    #
    # Directives to allow use of AWStats as a CGI
    #
    Alias /classes "/usr/local/awstats/wwwroot/classes/"
    Alias /icon "/usr/local/awstats/wwwroot/icon"
    ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"
    
    #
    # This is to permit URL access to scripts/files in AWStats directory.
    #
    <Directory "/usr/local/awstats/wwwroot">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>

    Apache に設定を反映します。

    # /etc/init.d/httpd reload
    
  3. ログ集計の設定
  4. AWStats 完全日本語版では、オリジナルの AWStats とは違い、一度 Web サーバのログを UTF-8 変換するスクリプトを通してから集計する必要があります(でないと『完全』日本語版にはならなくなる)。

    まず、UTF-8 変換スクリプトを自分の環境に合わせて修正します。

    # vi /usr/local/awstats/wwwroot/cgi-bin/utf8_decode.pl
    
    $Myhost = "bflets.dyndns.org";      # 自ホストのchcheかの判定用.
    ↓
    $Myhost = "96q.org";  # 自ホストのchcheかの判定用.    ←自分のドメイン名に変更する
    

    次に Apache のログを UTF-8 変換スクリプトに通し、AWStats に集計させるスクリプトを作成します。

    # vi /usr/local/bin/awstats-update
    
    #!/usr/bin/env ruby
    
    CONF = "/etc/awstats"
    LOG_DIR = "/var/log/httpd"
    TMP_DIR = "/tmp/hl"
    UTF8_DECODE = "/usr/local/awstats/wwwroot/cgi-bin/utf8_decode.pl"
    AWSTATS = "/usr/local/awstats/wwwroot/cgi-bin/awstats.pl"
    
    Dir.mkdir(TMP_DIR, 0700)
    begin
      Dir.glob(CONF + "/*") do |var|
        if File.basename(var, ".conf") =~ /awstats.(.+)/
          domain = $1;
          log = "#{LOG_DIR}/#{domain}-access_log"
          tmplog = "#{TMP_DIR}/#{domain}-log.utf8"
          system("#{UTF8_DECODE} < #{log} > #{tmplog}&quot;)
          begin
            File.truncate(log, 0)
            system("#{AWSTATS} -config=#{domain} -update&quot;)
          ensure
            File.unlink(tmplog)
          end
        end
      end
    ensure
      Dir.rmdir(TMP_DIR)
    end

    作成したスクリプトに実行権限を与えます。

    # chmod +x /usr/local/bin/awstats-update
    

    cron で自動的に実行されるように crontab を設定します。

    # crontab -e
    

    以下を追加。

    00 *  * * * /usr/local/bin/awstats-update > /dev/null
    

    これで設定は完了です。ログは1時間ごとに集計されて http://xxx.xxx.xxx/awstats/awstats.pl で参照することができます。複数のホストについて設定した場合は、ホスト名を変更してアクセスするだけで自動的に AWStats が適切な設定ファイルを読み込んで動いてくれます。

アクセス解析「AWStats日本語版」のインストール方法メモ その1

アクセス解析ツール「AWStats」のインストールメモ。

参考URL:
http://www.bflets.dyndns.org/Tools/AWStatsJpn.html
AWStats 完全日本語版の導入

  1. Jcode.pm のインストール
  2. まず、日本語版で必要とされる perl のライブラリ Jcode.pm を インストールします(インストール方法は「Jcode.pm のインストール方法メモ」参照)

  3. AWStats 日本語版の取得とセットアップ
  4. AWStats 日本語版のアーカイブファイルを取得します。2008年4月21日現在、最新バージョンは 6.6 です。最新バージョンは公式ページでチェックしてください。ダウンロードが終わったら解凍します。

    # wget http://www.bflets.dyndns.org/AWStats66_Jpn.tar.gz
    # tar -zxvf AWStats66_Jpn.tar.gz
    

    解凍したディレクトリは名前を変えて /usr/local 下に置きます。ここ以外に置くと AWStats が警告を発する場合があります。

    # mv AWStats66_Jpn /usr/local/awstats
    

    次に AWStats の集計データを入れるディレクトリを作成します。

    # mkdir /var/lib/awstats
    

    AWStats の CGI ディレクトリに移動します。

    # cd /usr/local/awstats/wwwroot/cgi-bin
    

    デフォルト設定ファイル awstats.model.conf を作ります。すでに日本語のデフォルト設定ファイルが別名で存在しますのでコピーして使用します。

    # cp awstats.model_jp.conf awstats.model.conf
    

    ツールディレクトリに移動し、設定スクリプトを実行します。

    # cd /usr/local/awstats/tools
    # ./awstats_configure.pl
    

    すると Apache の設定ファイルのありかを聞かれます。ここで Apache の設定ファイルを答えると設定ファイルが書き換えられてしまうので「none」を入力してスキップします(Apache の設定ファイルは後ほど手動で編集します)。

    -----> Check for web server install
    
    Enter full config file path of your Web server.
    Example: /etc/httpd/httpd.conf
    Example: /usr/local/apache2/conf/httpd.conf
    Example: c:Program filesapache groupapacheconfhttpd.conf
    Config file path ('none' to skip web server setup):
    > none
    

    次に設定ファイルを作るかと聞かれます。もちろん Yes です。

    -----> Need to create a new config file ?
    Do you want me to build a new AWStats config/profile
    file (required if first install) [y/N] ? y
    

    設定対象のホスト名を聞かれますので入力します。

    -----> Define config file name to create
    What is the name of your web site or profile analysis ?
    Example: www.mysite.com
    Example: demo
    Your web site, virtual server or profile name:
    > blog.96q.org    ←ご自分が管理しているホスト名
    

    設定ファイルのありかを聞かれます。デフォルトの /etc/awstats で良いのでそのまま Enter キーを押します。

    -----> Define config file path
    In which directory do you plan to store your config file(s) ?
    Default: /etc/awstats
    Directory path to store config file(s) (Enter for default):
    >   ←何も入力せずに Enter
    

    その後確認の意味を込めて Enter の入力を求められますので、適宜 Enter キーを押してください。

    -----> Add update process inside a scheduler
    Sorry, configure.pl does not support automatic add to cron yet.
    You can do it manually by adding the following command to your cron:
    /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=centos.oss.sc
    Or if you have several config files and prefer having only one command:
    /usr/local/awstats/tools/awstats_updateall.pl now
    Press ENTER to continue...    ←何も入力せずに Enter
    
    A SIMPLE config file has been created: /etc/awstats/awstats.centos.oss.sc.conf
    You should have a look inside to check and change manually main parameters.
    You can then manually update your statistics for 'centos.oss.sc' with command:
    > perl awstats.pl -update -config=centos.oss.sc
    You can also build static report pages for 'centos.oss.sc' with command:
    > perl awstats.pl -output=pagetype -config=centos.oss.sc
    
    Press ENTER to finish...      ←何も入力せずに Enter
    

    もし、バーチャルホストとして他にも Web サイトを運営している場合は、この設定スクリプトをそのバーチャルホストぶん実行してください。

     この設定スクリプトで生成した設定ファイルはそのままでは使えませんので修正します。なお、blog.96q.org という部分はご自分が管理しているホスト名に読み替えてください。

    # vi /etc/awstats/awstats.blog.96q.org.conf
    
    LogFile="/var/log/httpd/mylog.log"
        ↓
    LogFile="/tmp/hl/blog.96q.org-log.utf8"
    

    最後に後始末をします。

    # cd
    # rm -rf AWStats66_Jpn.tar.gz
    

    以上で AWStats のセットアップは終了です。

その2へ続きます