メイン

CentOS アーカイブ

       

2007年01月13日

IBM Xseries Server 306m シンプルスワップモデル

インストールメモ
IBMの直販で売ってる。電話で聞いたら生産が12月までなのでその後は在庫
だけですよということだった。
1台13万切るくらいで2GBメモリ RAIDだし1U DELLとかはRAID構成にしてな
いけどそんなに変わらないぐらいだったので選択。

性能緒源
型番 8849-PAQ
Pentium4 3.0Ghz
SATA 74GB HDD *2 RAID1
インストールメディア
CentOS 4.4 X86-64

これが曲者だった。というのもRHEL用のドライバーは用意されているがCentOS
入れようったってそうは問屋が卸さない。で入れかた。
RedHatを入れるのであればIBMのマニュアルどおりにすればいいと思う。日本語
マニュアルがあった。

通常の作成のディスクを利用するとそのまま入るのだがRAID-1構成にはならな
いのでデバイスドライバーの作成が必要

事前準備 ハード側で制御を変更する。
BIOSの設定
+Advanced I/O
+SATA Controller Mode Option: Enhanced
+SATA RAID: Enhanced

ちなみにホットスワップモデルもありそっちはadhpciというドライバを利用するのだが
実はシンプルスワップモデルでもこれで入ってしまう。
ただRAID構成にならないのでインストール時は普通に入るがなんか機能を利用して
いないのでもったいない。
adpacpiというドライバーがいる。 RHEL4以降のモデルでは標準でRAIDを構築しな
いのであればそのままのモデルでもインストールは可能であった。
正し、上記のBIOSレベルでONにしているとエラーになったり若干不安定な設定も
あるので切っておいて別に使いたいときはそのほうが良いと思われた。

注:コントローラが異なるらしい。そのためRAIDコントローラをつけたりしていると
aacraidとか言うドライバが別に必要になるとのこと。

準備
オンボードでIBM ServerRAID-8e用のデバイスドライバーが提供されているがオン
ラインでGETしておく。

これで検索
http://www.google.co.jp/search?hl=ja&q=IBM+ServeRAID-8e+SATA+II+simple-swap+drivers+for+Red+Hat&lr=

出てきた結果。 もしかしたら直リンはだめかも。
http://www-304.ibm.com/jct01004c/systems/support/supportsite.wss/docdisplay?lndocid=MIGR-62459&brandind=5000020
http://www-304.ibm.com/jct01004c/systems/support/supportsite.wss/docdisplay?lndocid=MIGR-63041&brandind=5000020

686だと
http://www-304.ibm.com/jct01004c/systems/support/supportsite.wss/docdisplay?lndocid=MIGR-61878&brandind=5000008

IBMは国内サイトだとFTP経由しかなかったので本社(?)から落とす。

LINUXでFDが使えるものが必要
ibm_dd_adpahci_1.2.5570_rhel4qu4_x86-64.img

FDの準備
mkdosfs /dev/fd0

imgファイルの展開
dd if=./ibm_dd_adpahci_1.2.5570_rhel4qu4_x86-64.img of=/dev/fd0

マウントして確認する。
mount -t vfat /dev/fd0 /mnt/

ls -la /mnt

drwxr-xr-x 2 root root 7168 1? 1 1970 .
drwxr-xr-x 23 root root 4096 1? 13 16:25 ..
-rwxr-xr-x 1 root root 52 8? 18 15:57 modinfo
-rwxr-xr-x 1 root root 484961 8? 18 15:57 modules.cgz
-rwxr-xr-x 1 root root 0 8? 18 15:57 modules.dep
-rwxr-xr-x 1 root root 117 8? 18 15:57 pcitable
-rwxr-xr-x 1 root root 27 8? 18 15:57 rhdd

