2009/07/30(木)そろそろ限界か

2017/10/11 7:23 サーバ運営・管理
Valustar VU45/T 本体 6年以上、DNSとして使っています。本来はデスクトップPCですが、24時間運転のサーバとして使っています。
CPU K6-2 450MHz,メモリ 256MByte SDRAM2枚,HDD ATA66 20GByte。

この時代の製品は、現代と異なり丈夫なものが多く、永く使えます。
台湾製のものは概ね4年くらいで逝きます。

FreeBSD 7.2 を cvsup でソースコードを取得し、

make buildworld すると 18時間弱
make buildkernel すると 約6時間

かかります。
FreeBSD 4 の時代は長くても8時間くらいで済んだものですが、、、

その他もろもろの構築作業行うと、足掛け3日かかります。
普通は、作業効率悪すぎるので、他の構築方法を選ぶか、大抵はこのスペックのマシンは捨てて、より高性能なものに入れ替えるのですけどね。

いろいろ代替方策はありますが、システムの都合上、どれも使えないのです。
どれだけコストダウンの努力をしているのかのごく一端でも垣間見ることがお分かりいただけたらと希望しています。

2009/07/29(水)OpenLDAP 2.4.17 の構築オプションはまともに機能しない?

2017/10/11 7:26 サーバ運営・管理
先日、アカウント管理に使用している OpenLDAP を、2,4,16 から 2.4.17 に更新しました。
構築時、最初に configure コマンドにてオプション設定するわけですが、オプションが有効にならなかったり、テストでエラーになったりします。2.4.16 では出なかったんだけれど、、

以下は気づいた点:
--disable-monitor と --enable-monitor=no は同じ意味になるはずだが、どういうわけか --enable-monitor=no は効かない場合がある。
--disable-monitor オプション付きでコンパイルしても、テストは実行されてしまう。だから、この場合 test056-monitor はエラーになる。
--disable-dynlist は、デフォルトでそういう設定だが、中途半端に有効になり、明示的に無効にする指定をしないと test044-dynlist はエラーになる。
--without-cyrus-sasl または --with-cyrus-sasl=no は指定しても機能しない。無効にするには、Cyrus-SASL そのものをライブラリとヘッダごと削除しないと駄目っぽい。
Cyrus-SASL は最近はまともにメンテナンスされておらず、特に FreeBSD 7.0以後、構築すると、Warning が沢山出てくる。使えるのだろうが、一抹の強い不安がある。
hdb バックエンドにおいて、test058-syncrepl-asymmetric がエラーになる。hdb はとりあえず使わないので、気にせずインストールしているが、、

2009/07/26(日)便利そうだが使えない― milter-manager/dovecot-sieve

2017/10/11 7:28 サーバ運営・管理
弊社では、営業運用として電子メールサーバを稼動させています。
今の事業形態になる前を含め、本格稼動から9年経過し、2003年8月に大幅なシステム改良を顧客のご協力を得て行ったのが現行のシステムな訳ですが、一部ソフトウェアにサポート継続が出来るかどうかの問題が出てきたため、将来的な費用対効果もあって、一部を変更する検討をしていたのですが、、

現在は、
SMTP: Postfix
IMAP/POP: Courier-IMAP
LDA:Courier-maildrop
Virus/Spamscan: ClamAV/SpamAssassin/Amavisd-new
Auth:Cyrus-SASL/Courier Authlib/OpenLDAP
という布陣です。

メールサーバというのは、サービス特性上、1つのソフトウェアのみで構成不能なのが通常で、弊社の場合は9つのソフトウェアを組み合わせて構築しています。更に稼動させるために基本OS含め5つの主なソフトウェア(うち3つが自社開発)を使う必要があり、合計14のソフトウェアで構成していることになります。
Web サーバより、はるかに複雑なのです。

そのうち、稼動負荷の高い Amavisd-new と、将来的なメンテナンスに不安材料を抱える Courier-IMAP,Cyrus-SASL と、メンテナンスコストを大幅低減を狙うため、加えて Courier-maildrop, Courier-Authlib,Cyrus-SASL の代替を探していたところ、候補にしたのは、
・dovecot (Courier-IMAP と Cyrus-SASL を置き換える)
・dovecot-sieve (Courier-maildrop を置き換える)
・既存 ClamAV の milter 対応 (Amavisd-new を取り除く)
・既存 SpamAssassin の milter 対応 (Amavisd-new を取り除く)
・milter-manager (Amavisd-new の代替)

そしてこの5つが実現できることで、 Courier Authlib も不要になり、Courier シリーズ全廃&管理コスト削減という算段だったのですが、、

dovecot-sieve は、Courier-maidrop のように、外部プログラムを呼び出して、フィルタする、ということが、現状ではできません。
これはかなり致命的。
milter-manager で消化することを試みることにしました。milter-manager は ruby 1.8とC の混在環境で稼動するよ うです。

