2005年11月アーカイブ

FreeBSD 6.0 RELEASE なんてものが出たらしい。
5系は短かったな~などと思いつつ、うちのサーバもいい加減4系からアップグレードしたいな~と思う。
しかし、サーバのメジャーバージョンアップは、失敗すると怖いので、なかなか踏み切れないでいた。
そろそろハード的にも限界だよな~と思ってうちの大蔵大臣に相談したところ、なんと買い替えの許可が出てしまった。
# 買い替えと言えば、Winのデスクトップも、ノートも、無線LANも、有線LANも、プリンタも新調したいんだけどな~・・・。

・・・コホン。
さて、サーバに求められる要件としては、
  • 省電力(でもACアダプタは嫌)
  • HDDはSATAのRAID0かRAID5で、交換が容易であること
  • 筐体はミニタワーかキューブくらい
  • FreeBSDが動く
  • LAN * 2(PCIのLANカードは余りまくってるが)
みたいな感じ。
省電力と言う観点から言うと、CPUはPentiumM(CeleronM)かGeode NXあたり。あとは、それに合うマザー(グラフィック、LAN等内臓のもの)。
問題はHDDで、故障交換や将来の増設を考えてケース等を選択するか、それともHDDの寿命=マシンの寿命と考えて、RAID等はやめて、単発200Gくらいので済ませてしまうか・・・。
とりあえず、もうちょっと情報収集をしてみないと、最近のPC事情には疎い私なのであった。
最近体力の衰えを感じるので、一からパーツで組むのはそろそろ卒業したいところ。
そこで、ショップブランドのPentium M 搭載の奴を調べていたところ、韋駄天と言うのを発見!
BTOで、メモリを1GB(512M*2)、HDDを200G、キーボードとマウスをなしなしにしたら、79,590円に!
他と比べてもかなり安いんじゃないでしょうか?
ちなみに、送料が2,100円かかるんだけど、この会社の場所がうちと同じ区で、会社の隣の町みたいなのよね~。自分で取りにいけないかしら(笑)
今日申し込めば、11/19が納期だそうで、購入ボタンを押してしまいそうな自分がいます・・・。

もう少し調べてみました。韋駄天の奴は、ChipsetがIntel の 855GME で、選べるCPUはFSB400MHz(マザー的には FSB533MHzもいけるし、SATAもいけるけど、BTOのメニューにない)
んで、ICH4で、RAIDはPromiss。メモリはシングルチャネル。

んで、最近では Intel 915 + ICH6のマザーもあって、MSIとかPFUとかが出してるらしい。
この辺を積んでるマシンはないかな~と調べたところ、OLIOSPECとか言うところがMSIのマザーで出してるっぽい。
好みの構成にしたら12万・・・。
まだまだ出たばっかりで、FreeBSDが動くかどうかがわからないのがつらいところ。

む~、どうしようかな~。
新しいハードの購入申し込みをしたので、届くまでの下調べと言うことであいてるマシンに FreeBSD6 を入れてみた。パッケージを選ぶのが面倒だったので、X-Kern-Developper でインストールした。
4系との違いで気がついたところは・・・
  • 起動時のメニューが変わった(safeモードとかあるのは、時代の流れなんだろーか)
  • /etc/defaults/make.conf が存在しない
  • /etc/rc.d と言うディレクトリができた
  • /sys/i386/conf/LINT が、 /sys/conf/NOTES と /sys/i386/conf/NOTES と言うファイルに変わった
  • /usr/ports/INDEXがなくて、/usr/ports/INDEX-6 がある。