ドライバーが仮にあったとしてもカーネルのバージョン等が異なればそれは適用
できない。そのため確認が必要。REDHATのバージョンは以下の通りであった。
RedHat EnterprizeLinux 4 UPDATEなし 2.6.9-5
RedHat EnterprizeLinux 4 UPDATE4 2.6.9-42

  • U1: 2.6.9-11.EL
  • U2: 2.6.9-22.EL
  • U3: 2.6.9-34.EL
  • U4: 2.6.9-42.EL


    ちなみにCentOS4.4 X86_64は以下であった。2.6.9-42
    CDのDisk2に入っている。カーネルRPMより推測 おそらくこのあたりは予想なの
    だけどREDHATとCENTOSは近似値と捕らえてこれを適用

    ドライバーイメージを展開しカーネルバージョンとマッチしているか確認する。
    gzip -dc ./modules.cgz >/tmp/modules.cpio
    cpio -itv 表示は以下の通り
    drwxr-xr-x 4 root root 0 Aug 19 07:57 .
    drwxr-xr-x 3 root root 0 Aug 19 07:56 2.6.9-42.EL
    drwxr-xr-x 2 root root 0 Aug 19 07:56 2.6.9-42.EL/x86_64
    -rw-r--r-- 1 root root 671146 Aug 19 07:56 2.6.9-42.EL/x86_64/adpahci.ko
    drwxr-xr-x 3 root root 0 Aug 19 07:57 2.6.9-42.ELsmp
    drwxr-xr-x 2 root root 0 Aug 19 07:57 2.6.9-42.ELsmp/x86_64
    -rw-r--r-- 1 root root 663135 Aug 19 07:57 2.6.9-42.ELsmp/x86_64/adpahci.ko

    /mnt/* CDROMに移動して焼き付けた。

    実作業
    CentOSのインストール

    linux DDで起動
     さきほど焼き付けたドライバーディスクを挿入し他にドライバあるかいときてエラーが
     出なければOK

    driverdisk.JPG
    これでほかのドライバーが要求されればOK

    RAID-1と認識しディスクがsdaで一個だけなら成功。

    以下のドライバーはホットスワップモデルなのでいくらやってもしシングルドライブと
    してしか認識しない。
    ibm_dd_hradpxx_1.2.5922_rhel4なんとか
    adptecから直接ダウンロードした場合は
    adp94xx.rhel4qu4.x86_64.imgになるが これはホットスワップモデル用。

    参考元
    http://www.centos.org/modules/newbb/viewtopic.php?topic_id=5448
    先陣の方 でもホットスワップモデル。モデルの違い見てなくて遠回りしてしまった。
    http://blogs.atanaka.biz/tanaka/index.php?query=IBM&amount=0&blogid=2

  •                

    2007年01月17日

    IBM Xseries Server 306m シンプルスワップモデルつづき

    どうにも困った問題発生、ネットワークアダプターがエラーになる。

    いちお導入方法のメモ書き。

    IBMよりネットワークドライバーをダウンロード
    http://www-06.ibm.com/jp/domino05/pc/download/download.nsf/jtechinfo/MIGR-43815

    ISOイメージなのでCD-Rに焼き付ける
    ただ必要なのはtg3-3.66d.tar.gzだけなので それだけを
    前回のドライバーディスクと組み合わせて焼いても良いかもしれない。

    mount /media/cdrom

    cp /media/cdrom/tg3-3.66d.tar.gz /tmp/
    cd /tmp
    tar -zxvf tg3-3.66d.tar.gz
    cd ./tg3-3.66d
    make

    バックアップの取得とモジュールの切り離し
    service network stop
    rmmod tg3 (いちお)

    モジュールはネットワークドライバなので必ずローカルコンソールで実施

    cp /lib/modules/2.6.9-42.ELsmp/kernel/drivers/net/tg3.ko /lib/modules/2.6.9-42.ELsmp/kernel/drivers/net/tg3.ko.bak

    make install

    service network start

    dmesg|grep tg3

    バージョン確認する。
    いちお最新になるがなにかおかしい。そもそもICMPが通らない。
    そもそもethtoolでlink detectedにもならないし。

    さらに調べて重大事実が判明
    書いてあるインターフェイスとethが逆に、クロスケーブルでのチェック時に
    判明。これのために二日、、、
    というのも
    eth0 ->物理ポート2
    eth1 ->物理ポート1

    とほほ。

                   

    2007年01月19日

    ネットワークの設定

    久しぶりにネットワーク関連つい忘れがちなのでメモ

    ipv6は普及してきたけどまだインターフェイスには不要だという場合は
    以下の設定で切る。

    cp /etc/modprobe.conf /etc/modprobe.conf.org
    echo "alias net-pf-10 off" >>/etc/modprobe.conf
    echo "alias ipv6 off" >>/etc/modprobe.conf

    ネットワークポートのオートネゴシエーションでかつて痛い目を見たので、
    信用していない私は以下の設定

    cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-script/eth0.bak
    cp /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-script/eth1.bak
    echo "ETHTOOL_OPTS=autoneg off speed 1000 duples full" >>/etc/sysconfig/network-scripts/ifcfg-eth0
    echo "ETHTOOL_OPTS=autoneg off speed 1000 duples full" >>/etc/sysconfig/network-scripts/ifcfg-eth1

    ルーティングの設定

    RH系サーバにおいてルーティングを設定する際は
    /sbin/route add -net XX.XX.XX.XX/24 gw XX.XX.XX.XX dev ethX

    こないだデフォルトルートを消してしまってMASKもミスって凡ミス。
    デフォルトルートは
    /sbin/route add defualt gw XX.XX.XX.XX if ethX

    確認
    netstat -rn

    windowsだと若干方言があってミスする。
    いちおメモ
    route ADD XX.XX.XX.XX MASK XX.XX.XX.XX XX.XX.XX.XX METRIC 1 IF X

    gwが無いのと ホスト、ネットの区分が要らない。

    solaris (9)だとこんな感じ

    route add 192.168.0.1/27 192.168.0.254

    ソラリスは結構インターフェイス名と関連付けがあって文化があるというか
    hostnameとか駆使しているような気がする。LINUXはそのあたりは結構名残的
    要素しかないなぁ。

    で本題。 再起動時に有効にするためには以前rc.localに書いたりしてたけど
    これが本流らしい。

    /etc/sysconfig/static-routes に記載する。

    any host 192.168.0.10 netmask 255.255.255.255 192.168.0.254 eth0

    anyは起動スクリプトで呼び出して記録するので記載しているそう。後は
    コマンドどおり

                   

    2007年01月20日

    バージョン管理システムと勘所。

    @itmedia風なタイトルだ。

    MS謹製のバージョン管理ソフトであるVSSを使っていて結構管理者依頼が多くて面倒だった。
    そんなときに今は無き月刊誌LinuxWorldにてsubversionの解説が。 後で知ったけど公式の
    CCのライセンスで配布されているので好きなときに読めると思う。

    というか日本語訳ついてしっかりかかれてて便利なので購入。(後輩にも読んで勉強して
    もらってる。)

    革命的なのは Lockがないという概念だった。結局のところ、ロックの争奪戦はそんなにあ
    るわけではないけど、あると面倒。そんなのもっと緩く、話し合いで解決しろよ。それ以外
    手は無いぜ!というような、システムの問題ではないことはシステムで解決するなという
    単純だけど奥が深い考え方があって、これはすげーと思った。
    そもそもロックして逃げたやつは忘れてしまうこともある。それをはずすのは管理者の仕事
    なのだろうか。

    注記
     最近知ったけどsubversionもロックを搭載したらしい。

    そもそもバージョン管理システムを使おうと思ったのは本番環境への更新とかで、仮環
    境からうつすときに"よくやると思うけど".bakとか作るのが正直馬鹿らしくなってきたからだ。

    もともとそういうのを管理する仕組みであるし、前に戻すのもコマンドで、履歴がとられてい
    るか一気に戻したりできる。あと誰がやったやつなのか。複数人で作業するときはそういう
    利便性もあって導入させてもらった。

    1,バージョン管理をしたい。(すぐ戻したり、文言レベルの修正とか多いよとか)
    2,ドキュメントのバックアップがほしい
    3,複数台にサーバがある

    3はちょっと違うのかもしれないけど。いちお
    最近では珍しくないと思うけど、複数台のサーバを持って負荷分散とか
    冗長構成とかしていると思う。

    こんな構成
    ------ ----- ------
    -----------------| LB |------------|WEB|-------| DB |
    ------ | ----- ------
    | -----
    ----------|WEB|
    -----

    とすると複数台に同じようなコンテンツの配布とかしないといけない。
    それは面倒だなぁと。
    そこで subvesionとRSYNCを使って更新処理。

    前にsubvesrionでコミットしたら更新とか思ってバッチに書いてたけどあまりに
    重くなってしまうので同期はやめた。

    代わりに、何時と、何時と と時間を決めそのときに更新するからということで
    (半ば飴、鞭戦法 というかなんでもいまどきトレードオフだと思うけど)
    変えてもらった。

                   

    2007年01月26日

    SPFについて調べる。

    携帯サイトをターゲットに会員向けメール配信をしたいと考えている。
    高速かつSPAM問題を考えるとやはり対応が必要なのはSPFかなと調べて
    みた。

    そもそもSPFとは Sender Policy Framework
    の略称で送信元ドメインの偽証を防ぐ手段らしい。

    いちお大手4社は対応済み (Docomo,AU,Softbank,Willcom)
    対応への提言として
     http://jeag.jp/news/pdf/wireless20060223.pdf
     対応状況とかまとめられてるが本稿とはあんまり関係ない。

    そもそも認証をするためにはDNS側およびメールサーバ側での実装が必要
    になる。
    同様な仕様としてDomainKeyという仕組みがあるこれも同様に送信者側の
    偽装を防ぐ仕組みではあるがメール側にデジタル署名をするなど差がある
    ようだ。一報SPFは送ってきたやつが登録されているかを確認することに
    よりほんとにそいつ?という仕組みらしい。

    対応に関しては日本ではこんな資料があった
    http://www.iij.ad.jp/news/pressrelease/2006/0223.html

    BIND側の設定
    BINDゾーンファイルにおいてテキストレコードを追記する。

    #cat ostl.zone
    省略
    ostl.net. IN TXT "v=spf1 MX ~all"

    IPv4のアドレスによる表記もある。
    ostl.net. IN TXT "v=spf1 +IP4:192.168.254.1/28 ~all"

    受信側の対応
    postfixにはこれを組み込めば良いらしい
    Postfix-Policyd

    perlのプログラムなのでCPANカラの導入が必要。
    Mail::SPF::Query
    良い子は真似してはいけないROOTインスト
    [root@centos Mail-SPF-Query-1.999.1]# perl Makefile.PL
    Checking if your kit is complete...
    Looks good
    Warning: prerequisite Net::CIDR::Lite 0.15 not found.
    Warning: prerequisite Net::DNS 0.46 not found.
    Warning: prerequisite Sys::Hostname::Long 0 not found.
    Writing Makefile for Mail::SPF::Query
    [root@centos Mail-SPF-Query-1.999.1]# make
    cp lib/Mail/SPF/Query.pm blib/lib/Mail/SPF/Query.pm
    cp bin/spfd blib/script/spfd
    /usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/spfd
    cp bin/spfquery blib/script/spfquery
    /usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/spfquery
    Manifying blib/man1/spfd.1
    Manifying blib/man1/spfquery.1
    Manifying blib/man3/Mail::SPF::Query.3pm
    [root@centos Mail-SPF-Query-1.999.1]# make install
    Installing /usr/lib/perl5/site_perl/5.8.5/Mail/SPF/Query.pm
    Installing /usr/share/man/man1/spfquery.1
    Installing /usr/share/man/man1/spfd.1
    Installing /usr/share/man/man3/Mail::SPF::Query.3pm
    Installing /usr/bin/spfquery
    Installing /usr/bin/spfd
    Writing /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/auto/Mail/SPF/Query/.packlist
    Appending installation info to /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/perllocal.pod

    あ、make testも。

    /etc/postfix/master.cf
    policy unix - n n - - spawn user=nobody argv=/usr/bin/perl /usr/libexec/postfix-policyd-spf-perl

    postfix-policyd-spf-perl-1.08.1.tar.gz
    cp ./postfix-policyd-spf-perl /usr/libexec/postfix/

    /etc/postfix/main.cf
    smtpd_recipient_restrictions =
    check_policy_service unix:private/policy を追加する。

    注記
    SoftWareDesignの2月号のDNS特集にSPF/DomainKeyによる構築事例があった。

    本家本元
    http://www.openspf.org/

                   

    2007年01月27日

    SonicWall SSL-VPN200

    低価格で機能もありのSONICWALL社 SSL-VPN200について思うメモ。

    一般的に通信の暗号化をする意味では順にインターネットVPN,IP-VPN、
    フレームリレー、専用線
    なんていわれているが(フレームリレー、専用線はほぼ同等か)最近流行
    のインターネットVPNを汎用品にしたのがこれだろう。

    個人的な経験で若い時に私がいけないのだがSonicWall社製のファイヤー
    ウォールを使って構築した際にアウトバンドの通信を忘れてえらい目をみ
    てしまった。以来、通信の設定には自信が無く設定もできれば外部で確認
    をしてもらう方法を取っていた。やっぱりこういう要素はいろんな人の目
    を持つこと、つまり第3者の確認を持ってすべきだろう。

    少なくともそれだけに今回もかなり慎重にはなるが低価格、かつソフト
    ウェア型(パケテリックス?)のようなタイプでないことを前提に選定。

    っていうか箱物で14万は結構安い。もともと中小ターゲットにしている
    だけあって練られている気がする。でも統一感だして統合関係を全面に出
    しすぎるとなぁ、マニュアル探すのにも面倒な気もするよ。
    ほんとはNetscreen系の(ネオテリス)とかにしたいけどやっぱり高い3倍
    はなぁ、、、それだけの機能もあるし社外からAD構築環境にログインして
    とか考えたら有力だと思うけど。
    いちおオープンソースだとSSL-BRIGEというソフトがある。目的はファイル
    共有メインだが。

    そうそうこういう価格帯になると無線LANと併用してOPENかつ外部に提供環
    境とかを構築しないでできる

    たぶん一般的には
    CiscoAiroNet VLAN3 -WLAN ----Switch ---Intranet 環境
    VLAN1 -OPEN ----Switch ---Internet 環境

    など切って接続IDを切替ながらとかすると外部、内部の共用環境とか
    できるけど
    汎用無線LANを

    AP -----SonicWall SSLVPN200 ----内部
    |--internet

    とあんまり複雑にせずに分けることができる。
    たぶん上のセットと同様かつシンプルになるという意味ではありだろう。

    ソフトウェアだとPCが必要だけど同様にできると思う。(たしか事例が)
    OPEN-VPNとかも有力な選択肢だと思う。パケテリックスが商用化かつ機
    能拡充を進めている今や。正直なところ安くという要件であればきっと
    OPEN-VPNが選択肢になると思う。パケテリックスは正直商用化の
    道になりつつあるので。
    タップドライバーとか概念がわかれば結構組みやすそうだった。ただ
    サーバ、セキュリティの大変さを考えると箱物の方が自分は楽だと思う。
    (solarisとかマックとかに視野を広げると自由度があるほうがいいと思うけど。)

                   

    squidのインストール

    Squidなんて読むか教えてほしい。。(スクイド、スキッド?)

    探すしてみる
    #yum search squid

    興味を引いたものあわせてぐぐっと

    calamaris
    squid用ログ解析
    html形式他解析結果を表示可能、テキストにして毎日メールでログチェックにも良いかもしれない。

    squidguard
    たぶん有名どころだけどフィルタソフト。会社とか、子供とかにはと考えると入れるの かな。

    sarg
    squidログ解析 表示はHTML形式 どこ、だれをメインにしているらしい。要コンパイル。

    awstats
    いまだに読みがわかってない(勝手にエーダブリュースタッツ 絶対違う)けどチョー
    グラフィカルにする。専業はapacheとかのファイルのような気がするけど、以前メール
    で使ったときは結構わかりやすくて便利だった。でもみるのが面倒でメールに強い
    pflogsummにしてしまったけど。

    内部のAPI用途だから当面は解析は簡単に見れればいいと思うので凝ったツールには
    しないことにしよう。

    yum install squid

    squid-2.5.STABLE6-3.4E.12 100% |=========================| 126 kB 00:00
    ---> Package squid.x86_64 7:2.5.STABLE6-3.4E.12 set to be updated
    --> Running transaction check

    vi /etc/squid/squid.conf

    昔、文献でみたけど squid事体を三位一体モデルのような配置にしてキャッシング
    性能を上げるというのを見た事がある。たぶん リバースプロキシーの用に使うと
    きに有効っぽい。(たぶんICPコネクタとか言う名前だった)
    あと、強制フィルタリング(natのprerouting)をして(あの時はiptablesだったと思う)
    で透過フィルタにするとかいうテクニックもあった。よく2ch跳ねみたいのもみるけど
    あれperlスクリプトとかだったような気がするから接続の度にプロセス生成なのかな。
    たぶん今後SOX法関連でsquid関連の出番が増えるのかなぁ、、、
    今度配置を考えてみてみよう。

    acl inside src 192.168.254.100/255.255.255.255

    #acl SSL_ports port 443 563
    acl SSL_ports port 443
    acl Safe_ports port 80 # http
    #acl Safe_ports port 21 # ftp
    #acl Safe_ports port 443 563 # https, snews
    acl Safe_ports port 443 # https
    #acl Safe_ports port 70 # gopher
    #acl Safe_ports port 210 # wais
    #acl Safe_ports port 1025-65535 # unregistered ports
    #acl Safe_ports port 280 # http-mgmt
    #acl Safe_ports port 488 # gss-http
    #acl Safe_ports port 591 # filemaker
    #acl Safe_ports port 777 # multiling http

    http_access allow inside


    [root@centos postfix]# ls -la /var/log/squid/
    合計 20
    drwxr-x--- 2 squid squid 4096 1月 27 19:05 .
    drwxr-xr-x 12 root root 4096 1月 27 18:52 ..
    -rw-r--r-- 1 squid squid 0 1月 27 19:05 access.log
    -rw-r--r-- 1 squid squid 3076 1月 27 19:05 cache.log
    -rw-r--r-- 1 root root 47 1月 27 19:05 squid.out
    -rw-r--r-- 1 squid squid 0 1月 27 19:05 store.log

    yumだとログのローテートも自動だ。楽だなぁー。

    chkconfig --level 2345 squid on

    追加  リバースプロキシーを実現するこういうのもあるらしい。
    Squirm
    まだベータということだが 使用実績を見る限りある程度使えると思う。検証は必要だけど。
    http://squirm.foote.com.au/

    サイトリダイレクト
     www.ostl.net/book/ --> book.ostl.net に内部向けで変換。

    のような機能を実現できる。(apacheの mod_proxyみたいだ。)

                   

    2007年01月29日

    mysqlでの権限確認

    MYSQLの権限
    use mysql;
    select * from user;

    チェック
    mysql> select Select_priv,Insert_priv,Update_priv,Delete_priv from user WHERE USER ='XXXXXX' ;
    +-------------+-------------+-------------+-------------+
    | Select_priv | Insert_priv | Update_priv | Delete_priv |
    +-------------+-------------+-------------+-------------+
    | N | N | N | N |
    | N | N | N | N |
    +-------------+-------------+-------------+-------------+
    2 rows in set (0.00 sec)

    mysql> UPDATE user SET Select_priv='Y' ,Insert_priv='Y',Update_priv='Y',Delete_priv='Y' WHERE USER ='XXXXXX' ;
    Query OK, 2 rows affected (0.00 sec)
    Rows matched: 2 Changed: 2 Warnings: 0

    mysql> select Select_priv,Insert_priv,Update_priv,Delete_priv from user WHERE USER ='XXXXXX' ;
    +-------------+-------------+-------------+-------------+
    | Select_priv | Insert_priv | Update_priv | Delete_priv |
    +-------------+-------------+-------------+-------------+
    | Y | Y | Y | Y |
    | Y | Y | Y | Y |
    +-------------+-------------+-------------+-------------+
    2 rows in set (0.00 sec)

    mysql>

                   

    2007年02月03日

    ソラリスでのinterfaceの追加方法

    solarisはインターフェイスがネットワークhostによって確認される
    ので
    /etc/hostsに 対象インターフェイスの追加と
    デバイスの作成が必要になる。

    /etc/hostname.INTERFACE名:仮想インターフェイス番号 に追加。

    cat /etc/hostname.dmfe0:2
    myserver1

    仮想インターフェイスの追加

    ifconfig dmfe0:2 plumb 192.168.0.101 netmask 255.255.255.0 broadcast 192.168.0.255 up

    8と9でかわり書式が異なるのではまった。
    で上は9の書式。

    あと速度の設定はndd系でセットする。

                   

    2007年02月12日

    アクセス解析 visitosとは

    アクセス解析メモ

    PHPADSNESをと思っていたのだけどもともとのコンセプトが違うらしい。
    (今はopenads)
    というか これ 広告代理店のようなソフトなので用途が違う。

    そこで探してみた。
    Analogは昔使ってたけど シンプルすぎるしだからといってもreport Magic使うのもちょっと手間
    AWSTATSは使ってるけど Perlの中とか見るのもつらいし、処理待ちが長い。バッチ組めば一
    緒だけど。AWSTATSは色々解析できる点(FTPとかMAILLOG)が便利だし何よりグラフィカル
    であるのでインパクトとかいいと思う。

    せっかくなのでそれ以外に
    http://www.phpmyvisites.us/
    フランス語と英語のガイドがあってそもそも設置ページは日本語もあり結構引っかかります。
    というか結構アクセス解析ページ事態公開しているもんですね。
    ただしPHP4対応。

    PHP5で動くのはこれらしい
    http://www.my-code.org/
    php i-stats シンプルで見やすい。ただちょっと簡易すぎるようなAWSTATSのような
    イメージには行き着かず。

    で これが最速って評判なので調べてみたメモ
    visitors
    apacheログ解析最速って言葉に惹かれます。 というか3次元レポートってなんだ?
    それはこれから確認してみようと思いますが

    惹かれた点。

  • ストリームモードというのを使えばswatchのようにログに張り付いて解析がリアルタイム
    にできるらしい
  • Cなので処理事態ははやそう。
  • GPL 販売もしてるけど コードがフリー
  • Graphviz による視覚的パス分析

    久々に、ちょっと楽しみになりそうなツールです。解析結果に関してはまた追記で。

    3次元は画像の深度で表示しているようでした。
    あとhpingのサイトにあるってことは関連しているのかもしれません。テストと解析でしょうか

    その前の追記
    やっぱり個人とかそんなに多数で使うのでないなら
    Google analystisは優秀だと思う。っていうかまだ売ってるし売り物をただにするというのは
    すごいパラダイムシフトだと思った。

  •                

    2007年02月16日

    Catch ALL address

    バーチャルエイリアスを用いてすべての受付を受け取る場合

    virtual_alias_maps = hash:/etc/postfix/virtual_alias

    virtual_alias_maps
    @photo.example.com photo@example.com

    という設定が可能。
    この場合すべてがなるとこまるので横取り防止策として

    @photo.example.com photo@example.com
    info@photo.example.com info@exmaple.com

    にすることが可能。
    忘れずに
    postmap virtual_alias

    送信元もFIXする場合は
    canonical_mapsに記載する。

    photo info@photo.example.com

    忘れずに
    postmap canonical

    を入れておこう。

                   

    2007年03月01日

    mysqlのレプリケーション

    新規に作成する場合として

    ユーザ作成
    GRANT FILE,REPLICATION SLAVE ON *.* TO replicator@`192.168.20.0/255.255.255.0`
    IDENTIFIED BY `XXXXX`

    バイナリーの統合のため以下を設定
    マスターサーバ
    /etc/my.cnf
    [mysqld]
    log-bin
    server-id=10

    バイナリー作成を確認
    ls -la /var/lib/mysql/*-bin.*

    MYSQL上から
    SHOW MASTER STATUS;
    SHOW VARIABLES LIKE 'server\_id' ;

    スレーブサーバ
    [mysqld]
    server-id=20
    master-host=MASTERSERVER-NAME
    master-user=replicator
    master-password=XXXXXX

                   

    2007年05月11日

    GDでTTF

    CFLAGS='-I/usr/kerberos/include -O3 -msse -mmmx -funroll-loops' './configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--enable-sigchild' '--enable-track-vars' '--enable-mbstring' '--enable-mbstr-enc-trans' '--enable-mbregex' '--disable-debug' '--disable-rpath' '--enable-zend-multibyte' '--with-zlib-dir=/usr/lib' '--with-gd' '--with-gd-dir=/usr/lib' '--with-jpeg-dir=/usr/lib' '--with-png-dir=/usr/lib' '--with-mysql=/usr/local/mysql' '--enable-mailparse' '--with-freetype-dir=/usr ''--enable-gd-native-ttf'

    ln -s libXpm.so.4 ./libXpm.so

    yum install imlib2
    Repository update is listed more than once in the configuration
    Repository base is listed more than once in the configuration
    Repository addons is listed more than once in the configuration
    Setting up Install Process

    configure: error: xpm.h not found.
    xpm.hのため

    もう泥沼
    =============================================================================
    Package Arch Version Repository Size
    =============================================================================
    Installing:
    xorg-x11-devel i386 6.8.2-1.EL.13.37.7 update 5.1 M
    Installing for dependencies:
    fontconfig-devel i386 2.2.3-7.centos4 base 232 k
    freetype-devel i386 2.1.9-5.el4 update 533 k
    Updating for dependencies:
    freetype i386 2.1.9-5.el4 update 763 k

    Transaction Summary
    =============================================================================


    CFLAGS='-I/usr/kerberos/include -O3 -msse -mmmx -funroll-loops' './configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--enable-sigchild' '--enable-track-vars' '--enable-mbstring' '--enable-mbstr-enc-trans' '--enable-mbregex' '--disable-debug' '--disable-rpath' '--enable-zend-multibyte' '--with-zlib-dir=/usr/lib' '--with-gd' '--with-gd-dir=/usr/lib' '--with-ttf' '--with-jpeg-dir=/usr/lib' '--with-png-dir=/usr/lib' '--with-mysql=/usr/local/mysql' '--enable-mailparse' '--with-freetype-dir=/usr/share/fonts/ja/TrueType' '--enable-gd-native-ttf' '--with-xpm-dir=/usr/X11R6/lib'

    なんとか出たけど文字化け
    TTF問題 はまだ続くようだ、、、

                   

    2007年05月16日

    NKFの導入

    centOS には 案外なかった、YUMもないみたいで、、、
    http://iij.dl.sourceforge.jp/nkf/20770/nkf207.tar.gz

    tar -zxvf ./nkf207.tar.gz
    nkf207
    nkf207/NKF.mod
    nkf207/NKF.mod/Changes
    nkf207/NKF.mod/MANIFEST
    nkf207/NKF.mod/Makefile.PL
    nkf207/NKF.mod/NKF.pm
    nkf207/NKF.mod/NKF.xs
    nkf207/NKF.mod/README
    nkf207/NKF.mod/test.pl
    nkf207/MANIFEST
    nkf207/INSTALL.j
    nkf207/INSTALL
    nkf207/Makefile
    nkf207/config.h
    nkf207/make_test.pl
    nkf207/nkf.1
    nkf207/nkf.1j
    nkf207/nkf.c
    nkf207/nkf.h
    nkf207/nkf.doc
    nkf207/nkf_test.pl
    nkf207/test.pl
    nkf207/utf8tbl.c
    nkf207/utf8tbl.h
    nkf207/nkf.mak
    nkf207/nkf32.c
    nkf207/nkf32dll.c
    nkf207/version.rc
    nkf207/dll.rc
    nkf207/dll.def

    # make
    # make test
    インストールは無いので 手動コピー
    #cp ./nkf /usr/local/bin/
    #nkf --help
    で確認する。

                   

    2007年05月30日

    AMAZON S3で画像保管

    画像の保存

    AMAZON S3は使えるか?
    6月1日より価格改定
    http://www.amazon.com/S3-AWS-home-page-Money/b/ref=sc_fe_l_2/002-4837184-2451245?ie=UTF8amp;&node=16427261&no=3435361

    New Pricing (effective June 1st, 2007)
    Storage
    $0.15 per GB-Month of storage used
    Data Transfer
    $0.10 per GB - all data uploaded
    $0.18 per GB - first 10 TB / month data downloaded
    $0.16 per GB - next 40 TB / month data downloaded
    $0.13 per GB - data downloaded / month over 50 TB

    ちょっと計算してみる
    データ容量
    15KB 一枚(バイトサイトとかで出てた サイズ160*120)
    8000枚くらいで 120,000KB => 117MB
    ぜんぜんかかってないじゃん、、、

    リストビュー
    30件 10万アクセス(VIEW)/1024= 43945MB => 43GB
    =>5$
    70万アクセスすべてでみたとしたら
    301GB => 30$

    ストレージサーバを確保するよりは確かに安いかも、、、
    月1万以下にはなりそう。確かにサーバを確保するよりは安い。
    あとはキャッシュ系を駆使したらもう少し下げられるか。
    たとえばキャッシュ率10%(ちょっとよすぎ?)
     27$ そんなにかわらないかも。


    Data transferred between Amazon S3 and Amazon EC2 is free of charge

    Requests
    $0.01 per 1,000 PUT or LIST requests
    $0.01 per 10,000 GET and all other requests

    加工して
     UPLOAD

     リサイズ
      携帯用 (サムネイル化)
      PC用

    画像はどこで保存されるのか 確認

                   

    2007年06月25日

    activecollabを試す

    37singalsというとこで作っているBaseCampのフリー版と思っている。
    いわゆるプロジェクト管理+コラボレーションソフト。
    必要なソフトとか管理上、必要な項目は入っているみたい。
    そもそもこの手のソフトを利用していなかったのでそこから始めない
    といけないんだけど、、、

    インストールは簡単 ファイルコピーのみ
    ただしLAMP環境が必要。

    ダウンロード
    http://www.activecollab.com/

    日本語ファイル バージョン0.7,1
    http://www.nsworks.com/aC/index_0.7.1.html

    ただし コンフィグはこの時点で設定してはいけない。またconfig/* で
    WEBユーザで書き込めるようにする必要がある。
    書き直しをVIでしてしまい原因が不明のまま解決できず路頭に迷った。

    USBメモリで持ち歩く環境例を提示している。
    GIGAZINE
    http://gigazine.net/index.php?/news/comments/20070228_uniformserver_activecollab_02/
    参考にしました。

    ちょこっとサイト紹介。
    サイト実測測定 何秒とかの測定に。
    http://tools.pingdom.com/fpt/?url=http://ostl.net&treeview=0&column=objectID&order=1&type=0

                   

    2007年07月05日

    MYSQL+SENNA+TRITONN

    MYSQLにフルテキストサーチを入れる時のメモ。

    いるもの
    mecab-0.96.tar.gz senna-1.0.5.tar.gz
    mecab-ipadic-2.7.0-20070610.tar.gz tritonn-1.0.2.mysql-5.0.41.senna-1.0.5.tar.gz

    mecabを展開後インストール

    ライブラリのリンカーが生きてないので
    /etc/ld.so.conf に/usr/local/etc/ が入っていない。
    #echo "/usr/local/lib" >>/etc/ld.so.conf
    #ldconfig
    #cat /etc/ld.so.conf

    include ld.so.conf.d/*.conf
    /usr/ofed/lib64
    /usr/local/lib

    make

    make install
    -----------
    /bin/sh ./mkinstalldirs /usr/lib/mecab/dic/ipadic
    mkdir /usr/lib/mecab
    mkdir /usr/lib/mecab/dic
    mkdir /usr/lib/mecab/dic/ipadic
    /usr/bin/install -c -m 644 ./matrix.bin /usr/lib/mecab/dic/ipadic/matrix.bin
    /usr/bin/install -c -m 644 ./char.bin /usr/lib/mecab/dic/ipadic/char.bin
    /usr/bin/install -c -m 644 ./sys.dic /usr/lib/mecab/dic/ipadic/sys.dic
    /usr/bin/install -c -m 644 ./unk.dic /usr/lib/mecab/dic/ipadic/unk.dic
    /usr/bin/install -c -m 644 ./left-id.def /usr/lib/mecab/dic/ipadic/left-id.def
    /usr/bin/install -c -m 644 ./right-id.def /usr/lib/mecab/dic/ipadic/right-id.def
    /usr/bin/install -c -m 644 ./rewrite.def /usr/lib/mecab/dic/ipadic/rewrite.def
    /usr/bin/install -c -m 644 ./pos-id.def /usr/lib/mecab/dic/ipadic/pos-id.def
    /usr/bin/install -c -m 644 ./dicrc /usr/lib/mecab/dic/ipadic/dicrc
    ----

    tar -zxvf senna-1.0.5.tar.gz
    cd senna-1.0.5
    ./configure --prefix=/usr/local

    make check
    make install
    ldconfig

    cd mysqlに

    mysql を展開 ごちょごちょやります。

    libtoolize -c -f
    ごちゃごちゃ出てきた。
    Using `AC_PROG_RANLIB' is rendered obsolete by `AC_PROG_LIBTOOL'
    libtoolize: `/usr/share/aclocal/libtool.m4' is serial 47, less than 48 in `aclocal.m4'
    To remain compatible, you should update your `aclocal.m4' by running aclocal.
    aclocal-1.9
    autoheader
    automake-1.9 -c -a -i
    autoconf
    touch sql/sql_yacc.yy


    CXX=gcc ./configure --prefix=/usr/local/mysql
    --with-extra-charsets=complex --enable-thread-safe-client
    --enable-local-infile --disable-shared --with-charset=utf8 --with-senna

    ./configure \
    --prefix=/usr/local/mysql \
    --localstatedir=/usr/local/mysql/data \
    --libexecdir=/usr/local/mysql/bin \
    --enable-thread-safe-client \
    --enable-local-infile \
    --enable-assembler \
    --with-pic \
    --with-fast-mutexes \
    --disable-shared \
    --with-zlib-dir=bundled \
    --with-big-tables \
    --with-yassl \
    --with-readline \
    --with-archive-storage-engine \
    --with-blackhole-storage-engine \
    --with-federated-storage-engine \
    --with-innodb \
    --with-extra-charsets=complex \
    --with-charset=utf8 \
    --with-senna --with-mecab

    http://qwik.jp/tritonn/userguide.html

    今日の雑記帳
    今日のサイトメモ
    YOUTUBEよりもはやってるらしい
    http://www.dailymotion.com/

    つっこみいれられるほうが面白いかも
    http://gufufu.nifty.com/index.jsp
    でもNIFTYっていうのはなんでしょうか。はみだしって。

                   

    2007年08月03日

    いまさらながら管理ツール

    SRVREPORT
    http://srvreport.chosting.de/
    ログ関連というよりは、サーバのデータをまとめて表示する。スクリプト(PERL?)設定はCONF
    ファイル。設置は簡単っぽい。
    PostfixReport.pm も対応バージョン7から改善されているっぽい。

    LOGREPORT
    http://www.logreport.org/
    コマンドラインで引数をあたえる形式ベースのよう。
    lr_log2report sendmail > /tmp/report.txt < /var/log/maillog.2.gz

    pflogsumm
    以前使ってた。コマンドライン上で呼んでレポートメール作るときに中間にはさんでメールのサマ
    リーとしていた。テキストベースだがHTMLでも吐ける。結構重宝する。
    でも今回は別に検討したいとこ。パイプ渡しなのでログのローテーション後は固まってしまってい
    るファイルを解いて日付で一時ファイルを作ってそれを解析させるというちょっと面倒なことをして
    いる。postfixのログサマリーの略らしい。

    anteater
    http://anteater.drzoom.ch/
    たしかアリクイの名称だったと思う。
    バージョン改定が進んでいないのと、テキストべた書きが気になってあんまり気が進まなかった。
    ただAPIとかしっかりしているので連携するのにはなかなかいい選択肢になりうると思う。

    メールだけだと
    mailstats google先生に聞くとpostfix+MRTGで結構やっている人がいる。

    mailgraph(200708現在 サイトが見つからない、、、)
    が2大メジャーな気がする。
    以前mailgraphを試したのだけど、RRDツールがいるのと、数値じゃなくて視覚的に捕らえるのな
    ら、CACTIとかでいいかなとだんだん、疎遠(見なく)なってしまった。確かに視覚効果では、度肝
    を抜かれるくらい美しいと思う。っていうかかっこいい!

    AWSTATS
    いまだに読みがわかってないけど、、、(アワッツ?)WEBサーバの解析ではかなり新興で勢力
    が拡大していると思っている。いろいろ(iptablesとか)解析できるけどmaillogも可能。WEBほど
    詳細ではないけど、流量とか、送信ドメインとかにおいて必要な情報はちゃんと出るので、十分
    だと思う。以前導入してたけど、これもだんだん疎遠になるんだよね、、、何でかな。

                   

    2007年08月30日

    チケット管理システム(BTS バグトラッキングシステムともいう)

    チケット管理システム(BTS バグトラッキングシステムともいう)

    たいていの目的はこんなのだろう。

    1,一般ユーザからの問題点を挙げてもらう。

    2,それに対してのステータスを反応がわかるようにする。

    3,ステータスが完了であれば、それがわかるようにし、過去の知識として(ナレッジベース)
    にしておきたい。

    そこでよく使われており、オライリーのなにかの書籍でもでててたけど
    バグを含めたRT(RequestTracker)というのを検討。電話系の(コールセンタなどと併用で
    利用されているそうです。)
    ちなみに日本語化については、有料版が販売されている。

    参考
    http://trombik.mine.nu/~cherry/w/index.php/2006/04/27/615/rt-request-tracker


    ちなみに自分のサイトでは今は、プログラム管理はTRACというのを利用しています。
    結構、バージョン管理システムではメージャーになりつつ(CVS、VSSについで)あるので
    知っている方も多いと思う。それにユーザ管理+WIKI+BTS+WEBの機能をつけたような
    てんこ盛りパッケージ。
    たしかopenpneとかの管理でも見かけた。

    日本語がPYTHONの関係で再インストールが必要で、やってないのです、、、CENTOSの
    標準パッケージではなく、個別に入れる必要がある。

    チケットシステムと連動はしているのですが、プログラマ向けなので、一般ユーザに使い
    やすいかは慣れが(教育?)が必要になる。

    影舞
    急速に(RUBYの成長とともに)でてきてる。今度これを検証してみたいと思う。うーん時間
    がとれるのかな、、、

                   

    2007年09月06日

    Cover FlowをWEBで

    最近はやりのAPPLE風の見せ方で、カバーフローというのがある。IPHONEとかで
    有名になった アルバムがサーっと来るやつだ。

    有料だけどPhotoFlowというのを買うとこういうのができるそうです。

    http://www.flashloaded.com/flashcomponents/photoflow/?id2=8343771

    こんなのが、、ってすごいなぁ。

    作り方。
     背面に背景をもってきたらあとは実際に動かすファイルを前面でXMLで指定したファイル
    を生成するだけ。
     (ポラロイド風の画像展開と同様。京都の旅行記 Poraroid photo Galaleyとほぼ同様)


    参考サイトです
    っていうかすごいなぁ XMLで指定するだけだもんなぁ。

    近い物としてこんなギャラリーもある。
    http://www.dezinerfolio.com/2007/06/07/dfgallery/

    いまのはFLASHだったけど、JAVASCRIPTでの表示。

    これはニュースティッカー風表示
    http://www.scriptaculoussamplr.leonardofaria.net/?id=newsticker
    カールセル表示切替(カールセルって言うんですね 知らなかった、、、)
    http://www.scriptaculoussamplr.leonardofaria.net/?id=slidingcarousel

    フラッシュ勉強で、タイムライン系でないFLASHの作成。よくサイトにて紹介されている。
    あとで本屋で見てみよう。

    fla―Idea of Flash Creation

    .fla―Idea of Flash Creation.fla―Idea of Flash Creation
    鹿倉 公維 セトウ ナオ タナカ ミノル

    エクスメディア 2006-02
    売り上げランキング : 79313
    おすすめ平均

    Amazonで詳しく見る
    by G-Tools

    FLASH OOP なんで横向き?

    FLASH OOP (Advanced Web design books)FLASH OOP (Advanced Web design books)
    Flash OOPJapan 株式会社バスキュール 加藤 達雄

    翔泳社 2004-06-16
    売り上げランキング : 120441
    おすすめ平均

    Amazonで詳しく見る
    by G-Tools

    ゲーム開発のための数学・物理学入門(カバーフローでないけど移動計算をするのに。)

                   

    2007年10月08日

    MYSQL+TRITONN+SENNA

    マルチバインディングに関してバージョンをあげる必要があるようなのでメモ書き

    mysqlのバックアップの取得から

    まずはスタティックで。(下でとれば必要ないか。)
    /etc/rc.d/init.d/mysql stop
    cd /var/lib/mysql
    tar -zcvf ~/mysql-static.back.tar.gz ./

    起動してから
    mysqldump -q DATABASENAME -pPASSWORD > filename.sql

    全部とるならこれで良いかも
    mysqldump --all-databases > all-database.sql

    使用するバージョンとソフト
    mecab-0.96.tar.gz
    mecab-ipadic-2.7.0-20070801.tar.gz
    mysql-5.0.45-tritonn-1.0.6.tar.gz
    senna-1.0.9.tar.gz

    tar -zxvf mecab-0.96.tar.gz
    cd mecab-0.96
    ./configure --with-charset=utf8
    make
    sudo make install

    これだとここに入る
    /usr/local/libexec/mecab

    tar -zxvf mecab-ipadic-2.7.0-20070801.tar.gz
    cd mecab-ipadic-2.7.0-20070801
    ./configure --with-charset=utf8
    make
    sudo make install

    こっちはここに。
    /usr/local/lib/mecab/dic


    tar -zxvf senna-1.0.9.tar.gz
    cd senna-1.0.9
    ./configure
    make

    senna 1.0.9 configuration:
    -----------------------
    Compiler: gcc
    CFLAGS: -g -O2 -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wformat=2 -Wstrict-aliasing=2 -Wdisabled-optimization -Wfloat-equal -Wpointer-arith -Wdeclaration-after-statement -Wbad-function-cast -Wcast-align -Wredundant-decls -I/usr/local/include
    Libraries: -lmecab

    Install path prefix: /usr/local

    Now type 'make' to build senna 1.0.9!

    make install時に
    Libraries have been installed in:
    /usr/local/lib
    パスを通せと言われる。忘れないようにしておこう。

    tar -zxvf mysql-5.0.45-tritonn-1.0.6.tar.gz
    cd mysql-5.0.45-tritonn-1.0.6
    CFLAGS="-O2 -mcpu=pentium4" CXX=gcc CXXFLAGS="-O2 -mcpu=pentium4 -felide-constructors" ./configure --prefix=/usr \
    --with-extra-charsets=complex --enable-thread-safe-client \
    --enable-local-infile --enable-assembler --disable-shared \
    --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static \
    --with-charsets=utf8 --with-mit-threads=no --with-senna --with-mecab;

    こんなのが帰ってくる。
    Thank you for choosing MySQL!
    続けて
    make
    make install

    RPMで管理のほうがよいという場合は先人の知恵を利用させてもらうと良いと思う。
    さすがです。
    http://d.hatena.ne.jp/yoshifumi1975/20070901/p1

    その後の確認に。
    http://www.avant-tokyo.com/linux/mysql5_install.html

                   

    2007年11月01日

    MYSQLDUMP

    MYSQLDUMPでDB移行

    データベースを移行する、現在db1を利用しているがdb2に移行する。

    データベースのダンプ
    crate databaseは発行済みとして、データはインポートさせない。
    (テーブル構造のみ)

    mysqldump -u root -p --databases db1 --no-create-db --no-data >db1.backup.sql
    編集する。
    vi db1.backup.sql

    :%s/db1/db2/g
    で一斉置換。 個人的には同じデータベースにコピーする予定だったので
    念のため DROP TABLESもコメントアウトした。

    導入を行う。
     データベースの作成
    mysqladmin -u root -p create db2
    mysql -u root -p db2 <./db1.sql

    これでテーブルの構造だけ導入される。

                   

    2007年11月04日

    LAMP環境における考えられるリスクに関して

    LAMP環境における考えられるリスクに関して

    大まかに考えると以下の3つに分けられる

    ハード障害
    アプリケーション障害
    ネットワーク障害

    それぞれを考える。

    ハード障害
     ディスク障害
      データの損失を招くのでバックアップによるデータ退避が必要
      近年では、SMARTなどにより監視を実施し、事前に予兆があれば検知可能
      ただしハードディスクに依存するので予備機による回避が適当か

     ファンなどのアクセサリー障害
      CPUであればカーネルパニックなどを引き起こす。再起動になるので、ベースの
    監視システム次第。DBのファイルが問題になる可能性があるので、こちらはレプリケ
    ーションをかけて保護策を検討

     電源装置のトラブル
     電源が落ちてしまうことがある。これによるディスク障害、あがらなくなどが発生する。
    対策としては予備機による保護が適当と思われる。

     アプリケーション障害
     アプリケーションによるトラブルによるもの。バグなどが考えられるが広義で言えば
    侵害なども含まれると思われる。脆弱性をついてという点ではアプリケーションが狙
    われやすいのではないか。
     作業ミスによるもの
     DBのデータ操作ミスなど

    対応策は、予備機による退避と、検証機による退避が妥当

    ネットワーク障害
     ネットワークケーブル、設定によるもの
     OSI物理層におけるトラブルに対応。これはレンタルサーバであれば業者に一任する
    よりないので、予備機を別契約にするなどの対応が必要になるが、最も上記のうちでは
    少ないと思われる。

     DNS障害
     ドメインの設定漏れによるもの。セカンダリの契約を行い、DNS自体の契約がされてい
    れば防げると考えられる。

     ファイヤウォール、負荷分散装置などの障害
     レンタルサーバ環境において、冗長構成をとらないため、障害ポイントにはなりにくいと
    思われる

    よって以下の構成をとるのが、よいと考えられる。

     A,B重複構成でのレンタルサーバの借受
     A 本番機
     B 検証および待機系

    A,B間においてMYSQLのレプリケーションを実施。Bに切り替えるときは、レプリケーションを
    やめる設定をバッチ化をしておく。

     Bにおいて検証環境はDBのすみわけを行っておき、こちらをアプリ側で切り替える
     なおB側でバックアップを取るようにすると、バックアップによる負荷がかかりにくい。
     
    問題点および対応策
     DNSの切り替えがネックになるので、こちらを早期に行えるようにするか、
    HA構成を取れるようにし、フロートIPをA側に付与しておき、問題があった場合にはB側に移せ
    るようにしておく。(仮想IP)
     HAを自動で切り替えられるHeartBeatなどのOSSのソフトがあるが、シリアル通信が
    必要など、物理的にレンタルサーバでは難しいと考えられるので手動に含めるのが妥当。

    切り替え時間はシェルの実行にもよるがスイッチの学習がデフォルトであれば10分程度。
    DNSで30分程度にしておく策も有効であるのでどちらかを検討したい。

                   

    2007年11月08日

    RPM版も作ってみた MYSQL+SENNA+TRITONN

    SENNA含みパッケージを導入するのが異常に面倒になってきたのでパッケージを作ること
    を決意しました。

    rpm -ivh MySQL-community-5.0.45-0.rhel4.src.rpm

    展開を確認
    ls -la /usr/src/redhat/SPECS

    いるいる
    -rw-r--r-- 1 root root 43858 7月 5 07:16 mysql-5.0.45.rhel4.spec


    cd /usr/src/redhat/SOURCES
    で 展開ファイルをbackに葬ります。
    mv ./mysql-5.0.45.tar.gz ./mysql-5.0.45.tar.gz.back

    cp ~/mysql-5.0.45-tritonn-1.0.6.tar.gz ./mysql-5.0.45.tar.gz
    持ってくる。

    そのまま使ってしまおう
    cd ../SPECS/

    こんな感じで編集
    diff mysql-5.0.45.rhel4.spec mysql-5.0.45.rhel4.spec.back

    103c103
    < Summary: MySQL: a very fast and reliable SQL database server with tritonn
    ---
    > Summary: MySQL: a very fast and reliable SQL database server
    308,309d307
    < --with-mecab=/usr \
    < --with-senna=/usr \
    418c416
    < #make test-bt-debug
    ---
    > make test-bt-debug
    438c436
    < #make test-bt
    ---
    > make test-bt

    gtkの描画モジュールが足りないらしい、、、なんで?

    yum install gperf
    Repository update is listed more than once in the configuration
    Repository base is listed more than once in the configuration
    Repository addons is listed more than once in the configuration
    Setting up Install Process
    Setting up repositories
    Reading repository metadata in from local files
    Excluding Packages in global exclude list
    Finished
    Excluding Packages from Dag RPM Repository for Redhat EL4
    Finished
    Excluding Packages from CentOS-4 - Updates
    Finished
    Excluding Packages from CentOS-4 - Base
    Finished
    Excluding Packages from CentOS-4 - Addons
    Finished
    Parsing package install arguments
    Resolving Dependencies
    --> Populating transaction set with selected packages. Please wait.
    ---> Downloading header for gperf to pack into transaction set.
    gperf-3.0.1-4.x86_64.rpm 100% |=========================| 4.6 kB 00:00
    ---> Package gperf.x86_64 0:3.0.1-4 set to be updated
    --> Running transaction check

    Dependencies Resolved

    =============================================================================
    Package Arch Version Repository Size
    =============================================================================
    Installing:
    gperf x86_64 3.0.1-4 base 92 k

    Transaction Summary
    =============================================================================
    Install 1 Package(s)
    Update 0 Package(s)
    Remove 0 Package(s)
    Total download size: 92 k
    Is this ok [y/N]: y
    Downloading Packages:
    (1/1): gperf-3.0.1-4.x86_ 100% |=========================| 92 kB 00:01
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded

    rpmbuild -ba mysql.5.0.45-rhel4.spec

    さすがに長いです。コンパイル時間が、、、いろいろやってみたのですがRHEL4の謹製
    パッケージではうまく埒があきません。っていうかだんだん疲れてきたので
    グーグルに聞いたところ人気のFC7からすることにしました。でも利用するのはSPECファイル
    だけです。

    wget http://www.gtlib.gatech.edu/pub/blag/70000/en/os/i386/SRPMS.TESTING/mysql-5.0.45-1.fc7.src.rpm
    これを展開してSPECファイルを作成した。

    diff ./mysql.spec mysql.toritonn.spec
    12c12,13
    < Source0: http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-%{version}.tar.gz
    ---
    > #Source0: http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-%{version}.tar.gz
    > Source0: mysql-%{version}.tar.gz
    165a167,168
    > --with-mecab \
    > --with-senna \
    192c195
    < make test
    ---
    > # make test

    コンパイルが続いたらやっと完成しました。

    書き込み中: /usr/src/redhat/SRPMS/mysql-5.0.45-1.src.rpm
    書き込み中: /usr/src/redhat/RPMS/x86_64/mysql-5.0.45-1.x86_64.rpm
    書き込み中: /usr/src/redhat/RPMS/x86_64/mysql-libs-5.0.45-1.x86_64.rpm
    書き込み中: /usr/src/redhat/RPMS/x86_64/mysql-server-5.0.45-1.x86_64.rpm
    書き込み中: /usr/src/redhat/RPMS/x86_64/mysql-devel-5.0.45-1.x86_64.rpm
    書き込み中: /usr/src/redhat/RPMS/x86_64/mysql-bench-5.0.45-1.x86_64.rpm
    書き込み中: /usr/src/redhat/RPMS/x86_64/mysql-test-5.0.45-1.x86_64.rpm
    書き込み中: /usr/src/redhat/RPMS/x86_64/mysql-debuginfo-5.0.45-1.x86_64.rpm
    Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.95661
    + umask 022
    + cd /usr/src/redhat/BUILD
    + cd mysql-5.0.45
    + rm -rf /var/tmp/mysql-5.0.45-1-root
    + exit 0

    この方法では作成できるけどインストールはできなかった。作り直しだ。ともかくperl-DBD-MySQL
    でこける。これの依存関係がひっかっかるようなのでこのsrc.rpmからする必要があるらしい。
    続きはWEBで!

    その続き
    パッケージ化をすべてする必要がある。なぜならフライブラリとかを認識してくれない。たぶん
    SPECファイルをきちんと書けばいいのだろうけど、、、(requierのセクションでいろいろ要求か。)

    wget http://fr.rpmfind.net/linux/fedora/core/development/source/SRPMS/mecab-0.95-2.fc7.src.rpm

    rpm -ivh mecab-0.95-2.fc7.src.rpm

    rpmbuild -ba ./mecab.spec

    書き換え
    バージョンを変更して、UTF-8を有効に。
    %define mainver 0.96

    %configure \
    --with-charset=utf8

    ----
    書き込み中: /usr/src/redhat/SRPMS/mecab-0.96-2.2.src.rpm
    書き込み中: /usr/src/redhat/RPMS/x86_64/mecab-0.96-2.2.x86_64.rpm
    書き込み中: /usr/src/redhat/RPMS/x86_64/mecab-devel-0.96-2.2.x86_64.rpm
    書き込み中: /usr/src/redhat/RPMS/x86_64/mecab-debuginfo-0.96-2.2.x86_64.rpm
    ----
    完成!

    wget http://fr.rpmfind.net/linux/fedora/core/development/source/SRPMS/mecab-ipadic-2.7.0.20060707-2.fc7.1.src.rpm

    wget http://fr.rpmfind.net/linux/fedora/core/development/source/SRPMS/mecab-ipadic-2.7.0.20060707-2.fc7.src.rpm

    を書き換え。(diffとってない、、、)

    rpm -ivh mecab-0.96-2.2.src.rpm
    rpm -ivh mecab-0.96-2.2.x86_64.rpm
    rpm -ivh mecab-devel-0.96-2.2.x86_64.rpm
    rpm -ivh mecab-debuginfo-0.96-2.2.x86_64.rpm

    これがないとビルドに失敗するので。
    rpm -ivh ./mecab-ipadic-2.7.0.20060707-2.fc7.1.src.rpm

    ここと
    %define date 20070801

    Source0: %{name}-%{majorver}-%{date}.tar.gz
    Source1: mecab-ipadic.copyright

    ----
    書き込み中: /usr/src/redhat/SRPMS/mecab-ipadic-2.7.0.20070801-2.1.src.rpm
    書き込み中: /usr/src/redhat/RPMS/x86_64/mecab-ipadic-2.7.0.20070801-2.1.x86_64.rpm
    書き込み中: /usr/src/redhat/RPMS/x86_64/mecab-ipadic-EUCJP-2.7.0.20070801-2.1.x86_64.rpm
    ----

    これだけ入れればいい
    rpm -ivh mecab-ipadic-2.7.0.20070801-2.1.x86_64.rpm

    最後にSENNAを導入。
    ~/senna.1.0.9.tar.gz /usr/src/redhat/SOURCE/libsenna-1.0.9.tar.gz

    tar -zxvf libsenna-1.0.9.tar.gz

    mv ./senna-1.0.9 ./libsenna-1.0.9

    tar -zcvf ./libsenna-1.0.9.tar.gz ./libsenna-1.0.9

    SPECファイルをコピーします。
    cp ./libsenna-1.0.9/senna.spec.in ../SPEC/senna.spec

    rm -rf ./libsenna-1.0.9
    cd ../SPEC

    diff ./senna.spec ./senna.spec.in
    1c1
    < %define version 1.0.9
    ---
    > %define version @VERSION@

    rpmbuild -ba senna.spec

    ----
    書き込み中: /usr/src/redhat/SRPMS/libsenna-1.0.9-1.src.rpm
    書き込み中: /usr/src/redhat/RPMS/x86_64/libsenna-1.0.9-1.x86_64.rpm
    書き込み中: /usr/src/redhat/RPMS/x86_64/libsenna-devel-1.0.9-1.x86_64.rpm
    書き込み中: /usr/src/redhat/RPMS/x86_64/libsenna-debuginfo-1.0.9-1.x86_64.rpm
    ----
    完成!

    導入
    rpm -ivh libsenna-1.0.9-1.x86_64.rpm
    rpm -ivh libsenna-devel-1.0.9-1.x86_64.rpm
    rpm -ivh libsenna-debuginfo-1.0.9-1.x86_64.rpm

    再導入
    rpm -ivh perl-DBD-MySQL-4.005-1.rf.x86_64.rpm

    最後に締め
    rpm -ivh mysql-server-5.0.45-1.x86_64.rpm


    入りました!コンパイル時間が長い、、、ともかく導入完了です。
    mysqlを起動後に接続確認を行います。

    SHOW SENNA STATUS でSENNA自身が稼動しているかどうか確認します。

    辞書の追加方法
    http://mecab.sourceforge.net/dic.html

                   

    2007年11月29日

    munin

    muninが手軽。
    クライアント側の導入

    yum install munin-node

    vi /etc/munin/munin.conf

    service munin-node start

    port 4949を利用するのでそこを変更する。

                   

    2008年01月04日

    VMWARE ACE

    VMWARE ACEとは (個人的なメモ書き)

    配布を念頭に置いた、管理パッケージ郡になるという。主な使用例として、
    管理者が、仮想マシンを作成、配布する場合、本仮想マシンを、ポリシーで
    保護することが可能になるという。

    管理者 -> 配布(開発者)

    開発者は、他のディスクにイメージを転用することができないとか、デバイスの
    制限を行うことにより、(WINDOWS側でactivedirectory環境のポリシーでUSB
    ディスク禁止していても、仮想イメージ側のサーバで回避してしまうなど)を回避
    できるようだ。

    また有効期限をさだめて、これを利用してくださいとして、次の開発環境のバー
    ジョンへの更新を促したり、ActiveDirectoryの環境で認証されたユーザでしか
    利用できないなどが適用できるらしい。(ADがメインってのもアメリカらしい気が
    する)

                   

    2008年01月19日

    JAVAで作っていないからあれだけど

    HUDSONとCIに関してメモ書き。

    いまやポピュラーともいえるのはこれらしい。

    subversion でバージョン管理

    TRAC でプロジェクト管理(ちょっと言いすぎか)

    HUDSON (なんだこれは?)

    の構成で開発を進めていくのがJAVAでは便利らしい。
    と言うわけで、上の二つは使っているからいいとして、このHudsonは
    何なのかを確認する。
    今は、JAVAの開発チームと関連していないんで、今の全部メモとして。

    継続的インテグレーションC(Continuous Intergrration : CI)とは

    継続的に結合と、実践を行うのがアジャイル開発のベストプラクティス
    だといわれる。つまり、頻繁に結合して大きな問題が起こる前に、事前
    にわかるようにしておこうということだ。

    これを自動化してくれるのが上記のhudson(執事)になるらしい。

    具体的には
    バージョン管理システムからプログラムを引っ張ってくる
     ANT,MAVENなどを利用して、ビルド
     JUNITなどで 自動テスト
     結果を表示 みんなで共有

    これら一連の作業を一括して行うことができるらしい。(手作業がいらない
    なんて、、、)

    結果は、最近ではポピュラーなWEB表示。

    これで継続した開発が可能となる。すごいなぁ。夜のうちにNithyバージョンを
    ビルド、テスト、エラー要因で、次の日またとりかかれるとなると言うことか

                   

    2008年01月23日

    監視ツールCACTIの導入

    統計管理ツールの一つであるCACTI(カクタイ)を導入する。見える化とか
    言った方がいいのかな。
    そもそもRRDTOOLべた書きで作ればいいじゃんとかそういうパワーがある人は
    これをつかうべきではないと思う。
    ちなみに小規模だったら以前記載したmuninを導入したほうがもっと簡単だと思
    う。中規模以上で、SNMP張っててというところですかね。
    nagiosと連携も良いけど、お互いにないものを持っているので、相互補完には
    なると思う。ちなみに前はシェルとか簡単に引用して持ってこれたけど、0.8あた
    りからかなりSNMPよりになったみたいです。(今回わからなくて苦労しました。)

    NET-SNMPの導入

    おなじみ YUMで導入します。
    サーバはi386の検証機から。

    yum install net-snmp-devel

    関連パッケージも導入された。
    Installed: net-snmp-devel.i386 0:5.1.2-11.el4_6.11.2
    Dependency Installed: beecrypt-devel.i386 0:3.1.0-6 elfutils-devel.i386 0:0.97.1-5 elfutils-libelf-devel.i386 0:0.97.1-5
    Complete!

    yum install net-snmp-utils

    Installed: net-snmp-utils.i386 0:5.1.2-11.el4_6.11.2
    Complete!

    別に分ける必要はないんだけど。

    グラフを書くには必要なのでRRDTOOL
    Installed: rrdtool.i386 0:1.2.23-1.el4.rf
    Dependency Installed: perl-Time-HiRes.i386 0:1.9711-1.el4.rf perl-rrdtool.i386 0:1.2.23-1.el4.rf
    Complete!


    vi /etc/snmp/snmpd.conf
    設定の書き直し


    ささっとDBを作ってしまいます。

    mysqladmin -u root create cacti

    ドキュメントルートにあるcacti.sqlを流し込み
    mysql -u root cacti <./cacti.sql
    導入の確認
    mysql -u root cacti
    mysql> show tables;
    省略
    | user_log |
    | version |
    +---------------------------+
    48 rows in set (0.00 sec)

    入っているのを確認。

    mysql> use mysql
    ユーザ追加(cactiorって微妙なユーザ名だけどそれは割愛)
    GRANT ALL ON cacti.* TO cactior@localhost IDENTIFIED BY 'VXYZVXYZ' ;
    おなじみ
    flush privileges;

    で DB側の設定を変更します。
    cactiドキュメント
     0.8.7a ではdb.phpから(7のときと違うなぁ、、、)
    vi include/config.php
    を書き換えるようです。

    あとはWEBからPHPの動作をするようになっていれば、初期のセッティング画面
    に移行します。

    初回ログインパスは
    ID: admin
    PASS: admin

    Thold っていうのを知らなかったけど、閾値設定が可能になるらしい。
    で、今回待望のplugin-archtectiureを導入。
    プラグインアーキテクチャにより、プラグインツールを導入し、その中で
    上記のようなものを組み入れる形になるとの事。

    プラグインアーキテクチャ自体が、現行のcactiにパッチを宛てるような形に
    なる。

    wget http://cactiusers.org/downloads/cacti-plugin-arch.tar.gz

    展開する。
    tar -zxvf cacti-plugin-arch.tar.gz

    diffのパッチファイルを移動させ、あとはマニュアルにあるように記載
    する。

    patch -p1 -N < cacti-plugin-0.8.7a-PA-v1.4.diff

    出力
    ----
    patching file auth_changepassword.php
    patching file auth_login.php
    patching file data_sources.php
    patching file graph_image.php
    patching file graph.php
    patching file graphs_new.php
    patching file graphs.php
    patching file host.php
    patching file include/auth.php
    patching file include/global_arrays.php
    patching file include/global_form.php
    patching file include/global.php
    patching file include/global_settings.php
    patching file include/plugins.php
    patching file include/top_graph_header.php
    patching file include/top_header.php
    patching file index.php
    patching file lib/api_device.php
    patching file lib/functions.php
    patching file lib/html_form.php
    patching file lib/html.php
    patching file lib/html_tree.php
    patching file lib/poller.php
    patching file lib/rrd.php
    patching file lib/variables.php
    patching file plugins/index.php
    patching file poller.php
    patching file user_admin.php
    patching file utilities.php
    ----

    マニュアルにあるように include/config.php において追加処理を
    行った。

    $config = array();
    $config["url_path"] = '/cacti/';

                   

    2008年02月16日

    cactiによる postfixの監視

    cactiによる postfixの監視
    mailgrpaherっぽく。

    起動スクリプトを設置
    ここからダウンロードしたスクリプトをメールサーバに設置

    そもそもsendmail による mailstatを利用してデータを取得する
    つまり解析結果ファイルを/var/tmp/mailXXXXに関して記載があり
    こちらにファイルが図れることで現在値のデータを取得する。

    http://forums.cacti.net/about1571.html

    ちなみにできるグラフは1つで
    その中でsend,bound,virus,spamが監視できる。

    mailgraph.pl -l /var/log/maillog -d にて動作検証

    参考にさせていただきました。
    discypus

    #!/bin/sh
    # chkconfig: 2345 85 35
    # mailgraph postfix mail statics (for SNMP)
    # description: Watch system status
    # processname: mailgraph
    #

    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    DAEMON=/usr/local/sbin/mailgraph.pl
    NAME=mailstats
    DESC="mailstats"

    # source function library
    . /etc/rc.d/init.d/functions

    lockfile=/var/lock/subsys/yum

    RETVAL=0

    test -f $DAEMON || exit 0

    set -e


    case "$1" in
    start)
    echo -n "Starting $DESC: "
    $DAEMON -d -f /var/log/maillog 2>&1 > /dev/null &
    echo "$NAME."
    ;;
    stop)
    echo -n "Stopping $DESC: "
    killall mailgraph.pl 2>&1 > /dev/null
    echo "$NAME."
    ;;
    #;;
    restart|force-reload)
    #
    # If the "reload" option is implemented, move the "force-reload"
    # option to the "reload" entry above. If not, "force-reload" is
    # just the same as "restart".
    #
    echo -n "Restarting $DESC: "
    killall mailgraph.pl 2>&1 > /dev/null
    sleep 1
    $DAEMON -d -f /var/log/maillog 2>&1 > /dev/null &
    echo "$NAME."
    ;;
    *)
    N=/etc/init.d/$NAME
    # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
    echo "Usage: $N {start|stop|restart|force-reload}" >&2
    exit 1
    ;;
    esac

    exit 0


    SNMPにて
    exec mailcount_sent /bin/cat /var/tmp/mailsent
    exec mailcount_recv /bin/cat /var/tmp/mailrecv
    exec mailcount_reject /bin/cat /var/tmp/mailrejected
    exec mailcount_bounced /bin/cat /var/tmp/mailbounced
    exec mailcount_spam /bin/cat /var/tmp/mailspam
    exec mailcount_virus /bin/cat /var/tmp/mailvirus
    を追記します
    snmpの再起して 
    上の設定がが管理サーバから取得されていることを確認します。

    CACTI管理コンソールWEB画面から
    Import で データをダウンロードします。


    あとはDeviceで
     Associated Graph Templates を追加して、Postfixを追加すれば
     データの取得が開始されます。
     そのあとはCreate Graphでグラフを作成すれば完了です。

                   

    2008年03月16日

    mysqlがミスってしまった場合の対象方法

    mysqlがミスってしまった場合の対象方法

    DB-SERVER-MASTER

    DB-SERVER-SLAVE

    の単純な2者の関係で組んでいるのだが コピー時に変更差分を受け付けてしまった
    おかげでスレーブのスタートに失敗している。
    これではバックアップとかもままならないので、スレーブの復帰を目的とした
    設定を行う。

    MySQLのバージョンは 前回ソースからビルドしたものを利用します。
    5.0.44(つまりバージョン変更はなしって事で、大まかなバージョンが
    一致していれば大方大丈夫のようです。)

    まずは何はともあれ、バックアップ
    mysql> mysqldump --default-character-set=utf8 -u root DBNAME1 >dump0315
    mysql> mysqldump --default-character-set=utf8 -u root DBNAME2 >dump2-0315

    まずは古いバイナリーログはどの道いらなくなるので捨てる。

    チェックする。
    mysql> SHOW BINARY LOGS

    +------------------+------------+
    | Log_name | File_size |
    +------------------+------------+
    | mysql-bin.000012 | 1073742766 |
    | mysql-bin.000013 | 1073741907 |
    | mysql-bin.000014 | 1073742236 |
    +------------------+------------+

    mysql> PURGE MASTER LOGS TO 'mysql-bin.000013';
    これで12まで消える。

    日時以前だとこの方法を利用する。
    mysql> PURGE MASTER LOGS BEFORE '2008-03-01 12:00:00';

    MYSQLを読み専用モードロックを実施
    mysqlコンソール上で
    FLUSH TABLES WITH READ LOCK;

    binlogの位置を確認
    SHOW MASTER STATUS;

    ここで出てくるファイルの位置と、ポジションが後のCHANGE MASTER TO構文で
    利用するので控えて置く。

    tar で固めてスレーブサーバに移動
    tar -cvf /var/tmp/mysql-flashtable.tar /var/lib/mysql/

    テーブルロックの解除
    UNLOCK TABLES;
    テーブルロックはファイルの取得が完了してからで問題ない。
    そのためこの作成はかなり短時間で実行可能だと思う。

    容量がでかいとかかるので要注意
    scp /var/tmp/mysql-flashtable.tar DB-SERVER-SLAVER:/var/tmp/

    CHANGE MASTER TO
    master_host = DB-SERVER-MASTER,
    master_user = replicator,
    master_password = PASSWORD,
    MASTER_LOG_FILE = 'mysql-bin.000013' ,
    MASTER_LOG_POS = 365473474;

    POSとファイルは、READフラッシュを実行した際に取得したポイントを確認。

    参考になりました。
    http://www.irori.org/doc/mysql-rep.html

                   

    2008年04月08日

    個人サーバの推進環境

    今よく日経の全面広告などで、HP製サーバが19800円というのが販売されている
    確かNECも同額でIBMも3万くらいだったような気がする。
    これってすごいなと思うのだけど、

    ただサーバに使うにはちょっと役不足の間も否めないのだけども、普通に個人で
    処理用に使うには十分なのではって思う。

    たとえばこれでスタートして、2台でハードディスクのミラーをDRBDで実装
    なにかにすれば安価に水平展開した企業もスタートアップも激安だ。
    このあたりのシステムが型落ちして、ショップでは12,000円にまでなっていた。
    これはすごい。
    (ちなみに今日の日経のNECの片面広告で新品14800円って)

    管理工数の意味合いをどこにおくかっていうのは重要だけど、個人で電気代、
    騒音さえ気にしなければAPIをもっと簡単に安定して提供できるようになったん
    だなぁと思ったりする。

    構成としては安価な部品類で構成
    512MB
    CPUはAMDのシングルコアのユニット
    HDDも1台でなんてのだけど、 いまや7000円で500GB買えちゃうと思うと5万あれば
    とりあえずのいいシステムになりそう。部門サーバとか。

                   

    2008年08月12日

    ipmi による監視。

    参考になりました。
    http://ken-etsu-tech.blogspot.com/2007/10/openipmi2.html

    vi /etc/cron.d/ipmitool:

    */5 * * * * root /usr/bin/ipmitool sensor >/tmp/ipmisensor-snmp

    これで5分置きに一時ファイルに書かれる。

    こんどは添付ファイル側から、これをファイルにする。

    vi /usr/local/sbin/ipmi-temp-stats

    #!/bin/sh
    PATH=/usr/bin:/bin
    STATS=/tmp/ipmisensor-snmp

    printf "%f\n" `cat $STATS | grep Temp | cut -s -d "|" -f 2`


    vi /usr/local/sbin/ipmi-fan-stats

    #!/bin/sh

    PATH=/usr/bin:/bin
    STATS=/tmp/ipmisensor-snmp

    printf "%f\n" `cat $STATS | grep Fan | cut -s -d "|" -f 2`

    /etc/snmp/snmpd.conf
    に追加する

    exec .1.3.6.1.4.1.2021.1000 ipmitemp /usr/local/sbin/ipmi-temp-stats
    exec .1.3.6.1.4.1.2021.1001 ipmifan /usr/local/sbin/ipmi-fan-stats


    $>snmpwalk -v1 -c public 192.168.0.100 .1.3.6.1.4.1.2021.1000.101.1

    CD-SNMP-MIB::ucdavis.1000.101.1 = STRING: "29.000000"

    $>snmpwalk -v1 -c public 192.168.0.100 .1.3.6.1.4.1.2021.1000.101.2

    UCD-SNMP-MIB::ucdavis.1000.101.2 = STRING: "39.000000"

    snmpwalk -v1 -c bsocomm 192.168.10.101 .1.3.6.1.4.1.2021.1001
    を同様にたたくと結果が帰ってくるので

    UCD-SNMP-MIB::ucdavis.1001.101.1 = STRING: "10200.000000"
    UCD-SNMP-MIB::ucdavis.1001.101.2 = STRING: "8400.000000"
    UCD-SNMP-MIB::ucdavis.1001.101.3 = STRING: "8250.000000"
    UCD-SNMP-MIB::ucdavis.1001.101.4 = STRING: "6600.000000"
    UCD-SNMP-MIB::ucdavis.1001.101.5 = STRING: "6900.000000"

    これでファンの回転数が取れるようになった。
    あとはCACTI側のグラフ操作になる。

    ipmitoolで取れるメッセージの確認はここで行う。
    ipmitool sel list

                   

    2008年08月24日

    PHP-with Oracle mysql by PDO

    突如、oracle,mysql双方につなぐPHPを作って欲しいといわれる。納期も厳しい、、、

    とりあえず環境から
    IBM Xseries 306m いつもの

    とりあえず既存環境は使えないので、改めPHPを再導入をすることになる。

    なので CentOS 4.6(final) X86-64

    php-5.2.5
    Oracle -> グラフィカルの導入はいまさら無理なのでInstantClientによる導入
    -> X86-64 10G R2版
    http://www.oracle.com/technology/global/jp/tech/oci/instantclient/instantclient.html

    mysql X86-64 5.0.67
    -> これのために入れなおし。

    ちなみに今回はコンパイルの過剰最適化は時間の関係で行わず。 
    ---
    オラクルインスタントクライアントとは
     オラクルが配布しているバイナリー版パッケージという認識
      メリット GUIがいらない ファイルを置くだけ
      デメリット サーバは無理
    ---

    必要なパッケージを導入(暗号化ライブラリーでパスワードの複合化処理等を
    行っているため変換するのにいるようだ。)

    yum install libmcrypt
    yum install libmcrypt-devel
    yum install libmhash
    yum install libxslt-devel

    ここからいきなりやったけど失敗するので確認しながら行う。

    まずはノーマルでPDOを含まずconfigure

    ./configure --with-apxs2=/usr/local/apache2/bin/apxs --includedir=/usr/include --libdir=/usr/lib64 --enable-zend-multibyte --enable-mbstring --enable-ftp --enable-mbregex --with-gd=shared --with-jpeg-dir --with-png-dir --with-zlib-dir --with-ttf --enable-gd-jis-conv --with-xsl --without-mysql --enable-soap --with-curl --with-mcrypt=/usr/local/lib --with-mhash=/usr/local/lib --with-iconv

    OK

    オラクルをテスト

    ./configure --with-apxs2=/usr/local/apache2/bin/apxs --includedir=/usr/include --libdir=/usr/lib64 --enable-zend-multibyte --enable-mbstring --enable-ftp --enable-mbregex --with-gd=shared --with-jpeg-dir --with-png-dir --with-zlib-dir --with-ttf --enable-gd-jis-conv --with-xsl --without-mysql --enable-soap --with-curl --with-mcrypt=/usr/local/lib --with-mhash=/usr/local/lib --with-iconv --with-oci8=instantclient,/usr/local/instantclient_10_2

    OK

    PDOを有効化

    ./configure --with-apxs2=/usr/local/apache2/bin/apxs --includedir=/usr/include --libdir=/usr/lib64 --enable-zend-multibyte --enable-mbstring --enable-ftp --enable-mbregex --with-gd=shared --with-jpeg-dir --with-png-dir --with-zlib-dir --with-ttf --enable-gd-jis-conv --with-xsl --without-mysql --enable-soap --with-curl --with-mcrypt=/usr/local/lib --with-mhash=/usr/local/lib --with-iconv --with-oci8=instantclient,/usr/local/instantclient_10_2 --enable-pdo

    失敗した。


    明示的にオラクルのバージョンを指定する必要がある
     さもないと
     configure でエラーがでる
      configure: error: Unsupported Oracle version!

    ./configure --with-apxs2=/usr/local/apache2/bin/apxs --includedir=/usr/include --libdir=/usr/lib64 --enable-zend-multibyte --enable-mbstring --enable-ftp --enable-mbregex --with-gd=shared --with-jpeg-dir --with-png-dir --with-zlib-dir --with-ttf --enable-gd-jis-conv --with-xsl --without-mysql --enable-soap --with-curl --with-mcrypt=/usr/local/lib --with-mhash=/usr/local/lib --with-iconv --enable-pdo --with-pdo-oci=instantclient,/usr/local/instantclient_10_2,10.2.0.3


    後は同時につかうmysqlの含み

    ./configure --with-apxs2=/usr/local/apache2/bin/apxs --includedir=/usr/include --libdir=/usr/lib64 --enable-zend-multibyte --enable-mbstring --enable-ftp --enable-mbregex --with-gd=shared --with-jpeg-dir --with-png-dir --with-zlib-dir --with-ttf --enable-gd-jis-conv --with-xsl --without-mysql --enable-soap --with-curl --with-mcrypt=/usr/local/lib --with-mhash=/usr/local/lib --with-iconv --enable-pdo --with-pdo-oci=instantclient,/usr/local/instantclient_10_2,10.2.0.3 --with-pdo-mysql=shared

    失敗したので、パスを指定する。

    ./configure --with-apxs2=/usr/local/apache2/bin/apxs --includedir=/usr/include --libdir=/usr/lib64 --enable-zend-multibyte --enable-mbstring --enable-ftp --enable-mbregex --with-gd=shared --with-jpeg-dir --with-png-dir --with-zlib-dir --with-ttf --enable-gd-jis-conv --with-xsl --with-oci8=instantclient,/usr/local/instantclient_10_2 --with-pdo-oci=/usr/local/instantclient_10_2 --without-mysql --enable-soap --with-curl --with-mcrypt=/usr/local/lib --with-mhash=/usr/local/lib --with-iconv --with-pdo-mysql=/usr

    ----
    これは不要っぽい
    export LDFLAGS="-L/usr/lib/mysql"
    ----

    最終版
    ./configure --with-apxs2=/usr/local/apache2/bin/apxs --includedir=/usr/include --libdir=/usr/lib64 --enable-zend-multibyte --enable-mbstring --enable-ftp --enable-mbregex --with-gd=shared --with-jpeg-dir --with-png-dir --with-zlib-dir --with-ttf --enable-gd-jis-conv --with-xsl --without-mysql --enable-soap --with-curl --with-mcrypt=/usr/local/lib --with-mhash=/usr/local/lib --with-iconv --enable-pdo --with-pdo-oci=instantclient,/usr/local/instantclient_10_2,10.2.0.3 --with-pdo-mysql=/usr

    コンパイル開始
    make

    make test

    テスト成績はこんな感じ

    Number of tests : 4666 3603
    Tests skipped : 1063 ( 22.8%) --------
    Tests warned : 3 ( 0.1%) ( 0.1%)
    Tests failed : 5 ( 0.1%) ( 0.1%)
    Tests passed : 3595 ( 77.0%) ( 99.8%)
    ---------------------------------------------------------------------
    Time taken : 512 seconds
    =====================================================================

    make install
    完了

    参考にさせていただきました。
    http://d.hatena.ne.jp/studio-m/20070628/1183035681

                   

    2008年09月27日

    監視システムの運用

    CACTIを使っていると以前記載したが、細かい監視にはどうも手の届かない部分が
    あり、NAGIOSに依存することにした。
    以前いろいろ使ってZABIXXとか試してみたのだけど、しっくりこないので変更

    CACTIとの位置づけはこんな感じになる。

    グラフで長期的に追うようなもの。
    統計監視、データ推移など。

    NAGIOS
    いまだめのものを検知する。
    とりあえず、実装が比較的面倒だけど、CFGファイルはわかりやすい。

    ほんとはZABIXXですべてが解決するはずだったんですが、、、

    nagios 3.0.3

    ユーザの作成

    # su -
    # useradd nagios
    # passwd nagios

    # groupadd nagiosc
    # usermod -G nagiosc nagios
    # usermod -G nagiosc wwwuser(apacheのユーザ)

    ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-command-user=wwwadmin --with-command-group=nagiosc --with-httpd-conf=/usr/local/apache2/conf

    make

    ----
    こんなのがでるはず
    *** Support Notes *******************************************

    If you have questions about configuring or running Nagios,
    please make sure that you:

    - Look at the sample config files
    - Read the HTML documentation
    - Read the FAQs online at http://www.nagios.org/faqs

    before you post a question to one of the mailing lists.
    Also make sure to include pertinent information that could
    help others help you. This might include:

    - What version of Nagios you are using
    - What version of the plugins you are using
    - Relevant snippets from your config files
    - Relevant error messages from the Nagios log file

    For more information on obtaining support for Nagios, visit:

    http://www.nagios.org/support/

    *************************************************************

    Enjoy.
    ----

    そのあと手順に従うと

    make install
    make install-init
    make install-config
    make install-commandmode

    ここで連絡先アドレスを自分ものに変えておく。

    vi /usr/local/nagios/etc/objects/contacts.cfg

    WEBインターフェイスを追加処理
    make install-webconf
    パスワードを設定
    htpasswd -c /usr/local/nagios/etc/htpasswd.users ngadmin

    ここでのユーザ名は上記コンタクトファイルとあわせる必要があるはず。

    httpdを再起。
    ここからプラグインの導入に入る。

    ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-mysql=/usr/local/mysql

    mysqlのチェックをしたいのでプラグインのコンパイルに追加。

    make

    make install

    プレフライトチェック(今は呼ばないようだ。)
    /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

    ----
    Total Warnings: 0
    Total Errors: 0

    Things look okay - No serious problems were detected during the pre-flight check

    ----

    こんなのがでれば間違いない。
    起動
    service nagios start

    今日はここまで。

                   

    2009年04月14日

    MYSQL-TRITON

    バグで落ちることがあって、その時にデータが飛んでしまう問題点があったので。
    TRITON をバージョンアップ、便利な時代になったものでこれはすごい。

    RPMで全部行けてしまう。 すごいな。

    パッケージは以下。

    MySQL-client-5.0.67-tritonn.1.0.12.x86_64.rpm
    MySQL-devel-5.0.67-tritonn.1.0.12.x86_64.rpm
    MySQL-server-5.0.67-tritonn.1.0.12.x86_64.rpm
    MySQL-shared-5.0.67-tritonn.1.0.12.x86_64.rpm
    mecab-0.97-tritonn.1.0.12.x86_64.rpm
    mecab-ipadic-2.7.0.20070801-tritonn.1.0.12.x86_64.rpm
    senna-1.1.4-tritonn.1.0.12.x86_64.rpm

    でバージョンアップ、事前にバックアップ

    前バージョンを削除(自作パッケージを削除かぁ ちょっと感慨深い。)
    rpm -e mysql-devel-5.0.45-1 mysql-server-5.0.45-1 mysql-5.0.45-1 mysql-libs-5.0.45-1 perl-DBD-MySQL-4.005-1.rf

    もう少し
    rpm -e mecab-devel-0.96-2.2.x86_64

    さらにsennaも。
    rpm -e libsenna-devel-1.0.9-1 libsenna-1.0.9-1 libsenna-debuginfo-1.0.9-1

    これでアップグレード開始できる。

    rpm -Uvh senna-1.1.4-tritonn.1.0.12.x86_64.rpm
    Preparing... ########################################### [100%]
    1:senna ########################################### [100%]

    rpm -Uvh ./mecab-0.97-tritonn.1.0.12.x86_64.rpm
    Preparing... ########################################### [100%]
    1:mecab ########################################### [100%]

    rpm -Uvh ./MySQL-*
    Preparing... ########################################### [100%]
    1:MySQL-shared ########################################### [ 25%]
    2:MySQL-client ########################################### [ 50%]
    3:MySQL-devel ########################################### [ 75%]
    4:MySQL-server ########################################### [100%]

    自動ではじまる。

    PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
    To do so, start the server, then issue the following commands:
    /usr/bin/mysqladmin -u root password 'new-password'
    /usr/bin/mysqladmin -u root -h inetsrv23d.04510.jp password 'new-password'

    Alternatively you can run:
    /usr/bin/mysql_secure_installation

    which will also give you the option of removing the test
    databases and anonymous user created by default. This is
    strongly recommended for production servers.

    See the manual for more instructions.

    Please report any problems with the /usr/bin/mysqlbug script!

    The latest information about MySQL is available on the web at
    http://www.mysql.com
    Support MySQL by buying support/licenses at http://shop.mysql.com
    Starting MySQL.[ OK ]
    Thank you for installing the MySQL Community Server! For Production
    systems, we recommend MySQL Enterprise, which contains enterprise-ready
    software, intelligent advisory services, and full production support with
    scheduled service packs and more. Visit www.mysql.com/enterprise for more
    information.

    いちお念のため、マイナーアップグレードとはいえ問題があるといやなので。
    チェックをする。

    myisamchk -r *.MYI を実行した。

    以上。簡単すぎる。。。。 なんだったんだあの苦労は、、、

                   

    2009年05月08日

    REDMINEの導入

    REDMINEの導入
    $yum install ruby ruby-devel ruby-irb ruby-rdoc ruby-ri

    URL http://rubyforge.org/frs/?group_id=126 ここから最新を落とす。

    $wget http://rubyforge.org/frs/download.php/56227/rubygems-1.3.3.tgz

    $tar -zxvf rubygems-1.3.3.tgz

    $cd rubygems-1.3.3

    $ruby setup.rb

    $gem --version
    1.3.3

    gem install rails

    こんな 表示が出る。
    Successfully installed rake-0.8.5
    Successfully installed activesupport-2.3.2
    Successfully installed activerecord-2.3.2
    Successfully installed actionpack-2.3.2
    Successfully installed actionmailer-2.3.2
    Successfully installed activeresource-2.3.2
    Successfully installed rails-2.3.2
    7 gems installed
    Installing ri documentation for rake-0.8.5...

    Invalid output formatter

    For help on options, try 'rdoc --help'


    $rails --version
    Rails 2.3.2

    ここまで特に問題なしできた。

    データベースの選択
    yum install mysql mysql-server mysql-devel

    mysqlの設定をちょこちょこいじる。

    $gem install mysql -- --with-mysql-lib=/usr/lib/mysql


    CREATE DATABASE redmine default character set utf8;
    GRANT ALL PRIVILEGES ON redmine.* TO redminer IDENTIFIED BY 'PASSWORD' ;

    http://rubyforge.org/frs/?group_id=1850

    ついにredmineの導入

    wget http://rubyforge.org/frs/download.php/54503/redmine-0.8.3.tar.gz

    今日はここまで

                   

    2009年10月24日

    MYSQL-NDB-CLUSTER

    mysql-cluster に関して

    ちょっと古いけどサーバを構築できることになったの夢の構成を組んでみる。これで、諸兄の
    憧れインメモリーデータベースがつくれることまちがいない。

    おさらい
    mysql-cluster またの名を NDB cluster(Networks DataBaseらしい)cluster

    導入バージョン
    mysql-5.1.34 ndb-6.3.25
    RPMベース

    選定事由
     mysql-clusterはシェアードナッシング型(つかわないをかっこよくいった言い方だな)のデータ
     ベースで共有ディスクを利用しない -> 高価な共有ディスク装置(netapp とか EMCとか)は不
    要になる。

    ハードウェア
    IBM Xseries 3550 7978-M1J を3台)+21J?だったか一台だけ別物。
     (トータルで120万位)
    メモリは純正でなく、Trancend TS512MFB72V6T-T 4GBを20万位で。
        このメモリ、最近すごく変動する。買った時は1万4000円だった。
      HDD 160GB RAID-1構成

    OS
    CentOS 5.3 X86-64(64bit化は、DBなので必須とした。)
    このへんの導入は、チームでお願いしてしまったので、普通に。

    構成
     ちょっと特殊なのだが 4台構成 Data*2node SQLnode は今のところ2台
     内訳
      DataNode X
    DataNode Y
    MgmNode Z + SQLNode
    MgmNode W + SQLNode
     ちなみにWだけあとから追加したのでちょっとCPUがワンランクダウンしてる。
    このあたりは、その構築先の基準によるし、自己責任がとれるならこれで
       いいと思ったので。
     オラクルだと、、、、いくらかは。。。

     SQLNodeはこれから拡張可能
      これは暫定での利用で、SQLnodeの冗長化が弱い。ここで、SQLNode(API)であることから
      このような接続が可能になる。

      WEBServer -- DataNode の直結を行い WEB自体にmysql自体を持たせることができ、この
    ネットワーク間においては高速なAPIノードが利用できることになる。
     これによりMysqlのIP一つにbindする問題点の対処が可能になる。(SPOFの排除)

    メモリ方針
    詰めるだけ積む ->正確には、サイズ計測用のPerlスクリプトがあるので、ndb_size.plで計算する。
              perlのDBIパッケージがいる。
           メモリは使う用があったのと、1枚あたり4GBで、1.5万なので、10万とサーバと大差がなく
           なって来ているので最大まで積んでいる。

    DataNode -> 32GB
    MGMNode(mysql(API)) -> 10GBくらいあれば適正 キャッシュなどによる。

    構成の事由
     ともかく 吹っ飛んだら同等の構成を追加することでカバーする。(お金を抑えるために保守もしぼる)
     そのため、冗長構成にする。ただし、冗長時の耐縮運転などは考慮しないため、障害時に対して
     は、重複障害への対応はバックアップからのリカバリーを基本とした。

    ポイント
    以外に知られていないが、インメモリーデータベースでも、ファイル書き込みをなくした完全版の
    メモリデータベースシステムを構築することが可能だ。ただ実用面でいけるかというとそうでもない。
    なので、重要なのはディスク性能になる。しかも高速かつ大きめ。というのもチェックポイントとして
    書き出しを実行するので、意外にも足を引っ張る。とはいえ、いまどきのディスクであれば足りないっ
    てことはないだろう。バックアップにも使うので、多い方がいいだろう。

    250GBくらいが適正かと思う。 160GBで結構きちきちで運用してる。

    導入は、いろんなところで紹介しているし、RPMだから割愛します。


    マネージメントノードでの設定と構成

    まず、マネージメントノードを複数台して運用しているところがほとんど見当たらない。
    (事例少ないのか?)推奨しているのに。ただ、そもそも常時用意する必要はない。
    マネージメントノードはワンランク落としてもいいと思う。

    導入するテーブル数は60を4データベース、カラム平均30以下ぐらいだ。

    よくよんでおこう これ意訳すぎるけど、これが基本になる
    http://dev.mysql.com/doc/refman/5.1/ja/mysql-cluster-ndbd-definition.html

    vi /var/lib/mysql-cluster/config.ini
    ----
    [NDBD DEFAULT]
    NoOfReplicas=2 # データノード数が2つで冗長化
    DataMemory=18GB # データベースの容量 これを超えると吹っ飛ぶらしい
    IndexMemory=3GB # おなじくインデックスのサイズ

    # 稼働用チューニング
    SharedGlobalMemory=512M #共有メモリ数
    NoOfFragmentLogFiles=8 # Redoの設定数 3以上を推奨し、これ+1の分がローテーションする。
    FragmentLogFileSize=64M # REDO LOGfile size
    RedoBuffer=64M #Default 8M FragmentLogFileSize*(NoOfFragmentLogFiles+1)*4セットがメモリで利用される
    #DiskPageBufferMemory=512M # ファイルベースDBのとき、つかう
    #TimeBetweenEpochsTimeout=20000 # default 2000 MAX 32000ms
    #TimeBetweenLocalCheckpoints=25 # Default 20
    TransactionDeadlockDetectionTimeout=8000 #デフォルト 1000ミリ秒 遅延検知を遅らせて障害判定を下げる。
    LockPagesInMainMemory=1 #No swap これはまる。 実メモリより取ってしまっている場合、これが要因で
                # スタートしない可能性がある defualt=0(メモリをロックしない)
                # データメモリに使う容量を確保する。
    #MemReportFrequency=5 #ログとかで、使うときに
    # テーブルチューニング系
    MaxNoOfTables=2048 # 導入テーブル数に応じて
    MaxNoOfOrderedIndexes=1024 #導入インデックス数に応じて
    MaxNoOfAttributes=15000 # たぶん利用するカラム数 200バイト利用するらしい。
    MaxNoOfConcurrentOperations=100000 #
    MaxNoOfLocalOperations=220000 # MaxNoOfConcurrentOperations*1.1
    MaxNoOfConcurrentTransactions=40960 #IMPORT時の処理で増加させた もっと少なくてもいいと思う

    # LCP GCP関連
    TimeBetweenLocalCheckpoints=23 #これとREDOが少ないとデータの回り込みの問題が発生し投入できないことがある。
    #この数値乗数なので、ちょっと変えるだけで増える 23->24 で64MBになる
    # 計算式 (4 × 2^TimeBetweenLocalCheckpoints) この場合 32MB
    # LCPへの書き込み量の調整になるのであまり大きすぎてもいけない。
                    # Redo3回より上記が少なくなるように調整するのが望ましいらしい。
    #TimeBetweenGlobalCheckpoints=20000 #あまりデフォルトから変える必要はないらしい
    TimeBetweenEpochs=1000 #MicroGCPの設定値 この時間は、LCPは書き込みするかどうか保有する。
    DiskCheckpointSpeed = 20M #LCP時のディスク転送速度 SSDとかならもっと早くできるのかも
    CompressedLCP=1 #LCPの肥大化に備えて圧縮する ver6.3以降で可能

    ServerPort = 63132 #DBnodeポートへの接続ポートを固定する場合
    Datadir=/var/lib/mysql-cluster # Directory for MGM node log files

    [TCP DEFAULT]
    PortNumber=2202 #マネージメントノードの接続を固定にする場合
    SendBufferMemory=2M #データ転送量の設定
    #ReceiveBufferMemory=2M

    [NDB_MGMD]
    Id=1
    hostname=XXX.XXX.XXX.XXZ
    PortNumber = 1186
    [NDB_MGMD]
    Id=2
    hostname=XXX.XXX.XXX.XXW
    PortNumber = 1186
    [NDBD]
    Id=4
    hostname=XXX.XXX.XXX.XXX # Hostname or IP address
    BackupDataDir=/home/mysql/backup
    [NDBD]
    Id=5
    hostname=XXX.XXX.XXX.XXY # Hostname or IP address
    BackupDataDir=/home/mysql/backup
    #以下ノード数に応じて追加・削減を実施する。
    [MYSQLD]
    Id=5
    HostName=XXX.XXX.XXX.XXZ
    #ここまでをSQLノードを繰り返して記載

    個人的な感想
    ベーシックなところは、チームにいれてもらって、設定の確認とかをメインで今回したけど
    やっぱり、ある程度調べておかないと厳しいものだと思った。
    特に、お願いしているから、日中は触れなくて夜中に作業して、またもどしてなんてやって
    たので、泣きそうだった。

    -----

    データノードのmy.cnf
    力尽きたため 次のエントリーへ期待。

                   

    NDB-CLUSTER障害試験

    障害試験というか確認

    > ndb_mgm
    <ノード番号> stop

    停止

    起動し開始する

    <ノード番号> start

    この状態で頑張っている

    <ノード番号> status

    > mysql Last completed phase 4
    これはDataのフィックスをしている状態(recovery中)
    ステージはみたところ6つまであるみたいで、4のステージはデータのリカバリーなどを
    行っていた。

    tail /var/lib/mysql-cluster/ndb__out.log

    RESTORE table: 256 82336 rows applied
    こんな感じでテーブルをリストアしてる。

    これがでて起動
    switchover complete bucket 0 state: 1starting

    ndb_mgmでも表示がでてくるので確認できる。

    ちなみに以前のエントリに記載した4台構成なので、どのノードを落としても、シングルで運用され
    その間のフェイルオーバは1秒以内に実施されているようだった。特に検知できなかった。

                   

    2010年01月13日

    IMAP PROXY SERVER (PERDITION)

    perdition(破壊)に関して
    いままで知らなかったけれど、perditionというゲートウェイソフトがあり、用があって使う。

    要件
    ActiveMail 6 -> IMAPサーバに接続する。
    Aサーバ(WEBサーバ)   Bサーバ

    この場合において以下の問題点があり、接続することができない。
    IMAP Server側、クリアテキスト認証を許可できないためデータを取得できないという問題点があった。

    ここで以下の要件を満たすサーバの接続を利用するためにゲートウェイを利用して接続する。

    続きを読む "IMAP PROXY SERVER (PERDITION)" »

                   

    2010年04月14日

    自前メーリングリストサーバ PHPLISTの導入

    PHPlists

    導入事例はあるのだけど、実際のカスタマイズとかってそんなにないのかなと
    気付いたことをかいてみる。

    コピーと展開なのでそんなに難しくないと考えられるので。

    続きを読む "自前メーリングリストサーバ PHPLISTの導入" »

                   

    2010年04月15日

    HelpCneterLive!

    Help center live!

    ライブチャットをメインとするヘルプデスクツールを提供。ヘルプデスクツールとは、単純にチャッ
    トシステムを提供する機能。
    顧客とのチャット記録を履歴として取ったりできる。を行い、製品の説明をしたりするのができ
    るだろう。
    ちなみに最近はやりの、チャット後のアンケートにお答え下さいはないので、モジュールか、
    何かで組み込む必要がある。

    必要システムは MYSQL4 以上 とPHP5系で動作確認した。

    unzip hcl-2.1.7.zip

    http://URL/hcl/setup/

    日本語構成ファイルを置いておきます。超訳なので、意味がつながってなかったりちょっと
    おかしかったりしますので、参考程度で。
    参考ファイルをダウンロード

    続きを読む "HelpCneterLive!" »

                   

    2010年04月17日

    WEBアンケートモジュール phpESPの導入

    PHPESP

    アンケート取りたい! しかもWEBでやる。で、Limesurveyを実装してみたけど
    レンタルサーバに載せてる関係で、mysqlが4はだめ。なので。。。

    phpESPはmysql4でもいけます。 なので。
    ちなみにadoが使えるのならmysql以外もいけるらしいです。


    続きを読む "WEBアンケートモジュール phpESPの導入" »

                   

    2010年04月20日

    Mysql5.5系がきた。

    ついに Mysql5.5系がくるらしい。

    ということは、あれも来るじゃないですか。

    続きを読む "Mysql5.5系がきた。" »

                   

    2010年11月18日

    Mysql-clusterをバージョンアップ

    バージョン情報

    変更元
    mysql-5.1.34 ndb-6.3.25

    変更後
    mysql-5.1.47 ndb-7.1.8

    変更点
    プロダクツが上がる。
    (どちらかと言えばmysql-cluster-7.0の機能として)
    データノードのマルチスレッド化
    統計データのDB化 ちょっとだけオラクルっぽくなる NDBINFOデータベースの利用
    スナップショットができるようになる。
    mysql cluster manager が利用できるようになる(有料版)
    ディスクアクセスの多重化 (多分使わない)
    オンラインデータノード追加(多分使わない)
    大量データ処理の向上
    DistribuionAwareness(分散認識)の機能追加(パーティションプーリング)

    おさらいから
    構成
    データノード 2台
    マネージメントノード兼SQLノード 2台

    現状
    バージョン
    MySQL-Cluster-gpl-client-6.3.25-0.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-debuginfo-6.3.25-0.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-devel-6.3.25-0.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-embedded-6.3.25-0.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-extra-6.3.25-0.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-management-6.3.25-0.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-server-6.3.25-0.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-shared-6.3.25-0.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-storage-6.3.25-0.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-test-6.3.25-0.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-tools-6.3.25-0.rhel5.x86_64.rpm

    ----
    これにアップグレードする。

    MySQL-Cluster-gpl-client-7.1.8-1.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-clusterj-7.1.8-1.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-devel-7.1.8-1.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-management-7.1.8-1.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-server-7.1.8-1.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-shared-7.1.8-1.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-storage-7.1.8-1.rhel5.x86_64.rpm
    MySQL-Cluster-gpl-tools-7.1.8-1.rhel5.x86_64.rpm


    処理概要
    アップグレードタスクによれば、バージョンを超えてしまうが、できなくはない。ただし
    新機能の一部が見えなかったりしたので、アップグレードのち初期化を実施して、再デー
    タの投入を行うようにする。

    今回の作業の目的
     NDBINFOなどの監視ツール強化にともなう設置 および監視
     バグFIX
    NDBMTDによる高速化
     SQLノードの追加措置による、サーバ停止の回避を上げる。

    導入方法

    続きを読む "Mysql-clusterをバージョンアップ" »

                   

    2010年12月20日

    H3Cの設定をしたのでメモ

    そもそも
    Huawai + 3Com で、H3C 今やさらに合併でつながりまくっているそう。
    元々はciscoのファームそのままだったらしいけど、やっぱり問題あるとかで
    コマンドも少々変わったそう。 メモ代わりに。

    S5100-SI という機種
     この機種は、L3は不可。
     リンクアグリケーション、VLAN系はほとんどいけるみたいなので設定したい。

    続きを読む "H3Cの設定をしたのでメモ" »

                   

    2011年01月19日

    xtradbbackup に関して(未解決)

    innodb バックアップをとる際に検討した。

    GPLベース。
    mysql perfomance blogで有名な著者の務める勤務先の製品でまだ検証して
    ないけど信頼性たかそう。

    ○無償でinnodb のホットバックアップが取れる。
    ○導入もRPMベース

    コマンドは以下
    現時点では未解決。

    続きを読む "xtradbbackup に関して(未解決)" »

                   

    2011年01月21日

    VMware ESXi 4.1U1 メモ

    VM関連: VMware ESXi 4.1U1

    ○SSHでのログイン
     V4 から変更されており、旧来のunsupported にてログインしinetdを
     変更する必要がなくなった。

     管理コンソールより変更しTechSupportにて変更すればよい

    ○VMのバックアップ方法
     SSHを許可後、スナップショットをとりコピーする。

    SCPなどはできないので、
      1、パイプを有効につかって転送。
      2、NFS領域にコピー
      3、USBなどの外部デバイスの利用

     このぐらいか。

    続きを読む " VMware ESXi 4.1U1 メモ" »

                   

    2011年02月04日

    XenServerのネットワーク速度

    XENServerネットワークの認識について

    どうやってもオートネゴシエーションで 100Mbps になり速度が出なくて困っていた。
    スイッチ側でも設定変更しても、合わないなと思っていたら、XEN側で制御できるようだ。

    xenのコンソールからログインし変更可能
    ethtool -s eth1 autoneg on

    で設定可能
    なので、  speed 100 duplex fullとかも指定できる。

    念のため再起しても問題ないように確認する。

                   

    2011年04月27日

    EBSタイプ AMIの作成方法 (途中まで)

    目的
    EBSタイプのサーバを、AMIイメージにして複製する。複数作ってロードバランスなど。
    活用は色々ありそうなので記載しておく。

    EBSタイプ AMIの作成方法

    手順
    コマンドラインで
     バンドルイメージコマンドで、作成
     バンドルイメージは分割されるので、再統合処理

    AWS上で
     展開するEBSブロックを作成

    サーバで
     EBSをアタッチ
     アタッチしたEBSに対してデータの流し込みをする。

     展開したディスクからスナップショットを作成

    スナップショットから起動する。

    続きを読む "EBSタイプ AMIの作成方法 (途中まで)" »

                   

    2011年05月10日

    amazon LINUX AMI でNginx + Fcgi を試す。(未完)

    amazon LINUX AMI でNginx + Fcgi を試す。

    そもそも認識していなかったのだが、spawn-fcgiは不要。php5.3.3以降は、fpmというモジュール
    が実装されているため、こちらをコンパイルすればオッケーとのこと。

    なので構成としては
    ---- nginx ---- php-fpm
    となる。

    amazon AMI,nginx 1.0.0 ,php 5.3.6で実施しました。

    今回特殊なのは、Apacheのサーバ環境(本番環境)と、処理量過多のサイトの2本立て(普通は
    しないと思うが)なので、同じバージョンをデュアルコンパイルして実装する。

    続きを読む "amazon LINUX AMI でNginx + Fcgi を試す。(未完)" »

                   

    2011年05月13日

    リバースキャッシング(by varnish)

    なかなか6にならないcentOSで、リバースキャッシング
    お金でない方のキャッシングと言うことで。

    環境 centOS 5.6

    初の基盤平置きサーバと紹介
     メモリ 8GB(DDR3-10666 4GB*2)
     マザーボード Intel DH57JG
     XEON L3426 @ 1.87GHz 4コアでHTなるから8スレッドに。あと消費電力が低い。
     グラフィックカードは、3000円くらいのをつけた。
     電源はこれで、一番高い
     SSD intel X25-V 40GB と言うかあまり処理しないので少ない方を利用

    写真は次世代型のSandyBridgesベースのものだけど、おおむねこんな感じになる。
    dh67jg.jpg

    総額 8万円くらい。を2式。
    バランシングが目的。落ちたらkeepalived で復帰させる。(このあたりは前回分で記載)
    1LANでデュアルイーサーを実現
    =>このへんの話はVLANの設定にて、そのうち記載したい。

    あと、少し性能が落ちる構成を2式で20万位で、4式のサーバを用意する。落ちたら、
    さよならにしないのをスケールアウトでカバーする。

    ちなみに varnish うちの用途では以下3つ

    ○単純ロードバランシング
    ○リバースキャッシュ
    ○ヘッダ操作

    の3つ。コンテンツ圧縮などに関しては、バックエンドに置くnigix層で行うことにした。

    ロードバランシング機能だけど、単純と書いたのには以下から。
     ○2.1から実装されたみたいで結構若い。
     ○randomかroundrobin が指定でウェイト指定はないよう。

    リバースキャッシュに関しては、そのまま静的コンテンツをキャッシュする。

    ヘッダー操作
     今回試したいのは、MaxAgeを操作
                 expireの操作を行う。

    続きを読む "リバースキャッシング(by varnish)" »

                   

    2011年05月28日

    【NGINX】 IPとパスワード認証(basic)それぞれに。

    Nginx のベーシック認証

    一部サイトで nginx でパスワード認証をかけない場合は、
    IPの条件と、パスワード認証で分離できる。(apache2.2系と同じ)


    続きを読む "【NGINX】 IPとパスワード認証(basic)それぞれに。" »

                   

    2011年10月30日

    パラレルBzip2

    bzip2が圧縮率がいいので汎用的に使っているが、最近あまりにも遅く(5時間半ほどかかる。)ので調査。
    (DBのダンプファイルで)

    並列処理をしていないらしい。

    続きを読む "パラレルBzip2" »

                   

    2011年11月17日

    PHPのセッションについて

    PHPのセッションについて

    これ、以外にややこしいのでメモっておく。サイトの情報を自分なりに書いたので認識違いは
    あるかも

    続きを読む "PHPのセッションについて" »

                   

    2012年02月03日

    fusion-io (IBM high iops driver)取り付けと評価

    とりあえず導入時のメモ。

    続きを読む "fusion-io (IBM high iops driver)取り付けと評価" »

                   

    2012年03月28日

    Fusion I/Oの取り外し(IBM High IOPS SD class

    Fusion I/Oの取り外し(IBM High IOPS SD classアダプターの取り外し)

    取り外す場合。
    検証が終わったのでとりはずす。

    続きを読む "Fusion I/Oの取り外し(IBM High IOPS SD class" »

                   

    2013年05月16日

    nginx+passenger+ruby verUP

    前途多難ぽい
    nginx もアップグレード
    wget http://nginx.org/download/nginx-1.3.11.tar.gz
    tar -zxvf nginx-1.3.11.tar.gz

    その前に SPDY の導入
    wget http://www.openssl.org/source/openssl-1.0.1d.tar.gz
    tar -zxvf openssl-1.0.1d.tar.gz
    cd openssl-1.0.1d
    ./config
    make
    make install

    続き。

    続きを読む "nginx+passenger+ruby verUP" »

           

    About CentOS

    ブログ「OSTL」のカテゴリ「CentOS」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

    前のカテゴリはBooksです。

    次のカテゴリはGadgetです。

    他にも多くのエントリーがあります。メインページアーカイブページも見てください。

    Powered by
    MTです。
    ゲーム開発のための数学・物理学入門  Beginning Math and Physics for Game Programmersゲーム開発のための数学・物理学入門 Beginning Math and Physics for Game Programmers
    Wendy Stahler

    ソフトバンククリエイティブ 2005-05-11
    売り上げランキング : 31195
    おすすめ平均

    Amazonで詳しく見る
    by G-Tools