Solaris覚書 その2
可能な限り、Solarisの流儀で構築していく。
構築する環境は、Solaris-zoneで新規作成したcolony hostとして設定
SolarisZoneの作成
ユーザー作成・環境設定
NTPクライアント・NTPサーバー
net-snmpd
apache2
pkg-getを導入
php5
webmin
mysql
cacti
ここまでをやってみる。
まず、Solaris Zoneの作成から始める。
今回は、現在稼働している他のZoneからコマンドファイルを作成し、新たにZONEを作成する。
Solaris Zoneの作成
(zone1.xmlを見る)
$ cat zone.xml
<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE zone PUBLIC “-//Sun Microsystems Inc//DTD Zones//EN” “file:///usr/share/lib/xml/dtd/zonecf
g.dtd.1″>
<!–
DO NOT EDIT THIS FILE. Use zonecfg(1M) instead.
–>
<zone name=”via” zonepath=”/mnt/data/zone/root” autoboot=”true”>
<inherited-pkg-dir directory=”/lib”/>
<inherited-pkg-dir directory=”/platform”/>
<inherited-pkg-dir directory=”/sbin”/>
<inherited-pkg-dir directory=”/usr”/>
<filesystem special=”/mnt/data/files” directory=”/pub” type=”lofs”>
<fsoption name=”rw”/>
</filesystem>
<network address=”192.168.0.xx/24″ physical=”e1000g0″/>
<network address=”172.16.10.1/24″ physical=”tap0″/>(zone1の設定をexportしてコマンドファイルを作成)
# zonecfg -z zone1.xml export > colony.txt(作成されたcolony.txtを編集)
# vi colony.txt
create -b
set zonepath=/raidbox/zones/colony-zone/root
set autoboot=true
set ip-type=shared
add inherit-pkg-dir
set dir=/platform
end
add net
set address=192.168.0.xx/24
set physical=e1000g0
end(作成したファイルからcolonyZoneを作成)
# zonecfg -z colony -f colony.txt(確認する)
# zoneadm list -vc(Solarisをcolony Zoneへインストール)
#zoneadm -z colony install(インストールされたcolony Zoneを起動)
# zoneadm -z colony boot(コンソールに接続)
# zlogin -C colony(初期設定を行う)
ついでに、Zoneを削除する手順も記載しておく
(Zoneの停止)
# zoneadm -z colony halt(Zone Uninstall)
# zoneadm -z colony uninstall(Zone構成情報削除)
# zonecfg -z colony delete(Zoneの確認)
# zoneadm list -vc
ユーザー作成・環境設定
# useradd -d /export/home/hoge -s /usr/bin/bash
# mkdir /export/home/hoge
# chown -R hoge: /export/home/hoge$ cat ~/.profile
PS1=”[\h@\u]\w> ”
PATH=$PATH:/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/sfw/bin:/usr/sfw/sbin:/opt/csw/bin:/opt/csw/sbin
#DISPLAY=192.168.1.125:0.0
#LANG=C
JLESSCHARSET=japanese
EDITOR=vi
CC=gcc
LD_LIBRARY_PATH=/usr/local/lib:/opt/sfw/lib:/usr/lib:/lib:/etc/lib
LDFLAGS=-L/usr/local/lib:-L/opt/sfw/lib:-L/usr/lib
export PATH DISPLAY LANG JLESSCHARSET EDITOR CC LD_LIBRARY_PATH LDFLAGS
NTPクライアント・NTPサーバー
clientにするには、ntp.clientをntp.confに
Serverにするには、ntp.serverをntp.confにする。クライアントの設定
# cp /etc/inet/ntp.client /etc/inet/ntp.conf
server host
server hostサーバーの設定
# cp /etc/inet/ntp.server /etcinet/ntp.conf
# vi /etc/inet/ntp.conf
server ntp.ring.gr.jp prefer
server ntp.ring.gr.jp
server 127.127.1.0
fudge 127.127.1.0 stratum 10
enable auth monitor
driftfile /var/ntp/ntp.drift
statsdir /var/ntp/ntpstats/
filegen peerstats file peerstats type day enable
filegen loopstats file loopstats type day enable
filegen clockstats file clockstats type day enable# touch /var/ntp/ntp.drift
# svcadm restart ntp
ただし、ZONEでntpは起動する必要なし。GlobalZoneの時間を引き継ぐ?
起動すると、
Aug 7 10:27:17 colony xntpd[8793]: [ID 953130 daemon.error] loop_config: ntp_adjtime() failed: Not owner
Aug 7 10:27:17 colony xntpd[8793]: [ID 266339 daemon.notice] using kernel phase-lock loop 0041, drift correction 0.00000のようにメッセージを吐く
なので、ntpは止めておく
# svcadm disable ntp
NTPはGlobalZoneで設定した。
net-snmpd
Solarisではsnmpdxとsnmpdの両方が稼働している。
snmpdxを起動させずに、snmpdのみで運用する。# vi /etc/sma/snmp/snmpd.conf
(最低限の設定だけ行う)
rocommunity mysubnet 192.168.0.0/24, localhost
rwcommunity myhost localhostここで、現在有効になっているサービスを確認する。
# svcsサービスの一覧が表示される。
# svcs -a | grep snm
online 18:33:24 svc:/application/management/snmpdx:default
のように、snmpdxが起動している。snmpdxを停止して、OS起動時に立ち上がってこないよう サービスを止める。
# svcadm disable snmpdx確認してみる
# svcs -a | grep snm
disabled 8:46:26 svc:/application/management/snmpdx:default停止している。
net-snmpdだけを再起動する。
# svcadm restart sma動作確認
# snmpwalk -c host -v 1 127.0.0.1
SNMPv2-MIB::sysDescr.0 = STRING: SunOS colony 5.10 Generic_127112-07 i86pc
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.3
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (727) 0:00:07.27
SNMPv2-MIB::sysContact.0 = STRING: “System administrator”
apache2
Solaris10ではapache1.3系とapache2.0系が混在している。
ここではapache2.0系で設定する。# cd /etc/apache2
# cp httpd.conf-example httpd.conf
# svcadm enable apache2ブラウザで起動確認する。
pkg-getを導入
# pkgadd -d pkg_get.pkg
(設定ファイルを変更するなら、/opt/csw/etc/pkg-get.conf 変更しなくてもOK)
# pkg-get -U
# pkg-get -D php
# pkg-get -i ap2_modphp5
php5
php5関連を片っ端から入れる。
たとえば# pkg-get -i php5_bz2 php5_curl php5_dba php5_ftp php5_gd php5_gettext php5_mcrypt php5_openssl php5_session php5_snmp
webmin
# svcs -a |grep webmin
legacy_run 18:33:25 lrc:/etc/rc3_d/S99webmin最初から入っているような・・・
# etc/rc3.d/S99webmin status
grep: can’t open /etc/webmin/miniserv.conf
Webmin is stopped設定ファイルがない。
GlobalZoneのwebminを引き継いでいるのかもしれないので、最新版を入れる。
# wget http://nchc.dl.sourceforge.net/sourceforge/webadmin/webmin-1.420.pkg.gz
# pkgrm WSwebmin
# pkgadd -d webmin-1.420.pkg
mysql5
# pkg-get -i mysql5 mysql5test
# cd /opt/csw/mysql5/
# ./bin/mysql_install_db
cacti
# pkg-get -i rrdtool
最初から入っているapache2をやめてcswでインストールしたapache2を使うようにする。
# svcadm disable apache2cswapache2の起動ファイルを作成
cat /etc/init.d/apache2
#!/sbin/sh
#
# Copyright (c) 2001 by Sun Microsystems, Inc
# All rights reserved.
#
#ident “@(#)mysql 1.1 01/09/24 SMI”case “$1″ in
start)/opt/csw/apache2/sbin/apachectl start
;;
stop)
/opt/csw/apache2/sbin/apachectl stop
;;
*)
echo “Usage: $0 { start | stop }”
exit 1
;;
esac
exit 0# /etc/init.d/apache2 start
ブラウザで確認
Cactiをインストールしたディレクトリにaliasを張る。
/opt/csw/apache2/etc/httpd.confの一番後ろにInclude etc/myconf/*.confを書き足す。
# mkdir /opt/csw/apache2/etc/myconf
Alias /cacti/ /opt/cacti/
<Directory /opt/cacti/>
DirectoryIndex index.php
Options -Indexes
AllowOverride all
order deny,allow
deny from all
allow from 127.0.0.1
Allow from 192.168.0.0/24
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc on
php_flag track_vars on
</Directory># /etc/init.d/apache2 stop;/etc/init.d/apache2 start
cacti本体のインストール
# wget http://www.cacti.net/downloads/cacti-0.8.7b.tar.gz/opt/cactiに展開してcactiの設定に入る。
# mysqladmin --user=root create cacti
# mysql cacti < cacti.sql
# mysql --user=root mysql
# GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'somepassword';
# flush privileges;# vi include/config.php
# chown -R cactiuser rra log
# crontab -e
(crontabは、/var/spool/cron/crontabsに保存される)後は、ブラウザで設定する。
一通り設定してみたが、グラフが作成されない。パスの問題なのかな・・・
半日ほどいろいろ触ったりgoogle先生に聞いてみたりしてようやくグラフが表示できました。
ものすごく簡単な理由でして、cactiのバージョンによってRRDtoolのバージョンも注意しないとダメって事。で、pkg-getでインストールしたRRDtoolは1.2系のようで、cacti-settingにあるRRDtoolを1.2に変更するだけでOK
crontabは、
0,5,10,15,20,25,30,35,40,45,50,55 * * * * . /path/profile; /opt/php/bin/php /opt/cacti/cacti-0.8.6b/poller.phpこんな感じでOKかと。
ついでに、LD_LIBRARY_PATHも設定しておこう。solarisの場合は、以下のように指定する。
# crle -c /var/ld/ld.config -l /usr/lib:/usr/ucblib:/usr/local/lib:/opt/sfw/lib









