SNS用高C/P CentOSサーバの構築

■SNS用高C/Pサーバの構築
 現在さくらインターネットで運用しているSNSサーバの維持運用が、データ量やネットワークトラフィック、支払い金額のバランスで厳しくなってきたため、自宅運営のネットワークに移転できるよう専用サーバを構築する。構築条件は現状からスペックを大きく落とすのは厳しいため、以下のように設定する。

現状のサーバ
  NEC i120Ra-e1 QuadCore Xeon 2CPU
  CPU Intel Xeon L5410 2.33GHz x2
  メモリ 8GB
  HDD 750GB RAID1
  回線 10M共有回線
  年間費用 48万円

移行後のサーバ
  自作PC Core i7 860 2.8GHz
  メモリ 8GB
  HDD 500GB 以上(一部SSD)
  回線 Bフレッツ100M共用
  年間費用想定 12万円(ハード込み)

 物理8コアから論理8コアへ、メモリは現状維持、HDDはRAIDを行わない代わりに同居他サーバにバックアップを取得する。SNSデータのパフォーマンス確保のためSSDを導入する。SSDは1年に1回入れ替えを想定する。

■構成パーツ
ケース
 Antec NSK3480 ¥10,979(380W 80PLUS電源付)
CPU
 Intel Core i7 860 BOX ¥27,090(リテールクーラー利用)
マザー
 ASUS P7H55-M ¥7,980
メモリー
 Team DDR3 SDRAM PC3-10600 2Gx2 ¥8,750 x2(合計8G)
HDD
 Hitachi HTS725050A9A364 ¥6.750(2.5インチ 500G)
SSD
 PQI X-25M 約2万(手持ち流用 2.5インチ 80G)
VGA
 GIGABYTE GV-NX62TC256D8 ¥2,180(中古)
その他
 マウンタ等 ¥2,780

合計金額 約9.5万円相当

■消費電力削減の過程
 上記の通りCore i7を採用したため、消費電力に対するパフォーマンスは相対的に優れた構成になっているが、当初これらを組み上げた際はVGAがSapphire ULTIMATE HD4670(RADEON 4670 ファンレス)だったためか、USBメモリから起動したUbuntu10.04で消費電力をワットチェッカーで確認したところ、かなり大きな値を示した。そのためファンレスVGAを交換することでどれくらい消費電力が変わるのか確認してみた。(P=ピーク/I=アイドル)

 Sapphire ULTIMATE HD4670 (RADEON 4670) P 112W / I 54W
 MSI RX1600XT-T2D256EZ (RADEON X1600XT) P 103W / I 43W
 GIGABYTE GV-NX62TC256D8 (GeForce 6200TC) P 93W / I 32W

 GF6200TCは低消費電力重視で設計されたチップということもあり、ファンレスのボードであるだけでなく、ヒートシンクの小ささも特徴になっている。じゃんぱらで見つけた時にはどれくらいW数が下がるのか興味深かったが、GF6xxx系は比較的消費電力が大きいシリーズと言うことだったので、それほど期待しすぎてはいけないと思っていた。ところが実際計測してみると、さすがに低消費電力を謳うだけあって、当初より20W近い低減が可能になり、とても効果は高かった。

■静音性
 静音性能が比較的高いAntecのケースを利用したこともあり、ほぼ無音に近い(近接していればわからなくはないが、1m離れるとほぼ聴こえない)マシンとなった。深夜でもエアコンの音の方が大きくマシンの動作音は全くわからないほど。

■CentOS 5.5 64bitの導入
 CentOS 5.5 x86_64のnetinstall.isoをダウンロードして、USB CD/DVDドライブで起動してインストールを試みるも、なぜかi386のパッケージを要求するためx86_64のパス指定ではエラーになりインストールが不可能。大丈夫かCentOSのメンテナ…。
 仕方がないのでx86_64インストールDVDをダウンロードして、こちらからインストール。今度はうまく行き8コア、8Gメモリ、ネットワークも問題なく認識動作。SNSサーバとしての構築プロセスは別途記事にする予定。

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

CentOSサーバの負荷試験中の記録取得方法

■CentOSサーバの負荷試験中の記録取得方法
iowaitに大きな影響を与えるファイルシステムの負荷試験の最中に実マシンだけでCPUの負荷状況の記録をできるだけiowaitに影響しない形式で記録取得する方法。