が、設定までは何とか出来るのですが、SMTP コネクションを接続し、milter-manager を呼び出したところで、どういう訳かサーバそのものが I/O デッドロック状態のようになります 。
リセット・再起動しないと、キーボード入力すら受け付けないのです。

ruby のバージョンを 1.8.7 の最新にしてみたり、依存ライブラリ等を最新にしてみたり、上書きインストールをしてみたり、と色々試したのですが、どうもマルチスレッド絡みで根深そうなので、今回は、milter-manager の採用は見送りざるを得ませんでした。

結局置き換え出来たのは、
Courier-IMAP → dovecot
Cyrus-SASL → dovecot
Amavisd-new → ClamAV-milter (ClamAV 標準配布)

の3つで、運用管理するべきソフトが3つ減り、新たに dovecot が加わった形。
dovecot-sieve で外部コマンドが実行可能だと、Courier-maildrop と Courier-Authlib も廃止できて、更に2つ減らせたのだけれど、、
さもなければ、dovecot-deliver で maildrop と同様の機能を提供して頂くとか。現状は外部コマンド実行不可なので、この時点で当環境では dovecot-deliver の採用はできないことが判明。

dovecot-sieve は機能不足で、当環境では採用時期が早過ぎたようです。振り分けだけなら出来るのですけどね。。

2009/05/04(月)FreeBSD 7.2R リリース

2017/10/11 7:37 サーバ運営・管理
今回の目玉らしいです:

- support for fully transparent use of superpages for application memory
- support for multiple IPv4 and IPv6 addresses for jails
- csup(1) now supports CVSMode to fetch a complete CVS repository
- Gnome updated to 2.26, KDE updated to 4.2.2
- sparc64 now supports UltraSparc-III processors

良く判らんが・・・

- アプリケーションメモリ領域確保にて、スーパーページを完全に利用可能になった
- Jail 環境にて、複数のIPv4,IPv6 アドレスが利用可能になった
- csup コマンドを新規に追加。CVSモードにてコード取得し、コンパイル可能になった
- Gnome を 2.26 に、KDE を 4.2.2 に更新
- sparc64 ディストリビューションにて、UltraSparc-III プロセッサを新たにサポートした

他にも細かな改良があるようです。
先ずは実験サーバにて検証作業。。

2008/12/30(火)サーバやネットワークトラフィックの管理ツール― Munin 【後編】

2017/10/11 7:42 サーバ運営・管理
Munin には、インストールされた機器自身の構成をチェックし、ある程度の情報が最初から取得できるようにすることができます。

root で以下のコマンドを実行します。
# /usr/local/munin/sbin/munin-node-configure --shell | sh

そうすると、/usr/local/etc/munin/plugins 配下にシンボリックリンクの形で取得できそうな情報がプラグインの形で設定されます。

次に /usr/local/etc/munin/munin-node.conf を編集。
変更箇所は、

user munin
group munin
allow ^127\.0\.0\.1$
allow ^172\.16\.1\.20$
← 他ホストで情報収集する場合、そのホストのIPアドレスを追加。

この程度で良いはず。
その次に /usr/local/etc/munin/munin.conf を編集。
変更箇所は、

dbdir /db/munin
htmldir /home/webroot/hankakusai.basekernel.co.jp/htdocs/munin
logdir /var/log/munin
rundir /var/run/munin

[hankakusai.basekernel.co.jp]
address 127.0.0.1
use_node_name yes


こんな感じです。
情報取得対象ホストがそれ自身の場合は、 address に 127.0.0.1 を指定します。そうでない場合は、該当ホストの IP アドレスを指定します。そのとき、対象ホスト上で munin を稼動させ、munin-node.conf の allow ディレクティブにて、アクセス許可しておく必要があります。

dbdir は、取得情報を保存するディレクトリ
htmldir は、生成する html ファイルを保存するディレクトリ
(このディレクトリは外部からWebブラウザで閲覧できる位置にする必要あり)
logdir は、munin の動作ログ格納ディレクトリ
rundir は、pid などを格納するディレクトリ

で、全て UID munin で書き込みできるようにディレクトリパーミッションを設定しておく必要があります。

最後に crontab -u munin -e で、
*/5 * * * * /usr/local/munin/bin/munin-cron
として、5分毎に実行するようにして、設定完了です。
5分ごとにグラフが描画され、更新しているのが確認できれば、正常稼動できています。

ということで、20台ほどのサーバを munin で集中管理する環境が構築できました。

2008/12/13(土)サーバやネットワークトラフィックの管理ツール― Munin 【前編】

2017/10/11 7:44 サーバ運営・管理
数ヶ月前、この手のツールに Zabbix を導入したのですが、想像をはるかに超える勢いで取得情報のデータベースが肥大化し、貧弱な設備では半年も持たないことが判明した(爆)ので、急遽管理ツールの変更を迫られたのでした。
一度、採用候補にしていたのですが、日本語の情報が少ないので、Zabbix導入の際、ボツにしたこの Munin を何とかインストールしたのです。
メモリ状況 Munin は、「ムーニン」と言うのでしょうか? どうしても「ムーミン」と読んでしまうのは、自分だけでは無い と思うのだが、、
左記のような感じで、いろいろな情報を表示できるようです。

