Jun 052006
 

ここ最近Bフレッツ回線の不調にみまわれています。
うちは今時10Mbpsの旧ファミリータイプなのですが、下りはせいぜい1.5Mbps、上りはTimeoutで測定不能といった状態。
フレッツスクエアに接続する限りでは問題ないのでプロバイダにも問い合わせたのですが、
「トラフィック異常も見受けられないし、規制もかけていない」
とのこと。

Timeoutしそうな通信、例えばちょっと入力の多いPOST処理等をおこなってからルータのログを確認すると、こんなメッセージが記録されています。

NAT RX-INFO  TCP Synchronize Flag OFF : TCP 203.141.***.*** : 80 > 210.155.***.*** : 1092 (IP-PORT=7)

これは203.141.***.***のサイトにPOSTしにいったときのログです。
TCPのSYN/ACKが返るべきところにSYNがおちた、ACKだけのパケットが届いたように見えます。
SYNフラグが落ちてパケットが届いたというよりも、その前にくるべきSYN/ACKのパケットが欠落した、もしくはルータで取りこぼしたんでしょうか?

フレッツスクエア側では発生してませんからルータでの取りこぼしも考えにくいです。
再度プロバイダに問い合わせですかね…。

■2006-06-15追記
結局Bフレッツ光回線の問題でした。NTTの方に来ていただいてレベルを測定したところ41dBと一発で異常とわかったようです。
何のレベルかよくわかりませんが、通常は小さいほどよく20dB程度が普通とのこと。
ちなみに測定機器はPhotom 211Aというものを使ってました。

Jun 042006
 

自宅内のサーバ間はホストベース認証にしてみました。
正直、ここに書いてあることを読むより

を見ていただいたほうがよっぽどわかりやすく、かつ有益だと思います。

環境

  • サーバ(接続先) : server.example.jp
  • クライアント(接続元) : client.example.jp

上記ホストは/etc/hostsもしくはDNSに登録済みで正引き逆引きともに名前解決可能であることとします。

サーバでの準備

/etc/ssh/sshd_configの設定変更

Protocol 2のみ使用することにしてますので以下の設定を加えます。Protocol 1も使う場合は別の設定が必要ですが、今更使うことは推奨されませんので割愛します。

ホストベース認証を有効にします。
HostbasedAuthentication yes

~/.ssh/known_hostsを信用しません。/etc/ssh/ssh_known_hostsに公開鍵を追加したホストのみホストベース認証を許可します。
IgnoreUserKnownHosts yes

~/.rhostsや~/.shostsを信用しません。/etc/hosts.equivなどのシステムファイルに記述されたホストのみ接続を許可します。
IgnoreRhosts yes

ただしrootユーザの場合は/etc/hosts.equivを見にいってくれません。rootでもホストベース認証したい場合、こちらはnoのままにしておいて~/.rhostsや~/.shostsを有効にする必要があります(auth-rhosts.cで判定しているっぽい)。

クライアントの公開鍵を登録

接続元となるホストからホスト公開鍵をもってきて、/etc/ssh/ssh_known_hostsに登録します。

# ssh-keyscan -t rsa client.example.jp >> /etc/ssh/ssh_known_hosts

IgnoreUserKnownHosts yesにより、ホストベース認証時はユーザの~/.ssh/known_hostsは無視されますので、こちらへの公開鍵登録が必須となります。

接続許可ホスト限定

/etc/ssh/shosts.equivに許可ホストのエントリを追加します(rootの場合は~/.shosts)。

# echo client.example.jp >> /etc/ssh/shosts.equiv

IgnoreRhosts yesにより、ユーザの~/.rhostsや~/.shostsは無視されますので、こちらや/etc/hosts.equiv等へのエントリ追加が必須となります。

クライアントでの準備

この状態で一端接続してみます。

$ ssh -o HostbasedAuthentication=yes server.example.jp
ssh-keysign not enabled in /etc/ssh/ssh_config
ssh_keysign: no reply
key_sign failed
Enter passphrase for key '/home/foobar/.ssh/id_dsa':