CPUの稼動状況を2秒おきにn回取得する (英語で)
# LANG=C sar -u 2 n > /dev/shm/cpu.log

ロードアベレージを2秒おきにn回取得する (英語で)
# LANG=C sar -q 2 n > /dev/shm/cpu.log

取得した値をグラフツールなどで加工すればより見やすく比較できる。

tmpfs(オンメモリに書くためディスクのiowaitの影響を受けない)に書き込むため、再起動するとデータが消えてしまう。注意。メモリの少ないマシンではオススメしない。

sarコマンドは -oオプションでログを書き出すことができるが、バイナリログでサイズもかなり大きくなるので、その方法は取らず上記のやり方を選択した。

, ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (1 投票, 平均値/最大値: 5.00 / 5)
Loading...

CentOSにAbyss Web Server X1をインストール

■Abyss Web Server X1のインストール

Abyss Web Server X1のダウンロード
[code]# cd ~/download/
# wget http://www.aprelium.com/data/abwsx1.tgz[/code]

日本語ファイルのダウンロード
[code]# wget http://www.aprelium.com/abyssws/languages/a/jp.lng[/code]

展開
[code]# tar zxvfm abwsx1.tgz[/code]

日本語ファイルの配置
[code]# mv jp.lng abyssws/lang/[/code]

設置する場所に移動
[code]# mv abyssws /var/www[/code]

所有権を変更
[code]# cd /var/www/
# chown -R root:root abyssws[/code]

サーバの起動(root権限のデーモンとして)
[code]# cd abyssws
# ./abyssws -r -d[/code]

管理コンソールにアクセス
http://hostname:9999/
一般ユーザからのアクセス
http://hostname:8000/

管理コンソールにアクセスしたら日本語選択してスタート。

■AbyssWebServer X1のアドバンテージ
・GUIの管理コンソールのおかげで初心者にもわかりやすい
・日本語のランゲージファイルも用意されている
・AntiHackingシステムが標準装備
・帯域コントロール機能が標準装備
・軽量でパフォーマンスも良好
・取得するlogのコントロールができる
・RubyやPHPとも組み合わせて利用可能
・SSL対応
・無料で使える

■AbyssWebServer X1のディスアドバンテージ
・利用可能なホスト名はひとつ
・HTTPかHTTPSか択一
・WebDAVは使えない

高機能で有料なX2との詳細な比較は以下
http://www.aprelium.com/abyssws/summary.html

帯域制限ができるのと、AntiHackingシステムが最大の選択ポイント。
個人サーバにはとてもオススメ。

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

CentOSのImageMagickのバグ対応【4/11追記アリ】

CentOS5上で運用しているMyNETSのサイトで今年に入ってからしばしば高負荷が発生してアクセス障害になっていたので、友人らと原因を調査。不幸中の幸いというか高負荷発生時に友人がOSにログインしていたため原因が判明。結果、あるパターンの壊れたアニメGIFのファイルがアップロードされた際にImageMagickが変換しようとして高負荷状態を発生させていた。該当ファイルを抽出し、他のCentOS5のマシンで手動でconvertして再現確認。WindowsやMacOSX,Ubuntuでは該当ファイルはconvertでエラー表示で正しく処理中断になるため、CentOS用パッケージの問題と推測。

 既にこちらの内容は役に立ちません
 最新のx86_64版の話題はこちらを参照してください
http://blog.isnext.net/issy/archives/362

■ImageMagickのアップデート
CentOSはextraとepelがリポジトリ追加されているが、ImageMagickは
[code]# rpm -q ImageMagick
ImageMagick-6.2.8.0-4.el5_1.1[/code]

と、最新の6.6.0-10には遠く及ばない。

しかたがないので、最新版のtarballを落としてきてインストールしてみた。

[code]# cd ~/download
# wget http://downloads.sourceforge.net/project/imagemagick/ImageMagick/00-6.6.0/ImageMagick-6.6.0-10.tar.gz?use_mirror=jaist
# cd ImageMagick-6.6.0-10
# ./configure
# make
# make install[/code]