インストールが終わったら、早速 ports から cvsup をインストールして、RELENG_6に cvsup してみる。
と、uname -v が FreeBSD 6.0-STABLE #1 となった。
さて、これからサーバ移行計画を練らなくちゃ~。
サーバ移行計画を考える。
  1. 新ハードを家庭内LANに接続する。(DHCPクライアントとする)
  2. FreeBSD 6.0-RELEASE をインストールする。
    • パーティションは以下のようにする。
      /      128M  (従来通り)
      swap     2G  (メモリ*2。いらないけど)
      /usr    30G
      /var    50G
      /opt    20G  (予備)
      /jail1  20G
      /jail2  20G
      /old    残り (過去の環境のバックアップ)
      
  3. ports から cvsup をインストールする。
  4. cvsup で RELENG_6 を入れる。
  5. カーネルコンフィグを作成し、make world/kernel する。
  6. 古いマシンのdiskの中身を、/old にコピーする。
  7. ports から、sysutils/portupgrade をインストールする。
  8. 古いマシンの /usr/local/etc/pkgtools.conf をコピーする。
  9. portupgrade を使って、以下をインストールする。
    • 通信関係
      • net/poptop
      • net/linuxigd
      • net/isc-dhcp3-server
      • japanese/samba3
    • DB関係
      • databases/postgresql74-server
      • databases/mysql41-server
    • メール関係
      • mail/postfix
      • mail/drac
      • mail/courier-imap
      • mail/qpopper
      • mail/procmail
      • mail/mailman
      • mail/p5-Mail-SpamAssassin
      • security/f-prot
      • security/amavisd
      • security/gnupg
    • Web関係
      • www/apache2
      • www/mod_jk2-apache2
      • www/mod_perl2
      • devel/subversion
      • www/squid
      • lang/php4
      • mail/ilohamail
      • japanese/squirrelmail
      • net/cacti
      • japanese/webalizer
      • java/jdk15
      • www/jakarta-tomcat41
    • その他
      • japanese/man
      • japanese/emacs-emcws
      • japanese/namazu2
      • net/vnc
      • security/portaudit
      • security/tripwire
      • sysutils/screen
  10. 必要なファイルを古いマシンからコピーする。
  11. 必要な設定を行う。
  12. LANケーブルをつなぎ変えて動作確認する。
sambaをバージョンアップしたら、日本語のファイル名が化けるようになってしまいました。
ログを見ると、
[2005/11/14 18:28:52, 0] lib/charcnv.c:init_iconv(150)
  init_iconv: Conversion from eucjp-ms to UTF-16LE not supported