という具合に接続元ホストの/etc/ssh/ssh_configを変更が必要といわれます。またHostbasedAuthentication=yesをいちいち指定するのも面倒ですので、これらの設定を/etc/ssh/ssh_configに追加します。

Host *
  HostbasedAuthentication yes
  EnableSSHKeysign yes

■2009-04-04追記
ssh-keyscanで取り込んだ公開鍵が実際の公開鍵(/etc/ssh/ssh_host_rsa_key.pub等)と異なっていて接続できない場合あり。
原因は追求していないが公開鍵ファイルを直接登録して凌いだ。

May 272006
 

最近、インターネット接続の速度低下に悩まされていたのですが、ルータの不調だったようです。
電源オフしてしばらく放置しても直らなかったので、ルータ以外を疑っていたのですが、工場出荷時設定にリセットしたら直ってしまいました。

使っている機種はNECのWR7800Hで、非公式ながら telnet接続でもいろいろな設定変更をおこなえる機種です。

MTUサイズ変更

> entry wan 22 ppp mtu 1454
> entry wan 22 ppp mru 1454

wan 22-26はそれぞれ接続1-5に対応するそうです。

syslog転送

> syslog forward mode enable
> syslog forward address ***.***.***.***

show syslogで表示される項目は大抵変更できるようになっており、同じようなことがhttp://web.setup/syslog_main.htmlのウェブ管理画面でも可能になっていますが、syslogの転送設定だけはtelnetからのみ可能なようです。

ちなみにsyslogのウェブ管理画面のIDとパスワードは通常の管理画面と違い以下に固定されています。

username aterm-maintenance-110
password Aterm-Maintenance-119

いろいろいじくりすぎが原因だったのでしょうか。
しばらくウェブから変更可能な項目だけを設定した状態で使ってみようと思います。

May 192006
 

ZABBIX 1.1beta10 releasedのWhat’s Newを見た感じでは、Oracleサポート追加(Experimentalです)が結構目立ちますが、全体的には機能追加よりもバグフィックスが多くなってきたように思います。

beta9とのdiffをみるとlibs/zbxsysinfo/solaris/net.cに変更が入っていたので、もしや?と思いましたがネットワークトラフィックが収集できない状態は変わっていませんでした。Solaris 10なので仕方ないのかも知れませんが、明記されているSolaris 9(2.9)では問題ないのですかね。

それからbeta10とは全然関係ない話ですが、「特定の時間帯のみアラートをあげる」ようなことがどうやったらできるのか、漠然と考えていましたが、本家マニュアルにずばり記述がありました。
Documentation / Zabbix Manual v1.1 / Configuration / Triggers の例の中に
Example 9. CPU activity at night time
Use of function time():

よくよく考えればそうなのでした。時間を取得する関数さえあればできちゃうんですよね。
ま、zabbix:system[procload].time(0)というtime()関数がItem毎に用意されているような書き方は変な感じはしますけどね 😛

May 172006
 

Solaris 10にBig Sisterをインストールしてみました。
RRDToolはCSWパッケージで導入済です。
他にもPerlモジュールがいくつか必要になりますが、足りないものはCSWパッケージでインストールしておきます。

前提Perlモジュールのインストール

GD

pkg-get -i pm_gdでインストールできます。

SNMP

これはucd-snmpを要求しているのですが、残念ながらCSWパッケージにはありません。
SNMP機器の監視が必要な場合はCPAN等を使ってインストールする必要があります。

net-snmpはCSWパッケージがあるので、pkg-get- -i pm_netsnmpでインストールしておきました。意味ありませんが 😛

LWP::UserAgent

libwww-perlのことなのでpkg-get -i pm_libwwwでインストールできます。

Crypt:SSLeay

pkg-get -i pm_cryptssleayでインストールできます。

URI

pkg-get -i pm_uriでインストールできます。

Net::SMTP

CSW版Perlには最初から入ってます(/opt/csw/share/perl/5.8.x/Net/SMTP.pm)。

Big Sisterのインストール

bsユーザ追加

# useradd bs

configure, make