いろいろ警告は表示されるものの一応インストールできた。…が
[code]# convert broken.gif hoge.gif[/code]
とすると変わらず高負荷発生。
おそらく警告が出ていた中に対策に必要なものがあるということだろう。
(4/11追記:コンパイルして導入するとデフォルトでは/usr/local/bin/convertにインストールされるため、CentOSのデフォルト/usr/bin/convertと異なり、そもそもここでの動作確認は適切な状況ではなかった

しかたないので、Fedora用に用意されているrpmファイルをダウンロードしてインストールする。

[code]# cd ~/download
# wget http://www.imagemagick.org/download/linux/fedora/i386/ImageMagick-6.6.0-10.i386.rpm

# rpm -Uvh ImageMagick-6.6.0-10.i386.rpm
エラー: 依存性の欠如:
libHalf.so.4 は ImageMagick-6.6.0-10.i386 に必要とされています
libIex.so.4 は ImageMagick-6.6.0-10.i386 に必要とされています
libIlmImf.so.4 は ImageMagick-6.6.0-10.i386 に必要とされています
libImath.so.4 は ImageMagick-6.6.0-10.i386 に必要とされています
libcdt.so.4 は ImageMagick-6.6.0-10.i386 に必要とされています
libdjvulibre.so.21 は ImageMagick-6.6.0-10.i386 に必要とされています
libfftw3.so.3 は ImageMagick-6.6.0-10.i386 に必要とされています
libgraph.so.4 は ImageMagick-6.6.0-10.i386 に必要とされています
libgvc.so.5 は ImageMagick-6.6.0-10.i386 に必要とされています
libltdl.so.3 は ImageMagick-6.6.0-10.i386 に必要とされています[/code]

ということで不足しているパッケージの追加をすべく
http://rpm.pbone.net/

で必要なライブラリを含むパッケージの在りかを探す。
必要なのは
OpenEXR
fftw3
Graphviz
djvulibre

epelでなんとかなるものはそこからinstall
[code]# yum install openexr fftw3[/code]

graphvizは最新版が必要なので、本家のCentOS用リポジトリを追加。
[code]# wget http://www.graphviz.org/graphviz-rhel.repo
# mv graphviz-rhel.repo /etc/yum.repos.d/
# yum install graphviz[/code]

djvulibreはdagリポジトリにあるのでそこから追加。[code]
# vi /etc/yum.repos.d/dag.repo
[dag]
name=Dag RPM Repository for CentOS5
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el5/en/$basearch/dag/
enabled=0
gpgcheck=1

# rpm –import http://ftp.riken.jp/Linux/dag/RPM-GPG-KEY.dag.txt
# yum –enablerepo=dag install djvulibre[/code]

これで再度(追記を確認してください。これやっちゃいけません)
[code]# rpm -Uvh ImageMagick-6.6.0-10.i386.rpm[/code]

今度は無事に導入。
[code]# convert broken.gif hoge.gif
convert: negative or zero image size `broken.gif’ @ error/gif.c/ReadGIFImage/1237.
convert: missing an image filename `hoge.gif’ @ error/convert.c/ConvertImageCommand/2941.[/code]

正しくエラーになったので、これでOK。
これCentOSへのDoSになるんで報告すべきか悩み中。

…と思ったら、MyNETSで動作させてみたところ、GIF以外がリサイズできなくなってることが判明。
正しく動作していないのは、Fedora用を使ったからなのか、バージョンアップでコマンド変更があったのか。
追跡調査中。

— 4/11追記 —
調査の結果、Uvhでインストールしてはいけないことを確認。
そりゃそうか。別OS用だしね。

入れ替え時にやること。
既存のImageMagickをアンインストール
[code]# yum remove ImageMagick[/code]

アンインストールの確認
[code]# rpm -q ImageMagick
パッケージ ImageMagick はインストールされていません。[/code]

一応他に入っていないか、残存libがないか確認
[code]# updatedb
# localte convert
# locate libMagick[/code]

CentOSではconvertsは/usr/bin/convertになるので
コンパイルインストール等を行って他にあったら残存lib含めて消しておく
[code]# rm -f /usr/local/bin/convert
# rm -f /usr/local/lib/libMagick*[/code]

Fedora用最新版を新規インストール
[code]# rpm -ivh ImageMagick-6.6.0-10.i386.rpm[/code]

念のため再起動
[code]# reboot[/code]

これで正しくMyNETSで動作することを確認しました。
CentOSでアニメGIF投稿を受け付けるWebアプリで画像変換にImageMadickを利用している場合には、最新版へのアップデートをオススメします。

, ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

Linuxサーバにおけるパフォーマンス高速化のための設定
CentOS5、Ubuntu、Debianで実行してみたもの。効果あった気がする。

■ディスクチューニング
参考URL
http://www.itmedia.co.jp/enterprise/articles/0707/19/news012.html
http://www.avant-tokyo.com/linux/hdparm.html

hda表示=IDE
sda表示=SCSIorSATA

sdaの場合には以下のいくつかのパラメータは無効

# hdparm -Tt /dev/hda 読み出しテスト
# hdparm -v /dev/hda パラメータ確認
# hdparm -c3 /dev/hda 32bitモード処理
# hdparm -u1 /dev/hda 割り込み処理対応
# hdparm -d1 /dev/hda DMA有効化
# hdparm -i /dev/hda HDが同時に読み込めるセクタ数
# hdparm -m16 /dev/hda 同時読み込みを16に設定
# hdparm -a1024 /dev/hda readaheadを1024に設定する
 -a128、-a256、-a512、-a1024、-a2048 測定結果のよいものを使う
# hdparm -k1 /dev/hda 設定を書き込み

■ディスク書き込みの削減
Linuxではファイルを読んだ時にもatimeを更新するため更新しない設定をすることで、書き込み量を減らす。
この設定はディスクにSSDを採用している際に特に有効。

/etc/fstabのマウントオプションとして「noatime」を指定する
# vi /etc/fstab
LABEL=/ / ext3 defaults,noatime 1 1 ←noatimeを追記

再マウントする
# mount -o remount /

mountコマンドでnoatimeが有効になっていることを確認
# mount
/dev/hda1 on / type ext3 (rw,noatime)

■I/Oスケジューラの変更
CentOS等では標準でcfqが採用されているが、データベース運用等をしている場合にはdeadlineが望ましい。

# echo deadline > /sys/block/hda/queue/scheduler
/sys/block/以下は使用しているディスクに合わせて変更

#cat /sys/block/hda/queue/scheduler
noop anticipatory [deadline] cfq ←となっていればOK。

/etc/rc.d/rc.local に以下を追記して再起動時にも適用されるようにする
echo deadline > /sys/block/hda/queue/scheduler

■プロセススワップの抑制
スワップが発生するとレスポンスが落ちるので、ファイルシステムキャッシュのためにプロセスがスワップしないよう設定を追加する。

/etc/sysctl.confに以下を追記する
vm.swappiness = 0

■/proc/sys/以下のパラメータ変更
カーネルのパラメータを修正してパフォーマンスを上げる。()内は参考値
マシン環境で最適値は異なるので試行錯誤する必要あり。

同時に開けるファイル数を増やす
/proc/sys/fs/file-max(131072)

同時スレッド数を増やす
/proc/sys/kernel/threads-max(131072)

ネットワークの送受信可能速度を上げる
/proc/sys/net/core/wmem_default(65536)
/proc/sys/net/core/wmem_max(1048576)
/proc/sys/net/core/rmem_default(65536)
/proc/sys/net/core/rmem_max(1048576)

プロセッサが一度に処理するパケット量を増やす
/proc/sys/net/core/netdev_max_backlog(4096)

tcpのtime_waitを保持できる上限を上げる
/proc/sys/net/ipv4/tcp_max_tw_buckets(131072)

利用可能な内部通信socketを増やす
/proc/sys/net/ipv4/ip_local_port_range(16384 65535)

設定を起動時に自動設定するためには以下に記述する
/etc/sysctl.conf

, , ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

slimstatのインストールと設定

■簡易アクセス解析ツールslimstatのインストール

slimstatのダウンロード
[code]# cd ~/download
# wget http://slimstat.net/file/slimstat-2.1.zip
# unzip slimstat-2.1.zip[/code]

配置は解析したいサイトの直下へ
[code]# mv slimstat /var/www/html/
# cd /var/www/html/slimstat/[/code]

slimstatのデータベースを作成
[code]# mysql -u root -p
mysql> grant all privileges on slimstat.* to slimstat@localhost identified by ‘slimstatpassword’ WITH GRANT OPTION;
mysql> CREATE DATABASE `slimstat` DEFAULT CHARACTER SET utf8 ;
mysql> quit[/code]

設定ファイルを修正
[code]# vi _lib/config.php

/** Database connection */ ←データベース設定
var $db_server = ‘localhost’; // Leave as localhost unless you know otherwise
var $db_username = ‘slimstat’; // The username used to access your database
var $db_password = ‘slimstatpassword’; // The password used to access your database
var $db_database = ‘slimstat’; // The database containing SlimStat’s tables

/** The full name of your site */ ←サイト名設定
var $sitename = ‘Sitename’;

/** Username/password required to login to SlimStat */ ←アクセス制限
var $slimstat_use_auth = true;
var $slimstat_username = ‘slimstatadmin’;
var $slimstat_password = ‘adminpassword’;

/** Timezone */ ←タイムゾーン設定
var $timezone = ‘Asia/Tokyo’;[/code]

管理画面にアクセスして画面の指示に従う
http://hostname/slimstat/

セットアップファイルを削除して完了
# rm -f page/setup.php

あとは以下のいずれかを計測したいコンテンツに貼る。
Javascript用
[code][/code]
php用
[code][/code]

同じページに両方貼らないこと。ダブルカウントになる。
javascriptの方が取得できる項目は多い。携帯サイトなどではphp用の方が有利かも?

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

IceWarp Serverのインストール設定

CommuniGate Proの競合に当るIceWarp Server 10.0.6をインストールした記録。
IceWarp-Japan(韓国のIceWarp代理店の日本支社らしい)から必要なものをダウンロード。
http://icewarp-japan.com/

linux用は以下のドキュメントをダウンロードして読む。
依存ライブラリが多いので、必ず目を通す。
http://www.icewarp.co.kr/downloads/documentation/linuxquick-doc.zip

以下作業。
[code]# cd download/
# wget http://www.icewarp.com/download/linux/rh5/IceWarpServer-10.0.6_RHEL5.4.tar.gz[/code]

root以外で動作させる場合にはユーザを作成
[code]# adduser icewarp[/code]

依存ライブラリの存在チェック
[code]# updatedb
# locate libc.so.6
# locate libpthread.so.0
# locate libpcre.so[/code]
などなど…
ドキュメントに含まれる依存ライブラリリストを確認して必要なものを追加する。
[code]# yum install openldap openldap-devel libcap libcap-devel db4[/code]

libiconvの追加
[code]# yum install gcc make(必要に応じて)
# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
# tar zxvf libiconv-1.13.1.tar.gz
# cd libiconv-1.13.1
# ./configure
# make
# make install[/code]

IceWarp Serverのインストール
[code]# tar zxvf IceWarpServer-10.0.6_RHEL5.4.tar.gz
# cd IceWarpServer-10.0.6_RHEL5.4
# ./install.sh[/code]

EULAが出てくるので、ウィザードに従って設定する
[code]** You must accept this license agreement if you want to continue.
** Press ENTER to accept license or CTRL+C to quit ←エンターキー

** Please make sure the IceWarp Mail Server is not running before installing.
** Press ENTER to continue, CTRL+C to quit ←エンターキー

** Installation/Upgrade mode entered
**
** Installation prefix [/opt/icewarp]:
** Performing new install
** Run services as user [root]:  ←root以外にするなら作成したユーザで
** Run services as group [root]:
**
** Please check entered informations before continuing:
**
** Installation prefix: /opt/icewarp (directory will be created)
** Services will run as user: root
** Services will run as group: root
**
** Press ENTER to continue, CTRL+C to quit ←エンターキー

** Creating /opt/icewarp directory
** Extracting distribution
** Please wait…
** Checking for previous ‘merak’ service installation …
** Checking if IceWarp Server is added as system service …
** Note: System service can be reinstalled
** by removing already installed service.
**
** Do you want to add IceWarp Server as a system service? [Y/n]: y ←サービスとして起動するか
** Adding IceWarp Server as system service
** Do you want IceWarp Server to start automatically on reboot? [Y/n]: y ←起動時に自動でスタートさせるか
** Making service as autostart
** Changing permissions
**
** Do you want to run IceWarp Server Wizard now? [Y/n]: y ←初期設定を行うか(やった方がいい。後からやるなら/opt/icewarp/wizard.sh)
** Starting IceWarp Server

**
** IceWarp Server
** (c) 1999 – 2009 IceWarp Ltd.
**
** Wizard configuration assistant
**
** Logging is redirected to the following file for future reference:
** Commands: /opt/icewarp/logs/wizard/icewarpserver-wizard-cmd.log
**
** Press [ENTER] to continue, CTRL-C to quit. ←エンターキー

**
** Root menu
** ———
**
** You have the following options:
**
** [1] Accounts and Domains management
** [2] License operations
** [3] Storage setup
**
** [0] Return
** [Q] Exit
**
** Enter your choice: 1 ←最初にアカウントとドメインを設定する

**
** Accounts and Domains management
** ——————————-
**
** You have the following options:
**
** [1] Add new domain
** [2] Delete domain
** [3] Add new user
** [4] Delete user
**
** [0] Return
** [Q] Exit
**
** Enter your choice: 1 ←ドメインを設定
**
**
** Create new domain:
**
** Domain name: test.example.com ←新規ドメインを設定
** Domain description: icewarp test server ←ドメインの説明
** Administrator email address: admin@test.example.com ←ドメイン管理者アドレスを設定
**
** OK? [Y/n]: y
** Domain created
** Add another domain? [Y/n]: n
**
** Accounts and Domains management
** ——————————-
**
** You have the following options:
**
** [1] Add new domain
** [2] Delete domain
** [3] Add new user
** [4] Delete user
**
** [0] Return
** [Q] Exit
**
** Enter your choice:3 ←ドメインのユーザを設定
**
**
** Create new account:
**
** Email address: admin@test.example.com ←先ほどの管理者アドレスを設定
** Password: ** ←パスワードを設定
** Once again to confirm: ** ←再入力
** Full name: testadmin ←アカウント名を設定
** Account is system administrator? [Y/n]: y
**
** OK? [Y/n]: y
** Account created
** Add another user? [Y/n]: n
**
** Accounts and Domains management
** ——————————-
**
** You have the following options:
**
** [1] Add new domain
** [2] Delete domain
** [3] Add new user
** [4] Delete user
**
** [0] Return
** [Q] Exit
**
** Enter your choice: q ←設定終了
**
** IceWarp Server was successfully installed or upgraded.
**
** Installer log is available in /root/icewarp-install.log
** Installer error log is available in /root/icewarp-install-error.log[/code]

IceWarpサーバの起動と停止
[code]# service icewarp start
# service icewarp stop[/code]

以下のURLに管理者のアドレスとパスでアクセスしてWebで設定を行う。
http://hostname:32000/admin

残念ながら管理画面では日本語の選択ができず、ログイン語も日本語設定がどうしたら可能なのかわからなかった。インストール自体は難しいわけではないが、依存ライブラリが多いことと、それが管理画面のどこに影響するのかがわかりにくいことで、どの機能が有効でどれが有効でないのか判断がしにくい。設定しても動作しないものがちらほら散見され、ログの解析などをきっちりやらないとまともに動作させることができない印象を受けた。

使いやすければCommuniGate Proとの入れ替えもありか?と思っていたが、依存ライブラリの多さやSPAMやSIP設定の煩雑さを考えると、Linuxのアップデートで思わぬところが動作しなくなるとか、運用面の負荷が大きくなりそうで、正直選択はできないと思った…。むしろLinuxでなくWindowsで動かす場合にはアリかもしれないが、SIPが必要ならCommuniGate Proが、SIPが必須でなければKerio Connect7の方がスパム&ウイルス対策がビルトインされたメールサーバとしては圧倒的に使いやすいので、IceWarpの位置づけは結構微妙な感じ。

うーん、ちょっと残念。

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

CentOSで CommuniGate Pro + ClamAV + cgpav1.4 設定

CommuniGate Proでメールのウイルスチェックを行うにはいくつか方法があるが、ここでは無料のClamAVを利用する設定を行う。

■ClamAVの設定
clamavとは言ってもサーバ動作させるためclamdというデーモンを必要とする。
CentOSの場合、epelリポジトリにclamav-serverパッケージがあり、これがclamdを含むがバージョンが2010/03/11現在0.95.1で最新の0.95.3より2つ古い。ClamAVは最新バージョンを利用しないとログにアラートが大量に出ることから、最新バージョンになっているRPMForgeリポジトリのパッケージを利用することとする。

RPMForgeの準備
[code]# rpm –import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
# rpm -ivh rpmforge-release-0.5.1-1.el5.rf.i386.rpm[/code]

clamdパッケージのインストール
[code]# yum install clamd[/code]

clamdの設定
[code]# vi /etc/clamd.conf
#Example

消す

User clamav

User root (CGServerと同じユーザで動作させる)

大きなファイルを扱う場合(CGPのファイルサイズ制限と合わせる)
StreamMaxLength 100M[/code]

定義ファイル更新設定
[code]# vi /etc/freshclam.conf
#Example

消す

#DatabaseMirror db.XY.clamav.net

DatabaseMirror db.jp.clamav.net[/code]

clamdを起動する
[code]# service clamd start[/code]

定義ファイルを更新する
[code]# freshclam[/code]

更新したら正しく動作しているか確認するためウイルステストファイルをダウンロードしてチェックする。以下のようにSCAN SUMMARYが出ればOK。
[code]# wget http://www.eicar.org/download/eicar.com
# clamscan –infected –remove –recursive
/root/download/cgpav-1.4/eicar.com: Eicar-Test-Signature FOUND
/root/download/cgpav-1.4/eicar.com: Removed.

———– SCAN SUMMARY ———–
Known viruses: 726575
Engine version: 0.95.3
Scanned directories: 14
Scanned files: 88
Infected files: 1
Data scanned: 1.79 MB
Data read: 0.95 MB (ratio 1.89:1)
Time: 1.911 sec (0 m 1 s)[/code]

■cgpav-1.4を設定する
clamdの動作確認ができたら次はcgpavを設定する。cgpavはmakeが必要になるので、gccやmakeが入っていないサーバ環境の場合はインストールしておく。
[code]# yum install gcc make automake[/code]

cgpav-1.4をダウンロードしてmakeする
[code]# cd download/
# wget http://program.farit.ru/antivir/cgpav-1.4.tar.gz
# tar xvf cgpav-1.4.tar.gz
# cd cgpav-1.4
# ./configure[/code]

./configureの途中で設定を確認されるのでここではClamAVのみ設定し、SpamAssassinは使わない設定を行う。
[code]***********************************************
Choose Anti-Virus daemon
Enter 1, 2, 3, 4, 5, 6
1 Clamav (free)
2 Sophos sophie
3 Kaspersky (KAV)
4 Trend Micro trophie
5 Dr.Web
6 Without Anti-Virus support
1
Will use Clamav Anti-Virus daemon clamd

***********************************************
Enable SpamAssassin support
Enter 1 or 2
1 Enable SpamAssassin support
2 Disable SpamAssassin support
2
Will not use SpamAssassin[/code]

./configureが終了したらmakeしてinstallする。
[code]# make
# make install[/code]

CommuniGate Proのデフォルトパスにcgpavが存在するか確認する。
[code]# ls /var/CommuniGate/[/code]

cgpavの設定を行う
[code]# vi /var/CommuniGate/Settings/cgpav.conf
clamd_socket = /tmp/clmad

clamd_socket = /var/run/clamav/clamd.sock

infected_action = discard

infected_action = addheader(標準では有無を言わさずウイルスメール自体を消去するので注意)

add_not_infected_header = false

add_not_infected_header = true(チェックして問題なかったことがわかる)

recipients_notification = false(受信先にウイルスメールが来たことを通知する場合trueにする)[/code]

ここで、本来ならcgpavの動作確認をするため、以下の手順がドキュメントには記載されているが、なぜかCentOSでもDebianでもうまく動作せず…。CGP経由の動作には問題なかったのでパス。
[code]# cd /var/CoomuniGate/
# wget http://www.eicar.org/download/eicar.com
# ./cgpav
[/code]

■CommuniGate Proの設定をする
CommuniGate Proでウイルスチェックにメールを渡す設定を行うため、管理画面にアクセスする。
[code]http://hostname:8010/[/code]

「設定」→「全般」→「ヘルパー」を開き、外部コンテンツフィルターに以下のパラメータを入力して更新する。
 [code]オン antivirus
 プログラムパス:cgpav
 タイムアウトと自動再起動は「しない」[/code]

「設定」→「メール」→「ルール」に以下の設定追加する。
「viruscheck」と入力して「ルール追加」ボタンを押す
「viruscheck」ルールの編集リンクをクリックする

 ここでウイルスチェックをしたいルール条件を設定する。とりあえずテスト用にpostmaster宛てをチェックする設定を以下のように追加する。
 [code]Toアドレス 等しい postmaster@localhost
 外部フィルター antivirus[/code]

これで設定は完了。

■ウイルスチェック試験を行う
ウイルスチェックの動作確認をするため、WebMailにアクセスしてpostmasterでログインする。
[code]http://hostname:8100/[/code]

送信先にpostmaster@localhostと入力して適当なメールを作成し送信してみる。
自分宛てにメールが届き、メールのヘッダに「X-Virus-Scanned: by cgpav」が付加されていれば動作成功。

先ほど試験用にダウンロードしたテストウイルスeicar.comを添付ファイルとしてメールに付けてpostmaster@localhostに送り、届いたメールのヘッダに「X-Virus-Flag: Yes」と付いていれば完璧。

ウイルスチェックの結果は以下でも確認可能。
[code]# cat /var/log/message | grep cgpav[/code]

後はウイルスが発見された場合のヘッダをベースに振り分けルール等を書いて個別に対応する。

■cgpav設定変更の注意
設定の変更はcgpav.confの編集で行うのだが、一度CommuniGate Proから稼働させた場合、設定を変更を反映するためには、該当cgpavプロセスをkillしたりkill -HUPしたりしてもダメで、OSごと再起動しないとなぜかうまく反映されなかったので注意。この辺りもっと検証が必要。

, , ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

muninでsnmp監視(CentOSからOSX Leopardを監視)

muninでsnmp監視

net-snmpのインストール
[code]# yum install net-snmp net-snmp-utils[/code]

監視対象の情報が取得できることを確認
[code]# snmpwalk -v 2c -c public server.local[/code]

muninの設定上監視対象にhost名がなければ付けておく(DNSで引けるなら不要)
[code]# /etc/hosts
192.168.0.100 server.local[/code]

muninの自動設定機能を利用
[code]#munin-node-configure –snmp server.local
ln -s /usr/share/munin/plugins/snmp__users /etc/munin/plugins/snmp_server.local_users
ln -s /usr/share/munin/plugins/snmp__load /etc/munin/plugins/snmp_server.local_load
ln -s /usr/share/munin/plugins/snmp__if_err_ /etc/munin/plugins/snmp_server.local_if_err_4
ln -s /usr/share/munin/plugins/snmp__if_err_ /etc/munin/plugins/snmp_server.local_if_err_6
ln -s /usr/share/munin/plugins/snmp__if_ /etc/munin/plugins/snmp_server.local_if_4
ln -s /usr/share/munin/plugins/snmp__if_ /etc/munin/plugins/snmp_server.local_if_6
ln -s /usr/share/munin/plugins/snmp__df /etc/munin/plugins/snmp_server.local_df
[/code]
出力されたln〜のコマンドを使ってシンボリックリンクを作成

host treeに監視対象を追記
[code]# vi /etc/munin/munin.conf

[localhost]
address 127.0.0.1
use_node_name yes
[server.local] ←監視対象の名前
address 127.0.0.1 ←監視するサーバのアドレス
use_node_name no[/code]

munin-nodeを再起動
[code]# service munin-node restart[/code]

監視対象側の設定(OSX Leopardの場合)
snmpdはインストール済みなので起動設定を行う

起動ファイルを作成
[code]$ sudo vi /Library/LaunchDaemons/snmpd.plist



Label
snmpd
OnDemand
Program
/usr/sbin/snmpd
RunAtLoad
[/code]

設定読み込み
[code]$ sudo launchctl load -w /Library/LaunchDaemons/snmpd.plist[/code]

起動
[code]$ sudo launchctl start snmpd[/code]

起動を確認
[code]$ sudo laof -i[/code]

動作の確認
[code]$ snmpwalk -v 2c -c public localhost
$ snmpwalk -v 2c -c private localhost[/code]

snmpdの設定
[code]$ sudo vi /etc/snmp/snmpd.conf

# sec.name source community
#com2sec local localhost private
#com2sec mynetwork NETWORK/24 public
com2sec local 192.168.0.0/24 public[/code]

監視ホスト(CentOS)から監視対象(OSX Leoprad)の情報が取得できることを確認する

, ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

CommuniGate ProのMailBoxのサイズとファイル数カウント

/var/Communigate/Accountsにアカウントがある場合(デフォルトはここ)
$ cd /var/CommuniGate/Accounts (ディレクトリ移動)

/var/Communigate/Domainsにアカウントがある場合(ドメイン追加した場合)
$ cd /var/CommuniGate/Domains (ディレクトリ移動)

それぞれユーザアカウントが確認できるディレクトリで以下を実行

■サイズの集計
 $ du -ah | grep “.macnt” | grep -v “.macnt/”

■ファイル数の集計
 $ for d in `find ./ -type d`; do echo $d,`ls “$d” | wc -l`; done

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...