みたいなエラーがぞろぞろと出ます。
で、ldd smbd してみると、/usr/local/lib/libgiconv.so.2 なんてのにリンクしています。
これはなんじゃ?と思って /var/db/pkg/*/+CONTENTS から grep してみますが、ひっかかりません。
日付も2002年と古いので、さくっと削除して samba を再インストールしたら、無事に文字化けは直りました。
昨日の朝マシンが届いたので、早速サーバリプレース開始。
予定通りdhcpクライアントにしてOSインストール。
ここではまったのが、以下の二つ。
  • 一つのスライスに作れるパーティションの数の上限を知らなかったので、プランどおりだとパーティションが作れなかった。
    →スライスを二つにして作り直した。
  • natだと、ftpがそのままだと通らなくて、ftp passiveにする必要があった。
    mediaの選択を間違えると、何故かネットワークインターフェイスがdownしてしまい、インストーラの起動からやり直す必要があった。
インストールが終わったら、cvsupを待つ間にカーネルコンフィグファイルと、make.confを作成する。
いつものように make buildworld, buildkernel, installkernel, install world。再起動してmergemaster。
古いマシンから /etc/passwd, group 系を移す。そのままコピーは怖いので、vipwとか使いながら適当にやる。
ここでわかったのが、make.confに書いた WHEELSU が効いていない。
ソースを読んでみたら、WHEELSU で ifdef してるところがないじゃないですか!どこかのタイミングで、WHEELSU の仕様はなくなってしまったようです。ぐぐって見ても全然ひっかからなかったので、FreeBSD6の人は WHEELSU は使ってないのかしらん?
後は、予定通りひたすらportsからインストール。
subversionとjdk1.5 がコンパイルエラーで入りませんでした。
sshとtarを使って古いマシンのファイルを新しいマシンの /old に全てコピー。
そして、設定ファイルとデータを正しい場所に全て反映して(ここを詳しく書かないと意味がないんだけど)、準備完了です。
2台のマシンを落とし、ケーブルを繋ぎなおします。
新しいマシンを起動すると、なんかエラーがでろでろ出ます。
ログインしてみると、ネットワークパケットが通らないみたい。でも、pppは繋がっています。
何度か再起動しながら調べてたのですが、単純ミスで ipfilterの起動を rc.conf で指定し忘れただけでした。
なんとなく動いたっぽいので、まずはメール送信チェック。
メールは普通に行くみたいですが、amavisが要求するperlのパッケージが少し足りないみたいだったので足しておきます。
続いて、メーリングリストに投稿してみる・・・と、届きません。_
mailmanのログを見てみると、権限が足りなくてファイルが書けないようだったので、書けるように直します。
この後、web系でも同様にかけないエラーで動かない部分が多発してしまいました。
ただtarでコピーしたたけだと、うまくいかないんですかね。tarにpオプションでもつけるべきだったのかしらん・・・。
後は、sambaさんが特定のディレクトリにアクセスしたときに死んでくれます。
これは、そのディレクトリに変なファイル名のファイルがあるのがいけないらしく、ファイルを削除したら落ちなくなりました。
その後も、web系でいくつかのperlモジュールを追加したり、cactiの設定を見直したりして、なんとなく通常営業はできそうな雰囲気になりました。
新サーバもなんとなく動いているようなので、dmesgを公開してみる。
Copyright (c) 1992-2005 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 6.0-STABLE #0: Sat Nov 19 14:12:34 JST 2005
    root@false.flets.cds.ne.jp:/usr/obj/usr/src/sys/FALSE
WARNING: debug.mpsafenet forced to 0 as ipsec requires Giant
WARNING: MPSAFE network stack disabled, expect reduced performance.
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Pentium(R) M processor 1.70GHz (1700.07-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x6d6  Stepping = 6
  Features=0xafe9fbbf
  Features2=0x180
real memory  = 1039007744 (990 MB)
avail memory = 1007796224 (961 MB)
ACPI APIC Table: 
ioapic0  irqs 0-23 on motherboard
npx0: [FAST]
npx0:  on motherboard
npx0: INT 16 interface
acpi0:  on motherboard
acpi0: Power Button (fixed)
pci_link0:  irq 3 on acpi0
pci_link1:  irq 9 on acpi0
pci_link2:  irq 10 on acpi0
pci_link3:  irq 5 on acpi0
pci_link4:  irq 5 on acpi0
pci_link5:  irq 10 on acpi0
pci_link6:  irq 11 on acpi0
pci_link7:  irq 11 on acpi0
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
cpu0:  on acpi0
acpi_throttle0:  on cpu0
acpi_button0:  on acpi0
acpi_button1:  on acpi0
pcib0:  port 0xcf8-0xcff on acpi0
pci0:  on pcib0
pci0:  at device 0.1 (no driver attached)
pci0:  at device 0.3 (no driver attached)
pcib1:  at device 1.0 on pci0
pci1:  on pcib1
agp0:  port 0xe300-0xe307 mem 0xe0000000-0xe7ffffff,0xe8100000-0xe817ffff irq 16 at device 2.0 on pci0
agp0: detected 32636k stolen memory
agp0: aperture size is 128M
pci0:  at device 2.1 (no driver attached)
uhci0:  port 0xe000-0xe01f irq 16 at device 29.0 on pci0
uhci0: [GIANT-LOCKED]
usb0:  on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1:  port 0xe100-0xe11f irq 19 at device 29.1 on pci0
uhci1: [GIANT-LOCKED]
usb1:  on uhci1
usb1: USB revision 1.0
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2:  port 0xe200-0xe21f irq 18 at device 29.2 on pci0
uhci2: [GIANT-LOCKED]
usb2:  on uhci2
usb2: USB revision 1.0
uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
ehci0:  mem 0xe8180000-0xe81803ff irq 23 at device 29.7 on pci0
ehci0: [GIANT-LOCKED]
usb3: EHCI version 1.0
usb3: companion controllers, 2 ports each: usb0 usb1 usb2
usb3:  on ehci0
usb3: USB revision 2.0
uhub3: Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub3: 6 ports with 6 removable, self powered
pcib2:  at device 30.0 on pci0
pci2:  on pcib2
skc0:  port 0xd000-0xd0ff mem 0xe8040000-0xe8043fff irq 20 at device 0.0 on pci2
skc0: Marvell Yukon Lite Gigabit Ethernet rev. A3(0x7)
sk0:  on skc0
sk0: Ethernet address: 00:01:80:xx:xx:xx
miibus0:  on sk0
e1000phy0:  on miibus0
e1000phy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX-FDX, auto
skc0: [GIANT-LOCKED]
skc1:  port 0xd100-0xd1ff mem 0xe8044000-0xe8047fff irq 21 at device 1.0 on pci2
skc1: Marvell Yukon Lite Gigabit Ethernet rev. A3(0x7)
sk1:  on skc1
sk1: Ethernet address: 00:01:80:xx:xx:xx
miibus1:  on sk1
e1000phy1:  on miibus1
e1000phy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX-FDX, auto
skc1: [GIANT-LOCKED]
atapci0:  port 0xd200-0xd27f,0xd300-0xd3ff mem 0xe8049000-0xe8049fff,0xe8000000-0xe801ffff irq 22 at device 2.0 on pci2
ata2:  on atapci0
ata3:  on atapci0
ata4:  on atapci0
fwohci0:  mem 0xe8048000-0xe8048fff irq 23 at device 3.0 on pci2
fwohci0: [GIANT-LOCKED]
fwohci0: OHCI version 1.0 (ROM=1)
fwohci0: No. of Isochronous channels is 8.
fwohci0: EUI64 00:01:80:13:94:5c:05:41
fwohci0: Phy 1394a available S400, 2 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0:  on fwohci0
fwe0:  on firewire0
if_fwe0: Fake Ethernet address: 02:01:80:xx:xx:xx
fwe0: Ethernet address: 02:01:80:xx:xx:xx
sbp0:  on firewire0
fwohci0: Initiate bus reset
fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
firewire0: bus manager 0 (me)
isab0:  at device 31.0 on pci0
isa0:  on isab0
atapci1:  port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xf000-0xf00f at device 31.1 on pci0
ata0:  on atapci1
ata1:  on atapci1
pci0:  at device 31.3 (no driver attached)
pci0:  at device 31.5 (no driver attached)
acpi_tz0:  on acpi0
fdc0:  port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0
fdc0: [FAST]
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A
ppc0:  port 0x378-0x37f,0x778-0x77b irq 7 on acpi0
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
ppbus0:  on ppc0
ppbus0: IEEE1284 device found /NIBBLE/ECP
Probing for PnP devices on ppbus0:
ppbus0:  PRINTER BJL,BJRaster3,BSCCe
plip0:  on ppbus0
lpt0:  on ppbus0
lpt0: Interrupt-driven port
ppi0:  on ppbus0
atkbdc0:  port 0x60,0x64 irq 1 on acpi0
atkbd0:  irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0:  irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model Generic PS/2 mouse, device ID 0
pmtimer0 on isa0
orm0:  at iomem 0xd0000-0xd0fff,0xd1000-0xd1fff on isa0
sc0:  at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled
vga0:  at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 1700066297 Hz quality 800
Timecounters tick every 1.000 msec
IPsec: Initialized Security Association Processing.
IP Filter: v4.1.8 initialized.  Default = block all, Logging = enabled
ad0: 194481MB  at ata0-master UDMA100
acd0: CDROM  at ata1-master UDMA33
Trying to mount root from ufs:/dev/ad0s1a
Accounting enabled
Promise PDC20579 SATA150 controller なんて出てくるから、SATAの方も繋げば使えるのかも知れない。
問題なのはネットワークインターフェイスで、messagesにときどき以下のメッセージが出るのです。
ぐぐってみたら、まだまだドライバが未完成なのか、解決に至ってはいないようでした。
sk0: watchdog timeout
sk0: link state changed to DOWN
sk0: link state changed to UP
参考URL: http://sources.zabbadoz.net/freebsd/if_sk.html

ちなみに、jdkは1.5を諦めて1.4を入れて解決。subversionに関しては 何故か Makefileの中で APXSと言うマクロが読めなくて失敗してるっぽかったので、makeのオプションに APXS=/usr/local/sbin/apxs を追加してインストールできました。
※ 面倒なので動作確認してませんが・・・。
せっかくPentiumMになったので、speedstepを有効にしてみることにする。
まずは、カーネルモジュールの cpufreqを有効にする。
カーネルコンフィグに
# The cpufreq(4) driver provides support for non-ACPI CPU frequency control
device          cpufreq
と書くか、/boot/loader.conf に
cpufreq_load="YES"
と書く。
これで、起動時のメッセージに
Nov 20 21:13:45 false kernel: est0: <Enhanced SpeedStep Frequency Control> on cpu0
Nov 20 21:13:45 false kernel: p4tcc0: <CPU Frequency Thermal Control> on cpu0
なんて出るようになった。
後は、rc.confでpowerd_enable="YES"とかにしてやれば良い。
手動でpowerd -v とかやると動きが見れるし、
# sysctl dev.cpu.0.freq
で現在の周波数が見れる。
ニューマシンになって、はじめて印刷をしてみたら、以下のエラーが出て、印刷がありえないほど遅い。
Nov 23 12:10:22 false kernel: stray irq7
Nov 23 12:10:23 false last message repeated 3 times
Nov 23 12:10:23 false kernel: too many stray irq 7's: not logging anymore
Nov 23 12:10:24 false kernel: Interrupt storm detected on "irq7: lpt0"; throttling interrupt source
ちょっと調べてみたら、以下が見つかった。

> hint.ppc.0.flags="0x20"
Flags=0x20 means disabling IRQ and use polling instead. If you add 0x08 it also puts the port in enhanced capability mode. So try flag=0x28, and use 0x20 if that doesn't work.
/boot/device.hints に、hint.ppc.0.flags="0x20"または0x28を追加すれば良いらしい。
再起動するのが嫌だったので、kenv(1)コマンドで書き換えてみたけど効果なし。
やはり再起動が必要なのかしらん・・・。

maillogに、spamd関連のメッセージがたくさん出るので調べてみたら、


spamd dies unexpectedly: prefork: ordered child to accept, but child reported state '1'


と言う事らしい。
早く直ってくれないかな・・・。

当面の対策として、上記バグのコメントにあったように、spamdの起動オプションに --round-robin を追加してみる。これで効果があると良いんだけど。

messagesに大量のエラーが出てる。
とりあえず同じ症状の人は見つけたけど、いまいち理解できなくて、対策もわからない。


My 5.x machines are regularly reporting that the kernel is flipping between FLL and PLL mode

As I mentioned, there seems to be nothing wrong with messages 6001 and 2001. Kernel time discipline (and probably kernel time discipline messages) could be disabled via ntpdc control message's or ntpd config-file's "disable kernel" option. I think this also would disable nano-second clock-disciplining ability, so I would left it enabled. I never tried to disable kernel time discipline, so I can't imagine what would happen in real life ...


なんてのを見ると、気にしなくても良いのかな。
しかし、ログが邪魔だよなあ・・・。

FreeBSDのsuからWHEELSUがなくなったのは、5.0かららしい。
で、代わりにpamになったと言うのだけれど、pamでWHEELSUと同じことを実現する方法がわからない。

とりあえず、pam_unix.so の引数で、ユーザ本人のパスワードでsu できることはわかったが、これだと root 本来のパスワードでの su は出来なくなる。
なんてのを発見したので、pam_unixのマニュアルを見てみたところ、auth_as_self なんてオプションがあるらしい。
/etc/pam.d/su を見ると、中で /etc/pam.d/system をincludeしていて、結局のところauthの部分は以下のような形になっている。
auth            sufficient      pam_rootok.so           no_warn
auth            sufficient      pam_self.so             no_warn
auth            requisite       pam_group.so            no_warn group=wheel root_only fail_safe
auth            sufficient      pam_opie.so             no_warn no_fake_prompts
auth            requisite       pam_opieaccess.so       no_warn allow_local
auth            required        pam_unix.so             no_warn try_first_pass nullok
最後の行が、pam_unixでの認証を行っているところで、suしたい相手のパスワードで認証されることになる。
これにそのまま auth_as_self をつけてしまうと、今度はrootのパスワードでsuできなくなるので、最後の行の前に1行追加してみる。
auth           sufficient      pam_unix.so             no_warn try_first_pass nullok auth_as_self
これで、wheelグループに所属している人だけが、自分のパスワードまたはrootのパスワードで、rootにsuできるようになった。

・・・・まてよ?pam_groupには、root_onlyと言うオプションがあるけど、pam_unixにはそんなオプションないよなあ。
% su - otheruser
Password: (otheruserではなく自分のパスワード)
やっぱり、suできちゃうじゃん!
ん~、駄目だ、これは使えない・・・。
どうやったらpamでWHEELSUと同じことができるんですかねえ・・・?
powerdのおかげで、CPUの周波数が動的に変化するようになった。
動的に変化するならば、グラフで見たいところです。
そこで、この辺を参考にグラフ化してみました。
まずは、普通に5分周期のデータソースを作って、下のようなスクリプトでグラフにしてみた。
#!/usr/bin/perl

$ret = `sysctl -n dev.cpu.0.freq`;
$ret =~ s/\n//;

print "$ret";
この方法だと、cronで5分毎に起動される cactiのpoller.phpから上記スクリプトが呼ばれて、rrdが更新されると思うんだけど、普段はだいだい75MHzで動いているはずのシステムなのに、グラフでは1GHzくらいが表示されてしまう。
poller.phpの実行でcpuが忙しくなってしまったところを計測してしまうのかな?
そこで、別のスクリプトを作って1分ごとに周波数を記録し、その平均を5分の値にすることにした。(それこそrrdtoolを使えば良いんだけど、面倒だったのでシェルスクリプトにした)
#!/bin/sh
FILE=/usr/local/share/cacti/rra/cpufreq.dat

val=`sysctl -n dev.cpu.0.freq`
echo $val >> $FILE
tail -5 $FILE > $FILE.tmp
mv $FILE.tmp $FILE
このシェルスクリプトを、cronで1分毎に実行してやる。
そして、cacti用のスクリプトは以下のようにする。
#!/usr/bin/perl
$total = 0;
$min = 2000;
$max = 0;
$count = 0;

open(FILE, "/usr/local/share/cacti/rra/cpufreq.dat");
while(<FILE>) {
  chomp;
  $total += $_;
  $count++;
  if ($max < $_) {
    $max = $_;
  }
  if ($min > $_) {
    $min = $_;
  }
}
close(FILE);

$ret = $total / $count;

print "average:$ret maximum:$max minimum:$min";
手抜きなので、データファイルに1件もデータがない場合の動作は保証しない。

そして、cactiのコンソールから以下の手順でグラフにしてみた。
  1. Data Input Methods の追加
    1. 左側のメニューから Data Input Methods を選択し、右上の「Add」を押す。
    2. Data Input Methods の name に「Unix - CPU Frequency」、Input Typeに「Script/Command」、Input Stringに先ほどのスクリプトのパス「perl /scripts/cpufreq.pl」を入力する。
    3. Createボタンを押してから、Output Fields のところに「average」、「maximum」、「minimum」の3つを追加する。
    4. Saveを押す。
  2. Data Sourcesの追加
    1. 左側のメニューから Data Sources を選択し、右上の「Add」を押す。
    2. Hostに「Localhost」を選び、Createを押す。
    3. Data Source の name に「Localhost - CPU Frequency」、Data Input Methodに「Unix - CPU Frequency」を入力する。
    4. Data Source ItemのInternal Data Source Nameに「average」、Maximum Valueに2000を入れてCreateを押す。
    5. Data Source ItemのNewボタンを押して、averageと同じようにmaximum, minimumを追加する。
      このとき、Output Fieldをそれぞれあわせる。
      ※ 何故か、minimumを指定すると正しく rra が作成されないので、この画面の*Turn Off Data Source Debug Mode.をクリックして表示される rrdtool のコマンドラインでrrd ファイルを作成した。
  3. Graphの追加
    1. 左側のメニューから Graph Management を選択し、右上の「Add」を押す。
    2. Hostに「Localhost」を選び、Createを押す。
    3. Graph ConfigurationのTitle に「Localhost - CPU Frequency」、Upper Limitに2000、Vertical LabelにMHzを入力し、Createを押す。
    4. Graph ItemsのAddを押し、以下を追加する。
      Data SourceColorGraph Item TypeConsolidation FunctionText Format
      maximumFF0000LINE2AVERAGEmaximum
      minimum00FF00LINE2AVERAGEminimum
      averageFFF200LINE2AVERAGEaverage
      average-GPRINTLASTCurrent:
      average-GPRINTAVERAGEAverage:
      maximum-GPRINTMAXMaximum:
      minimum-GPRINTMINMinimum:

こうしてできたグラフが以下のような感じ。
graph_27_1.png
2005年11月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

このアーカイブについて

このページには、2005年11月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2005年10月です。

次のアーカイブは2005年12月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.1.1