configureオプションではperlのパスを指定できないため、PATH環境変数を設定してconfigureを実行し、/opt/csw/bin/perlが最初に見つかるようにします。

# env PATH=/opt/csw/bin:$PATH ./configure
# make install

以上で/usr/local/lib/bs配下(default prefix)にインストールされます。
INSTALLドキュメントにも記載されていますが、agentのみ(install-agent)、serverのみ(install-server)といったターゲットを指定することもできます。

uxmon-net準備

/usr/local/lib/bs/adm/uxmon-netにDESCRで対象ホストの

DESCR           features=unix,sysv,solaris              localhost

それからuxmonがroot権限で動作するようにuxmon-asrootファイルを用意します。中身は空でOK。

# touch /usr/local/lib/bs/adm/uxmon-asroot

最初は無用なトラブルを避けるためにroot権限で動かしてしまいますが、最終的にrootで動かすかどうか、セキュリティ的な課題も含めて、カストマイズを進めてから決めるつもりです。

初期動作確認

とりあえずこの状態で起動してみますと

# /etc/init.d/bigsister start
Starting Big Sister ...
  Monitor bsmon                                     OK
  Server bbd                                        OK
  Agent uxmon for runxmon-net

となりuxmonのところでだいぶ待たされた挙句、結局立ち上がってくれません。
x86のDebianに入れたやつはあっけなく動いたんですけどね…。

May 072006
 

ZABBIXのItem設定がデフォルトではおかしかったHost.UnixテンプレートのItem設定を修正。いずれも乗数の設定値(Custom multiplier)に誤りがあります。

ディスクの空き領域値が少ない

Custom multiplierが1になっているので1024にする。

  • Description:Free disk space on $1(Keyはvfs.fs.size[/,free]等)

ディスクの総容量、使用量が0になっている

Custom multiplierが0になっているので1024にする。

  • Description:Total disk space on $1(Keyはvfs.fs.size[/,total]等)
  • Description:Used disk space on $1(Keyはvfs.fs.size[/,used]等)

それとUpdate interval (in sec)の最大値は0xFFFF、つまり65535みたいです。86400秒(つまり1日)に設定しようと思ってたら”Warning. Incorrect value for [delay]”などと言われて気がつきました。

Apr 282006
 

1.1beta3で動かしていたサイトを1.1beta9にアップグレードした際、既存のHost定義をTemplate Link化してみました。
Template Link化によって、Template側の定義変更がTemplateにLinkしているHost全体に波及するようになります。Classを継承するようなイメージです。
ちょっと前のbeta版からの機能ですが、Non Template LinkからTemplate Linkに変えるときに、今までのデータが引き継げるのか不安だったので躊躇していましたが、私の環境では問題なく移行できています。

実際にやることはConfiguration->Hosts画面で、対象Host定義の”Link with Template”でTemplateを選択して保存するだけです。
TemplateにないItem定義は独自に追加したエントリとして残ります。

全ての環境で問題なく移行できるとは限りませんので、バックアップ所得は忘れずに。

Apr 252006
 

ZABBIX 1.1beta9 releasedのWhat’s Newを見る限り、結構な機能追加がされてます。

1.1beta8のRelease notesでは

The release introduces feature freeze for 1.1 series of releases. No more new functionality will be implemented.

と言ってたのに。

早速Solaris 10のserverとagent、そしてWeb Frontendsを入れ替えましたが、ディスクやトラフィック情報が正しく取得できない(多分)ところは直っていないようです。
beta8とのdiffとってもsrc/libs/zbxsysinfo/solaris以下は変わってませんから、あたりまえですけどね 😛

Mar 202006
 

MySQLをセットアップしたのはこのためでした。
ZABBIX 1.1beta7のサーバ、エージェントともにSolaris 10で動かしてみます。

configure実行

gccにはPATHを通していないので、CCに/usr/sfw/bin/gccを指定してconfigureを実行します。makeは/usr/ccs/bin/makeを使う想定です。

# CC=/usr/sfw/bin/gcc ./configure --prefix=/opt/zabbix \\
> --enable-server --enable-agent --with-mysql=/opt/csw/mysql4 \\
> --with-net-snmp=/opt/csw