Munin は、perl スクリプトの集合体です。
入手場所はこちら → [トップページ] [ダウンロード]
ダウンロードの際は、最初は stable版で。




インストールの際は、予め以下のものが必要です。
・RRDTool 1.2.x
・Net::SNMP (Perl モジュール)
・Net::Server(perl モジュール)
・Crypt::DES(perl モジュール/ Net::SNMP が依存)
・Digest::HMAC(perl モジュール/ Net::SNMP が依存)
・Digest::SHA1(perl モジュール/ Net::SNMP が依存)
・HTML::Template(perl モジュール)

インストールの際は、更にいくつか前作業が必要。
・ユーザ名 munin, グループ名 munin を作成。UID,GID は 4949 あたりで良い。
・tar.gz ファイルを解凍し、作成されたディレクトリの中の Makefiie.config をインストールしたい対象マシンに合わせて編集。
・環境変数 PATH の中に './' (カレントパス) が入っていたら、削除したものを再設定しておく。
 カレントディレクトリが環境変数 PATH に入っていると、perl の環境汚染チェック(-T スイッチ) に引っかかり、動作に支障が出る。← これに填まりました。。

準備が出来たら、
gmake install-main
gmake install-node install-node-plugins

で本体をインストール。

インストール自体はこれで完了ですが、利用できるようにするためには、更に設定が必要。

2008/11/29(土)FreeBSD 6.4R リリース

2017/10/11 7:48 サーバ運営・管理
日付は昨日になると思われます。
6.x系はあと1~2回リリースあると思います。(一応、6.x 系最後とされてはいる)
6.3R → 6.4R の主な変更点は、リリース案内によると以下のような感じです:

- 新しくて大きく改良されたNFS Lockマネージャ(NLM)クライアント
- Camellia暗号サポート
- ブートローダの変更。USBとGPTによってラベルされ、BIOSにて有効になっている場合、それらのデバイスからのブートを可能にします。
#ちょっと意味解らない部分が...orz

- amd64/i386のための DVD用インストールISOイメージが利用可能です。
- KDE を 3.5.10にアップデート。 GNOME を 2.22.3 にアップデートしました。
- BIND、sendmail、OpenPAM、など色々アップデート

ウチは既にメインが 7.x系なので、直接関係ない情報ですが、6.xR をご利用のユーザはOSアップデートをしましょう。

2008/11/25(火)ProFTPD 1.3.1 LDAP サポート構築時の注意点

2017/10/11 7:50 サーバ運営・管理
確認したのは、FreeBSD 7.0 amd64 環境に OpenLDAP 2.3.41 を別サーバに用いる環境です。

現在、ProFTPD のStable バーションは 1.3.1 ですが、これに同梱されている LDAP サポートは localhost 以外だと、LDAP 認証する時点でSegmentation halt(Signal 11) でプロセスごとダウンします。

これは、同梱の mod_ldap.c に問題があり、最新版にすることで対処可能です。
最新版の mod_ldap.c は http://horde.net/~jwm/software/mod_ldap から取得できます。
上記サイトの下のほうに、現在の最新版 mod_ldap 2.8.19 のダウンロードリンクがあるのでそこから取得します。

取得した mod_ldap.c を ソースコードツリーの contrib ディレクトリ配下へ上書きコピーし、通常どおりコンパイル・インストールします。

2008/05/11(日)PostgreSQL-32bit CPU環境から 64bit CPU環境への移行

2017/10/11 8:13 サーバ運営・管理
先月は、ライフサイクルの寿命に起因する、ハードウェアトラブルが複数発生し、1つのサーバを Athron から amd64 環境へ移行しました。
amd64 環境へ移行したサーバは、まる4年稼動。もう1台は約10年稼動していました。
蛇足ですが、昔のハードウェアの方が発熱量も消費電力も少なく、長持ちします。

FreeBSD の場合、amd64 環境でも 32bit アプリケーションは一応動作するものもありますが、基本的には再構築した方が無難に決まっています。
PostgreSQL は、本体バイナリは 32bit ものでも lib32 互換ライブラリのお陰で動作するようですが、やはり起動しません。
「checksum error」

これが出てしまって起動しません。
データベース自体がクラッシュしていると、この表示になりますが、32bit環境で構築したデータベースをそのまま 64bit 環境で動作させようとしてもこの表示が出て使えないです。
いくつか検索してみると、同じようなことで、填まっている管理者が結構多いようです。

いったん、32bit 環境にて SQL 形式でdb_dump を行ってから、64bit 環境構築後にリストアする形を取るのが最も確実な手段と言えます。