サーバ版をビルドするにはMySQLのヘッダファイルが必要になりますので、mysql4develをpkg-getで入れてあります。
LDAPサポートも追加しようと思ったのですが、ビルド時にシンボル未解決エラーになってしまったので、とりあえず省いてます(CSW版のopenldap_develパッケージ利用)。

make, make install

# make
# make install

DB作成, 初期データ投入

$ /opt/csw/mysql4/bin/mysqladmin -u root -p create zabbix
$ /opt/csw/mysql4/bin/mysql -u root -p create zabbix < create/mysql/schema.sql
$ /opt/csw/mysql4/bin/mysql -u root -p zabbix < create/data/data.sql
$ /opt/csw/mysql4/bin/mysql -u root -p zabbix < create/data/images.sql

images.sqlには画像ファイルの絶対パスが記述されていますので、必要に応じて修正してから実行します。

起動スクリプト準備

misc/init.d配下に各種OS用の起動スクリプトが用意されてますので、合いそうなものをコピーして修正します。私はmisc/init.d/tru64/zabbix_agentdをベースに作成しました。

設定ファイル準備

misc/conf配下にserver,agentd用の設定ファイルが用意されてますので、/etc/zabbix配下にコピーして修正します。

Web管理画面準備

WebサーバはCSWパッケージ版のApacheです。PHPもCSW版のPHP5となります。

フロントエンドPHPファイル群のコピー

# /usr/sfw/bin/gtar cf - frontends | /usr/sfw/bin/gtar xvf - -C /opt/zabbix

DB接続指定

frontends/php/include/db.inc.phpにDBの接続指定を記述します。

Apache設定用意

/opt/csw/apache2/etc/extra/httpd-zabbix.confを用意します。

Alias       /zabbix/ "/opt/zabbix/frontends/php/"
<Directory "/opt/zabbix/frontends/php">
    DirectoryIndex index.php
    Allow from all
</Directory>

上記ファイルのinclude指定を/opt/csw/apache2/etc/httpd.confに追加します。

Include etc/extra/httpd-zabbix.conf

Apache再起動

# /etc/init.d/cswapache2 restart

http://localhost/zabbix/にアクセスし、ログイン画面が表示されたらひとまず成功。
初期登録ユーザはAdminでパスワード空でログインできます。

監視対象ホスト追加

さし当たってWeb管理画面から自ホスト(Solaris 10)を追加します。テンプレートはHost.Unixです。
サービス、プロセス、プロセッサロード等は正常に収集できているようですが、DISK関係の値が正しくありませんでした(Total disk space onやUsed disk space onが0)。

ひとまずここまで。

Mar 162006
 

これを設置しているXREA.COMはFTP over SSLに対応しています。
セキュリティ確保のためにも積極的に利用したいのですが、著名なFFFTPはSSL非対応なので、対応クライアントを探すのに一苦労です。

FileZilla

GPLです。
しかしXREA.COMはFileZillaがファイルリスティングに使用するLISTコマンドを受け付けてくれないようで、使用することができません(NLSTはOK)。
FFFTPにように、クライアント側でリスティングに使うコマンドを設定できたらいいんですけどね。
詳しくはXREA SUPPORT BOARDの FTPS(FTP over SSL)についてをどうぞ。

Core FTP LE

GPLではありませんが、Freeで利用できます。
コントロール、データコネクションともにSSL対応で、XREAでも使えます。
より高機能なPro版も同サイトで配布されています。

gFTP

GPLで、GTKベースのグラフィカルなftpクライアントです。GNOMEデスクトップ環境には標準的に入っているのではないかと思います。
しかし残念ながらコントロールコネクションのみのSSL対応となります。

LFTP

キャラクタベースになりますが、結局これを使ってます。~/.lftp/rcに以下のような記述をしておけば、強制的にSSL接続にすることができます。

set ftp:ssl-force/site.example.com on
set ftp:ssl-protect-data/site.example.com on

個人的にはXREA.COMがLISTを受け付けて、FileZillaが使えるようになることを期待しています。