muninの導入と設定についての説明資料

ネットワーク監視ツールである「munin」についても、導入の概要説明をしました。
その際のパワーポイント資料もUPしてみます。

このツールは去年の中頃にGIGAZINE(http://gigazine.net/)で紹介されてから、少しずつ広まり始めた感じですね。

大まかな特徴

  • 導入が簡単 (WindowsLinuxも)
    • ソースからの導入は少し大変かも
  • いろいろな種類のグラフを表示できる

資料内容

  • Muninの特徴
  • Muninの導入
  • Muninの設定 (Linuxマネージャ)
  • Muninの設定 (Linuxエージェント)
  • その他の機能

このツールはもう少し調査した上で、実際の運用も考えているところです。

MRTGの導入と設定についての説明資料

先日、社内でMRTGの説明会をさせていただきました。その際に使用したパワーポイント資料です。

SlideShareというサービスを使ってみました。
ちょっと重たいですね。それと微妙にレイアウトが崩れてしまってますが気にせずUPしてみます。
ツッコミ等があればなんなりと!

※2009/2/8 SlideShareがあまりに重たいので、リンクを外しました。

資料内容

  • MRTGの特徴
  • MRTGの動作概要
  • 画面イメージ
  • MRTGの良い点
  • MRTGの良くない点
  • SNMPとは
  • SNMPの導入
  • SNMPの設定
  • snmpd.conf
  • SNMPのセキュリティ対策
  • MRTGの導入(CentOS 5.1)
  • MRTGの設定
  • MRTGの実行
  • 参考:使用OID一覧
  • 参考文献

monit(プロセス監視デーモン)

プロセスを監視して、自動的に再起動なども行ってくれる。
こんなツールがあるんだ。覚えておこう。

■プロセスの監視を行う デーモン monit
http://labs.unoh.net/2008/03/_monit.html

■システムマネジメントツール(Monit)の導入
システムマネジメントツール(Monit)の導入

syslog-ngによるsyslog転送

複数の端末からsyslog転送を行い、そのログを端末毎に振り分けたい。syslogdではそれが難しいため、syslog-ngでやってみようと調べてみました。

syslog-ngの特長 (syslogdとの違い)

  • syslogdで提供される機能はすべて同様に利用できる
  • ログの出力先をアプリケーションやIPアドレス毎に制御できる
  • swatchのように特定の文字列が出力された際にメール通知等のアクションができる
  • udp514ポート以外にTCPや任意のポート番号でログ受信ができる
    • TCPだとログの消失が無くなる
  • root以外のユーザで動作させることができる
    • セキュリティ的に望ましい

syslog-ng Ver.1 と Ver.2 との違い

2006年11月に公開された syslog-ng Ver.2 は、Ver.1 とは以下の違いがあるようです。見たところ Ver.2 を使っておけば間違いなさそうです。

  • マイナー不具合対応
  • 将来の開発を考慮し、ゼロから作り直した
  • CPU使用率の効率改善
  • 異なるタイムゾーン間の変換が可能
  • IPv6対応
  • DNSを使わず、ログにホスト名を含めることが可能
    • /etc/hosts 同様の専用ファイルで →動作に支障を出さずに可動性向上
  • 信頼性の向上(メッセージの喪失防止制御)

参考: インタビュー:syslog-ng 2.0の開発者Balázs Scheidler氏に聞く | OSDN Magazine

やりたいこと

端末A(CentOS 5.1)からログ収集サーバ(CentOS 5.1)へSyslog転送をする

ログ収集サーバへのsyslog-ngインストール

yumによるインストールは残念ながらできないようです。
Identity & Access Management for the Real World | One Identity にソースが置いてありますが、今回はパッケージ(RPM)でのインストールを行います。(ver1.6 まではライブラリとして libol が必要でしたが、ver2 からは eventlog が必要となります)

RPM Search から、以下のCentOS5用RPMパッケージをダウンロード

eventlog-0.2.5-6.el5.kb.i386.rpm (Syslog-ng v2 support library)
ftp://ftp.pbone.net/mirror/centos.karan.org/el5/extras/testing/i386/RPMS/eventlog-0.2.5-6.el5.kb.i386.rpm
syslog-ng-2.0.3-1.el5.kb.i386.rpm
ftp://ftp.pbone.net/mirror/centos.karan.org/el5/extras/testing/i386/RPMS/syslog-ng-2.0.3-1.el5.kb.i386.rpm

syslog-ngからインストールしようとすると、libevtlog.so.0というライブラリが無いと言われてしまうので、「eventlog→syglog-ng」の順にインストール

# rpm -ivh eventlog-0.2.5-6.el5.kb.i386.rpm
# rpm -ivh syslog-ng-2.0.3-1.el5.kb.i386.rpm

syslog-ng 2.0.3-1 では以下のファイルがコピーされます。起動スクリプトやログのローテーション設定も入るようです。

# rpm -qlp syslog-ng-2.0.3-1.el5.kb.i386.rpm
/etc/logrotate.d/syslog
/etc/rc.d/init.d/syslog-ng
/etc/sysconfig/syslog-ng
/etc/syslog-ng
/etc/syslog-ng/syslog-ng.conf
/sbin/syslog-ng
/usr/share/doc/syslog-ng-2.0.3
/usr/share/doc/syslog-ng-2.0.3/AUTHORS
/usr/share/doc/syslog-ng-2.0.3/COPYING
/usr/share/doc/syslog-ng-2.0.3/ChangeLog
/usr/share/doc/syslog-ng-2.0.3/NEWS
/usr/share/doc/syslog-ng-2.0.3/README
/usr/share/doc/syslog-ng-2.0.3/bof-2002-09-27.txt
/usr/share/doc/syslog-ng-2.0.3/dos-2000-11-22.txt
/usr/share/doc/syslog-ng-2.0.3/relogger.pl
/usr/share/doc/syslog-ng-2.0.3/syslog-ng.conf.doc
/usr/share/doc/syslog-ng-2.0.3/syslog-ng.conf.sample
/usr/share/doc/syslog-ng-2.0.3/syslog-ng.txt
/usr/share/doc/syslog-ng-2.0.3/syslog2ng
/usr/share/man/man5/syslog-ng.conf.5.gz
/usr/share/man/man8/syslog-ng.8.gz
/usr/share/syslog-ng
/usr/share/syslog-ng/syslog-ng.vim

自動起動設定

# chkconfig syslog off
# chkconfig syslog-ng on

設定ファイルの修正

# vi /etc/sysconfig/syslog-ng

# 実行ユーザ・グループを 「root → nobody」へ
SYSLOGNG_OPTIONS="-u nobody -g nobody -p /var/run/syslogd.pid"
# vi /etc/syslog-ng/syslog-ng.conf

options {
    	sync (0);               # (DEPLICATED) Obsolete aliases for flush_lines()
    	                        #     ログ出力の際のバッファリング容量 (default:2048)
    	time_reopen (10);       # Connection切断後の再接続WAIT時間
    	log_fifo_size (1000);   # TCPメッセージをバッファリングするメッセージ数
    	long_hostnames (off);   # ホスト名の前に source を出力 (s_sys@CENTOS5)
    	use_dns (no);           # DNSの使用
    	use_fqdn (no);          # FQDNの使用
    	create_dirs (no);       # 転送先ファイルのディレクトリ作成許可
    	keep_hostname (yes);    # hostnameの上書き
    	# ---以下、設定追加---
    	stats (86400);          # syslog-ngの監視報告を 86400 秒間隔で行う (default:600)
    	perm(0644);             # 出力ファイルの Default Permission
    	owner(nobody);          # 出力ファイルの Default Owner
    	group(nobody);          # 出力ファイルの Default Group
	};

source s_sys {
    file ("/proc/kmsg" log_prefix("kernel: "));
    unix-stream ("/dev/log");
    internal();
    udp(ip(0.0.0.0) port(514));     # udp514 でログ待ち受け
};

destination d_cons { file("/dev/console"); };
destination d_mesg { file("/var/log/messages"); };
destination d_auth { file("/var/log/secure"); };
destination d_mail { file("/var/log/maillog" sync(10)); };
destination d_spol { file("/var/log/spooler"); };
destination d_boot { file("/var/log/boot.log"); };
destination d_cron { file("/var/log/cron"); };
destination d_mlal { usertty("*"); };
destination d_host { file("/var/log/syslog-ng/$HOST"); };    # ログの保存場所を指定

#filter f_filter1   { facility(kern); };
filter f_filter2   { level(info..emerg) and
                     not facility(mail,authpriv,cron); };
filter f_filter3   { facility(authpriv); };
filter f_filter4   { facility(mail); };
filter f_filter5   { level(emerg); };
filter f_filter6   { facility(uucp) or
                     (facility(news) and level(crit..emerg)); };
filter f_filter7   { facility(local7); };
filter f_filter8   { facility(cron); };
filter f_filter9   { host("192.168.0.1") and level(info..emerg); };
# ↑端末AのIPアドレスとファシリティ・プライオリティを指定

#log { source(s_sys); filter(f_filter1); destination(d_cons); };
log { source(s_sys); filter(f_filter2); destination(d_mesg); };
log { source(s_sys); filter(f_filter3); destination(d_auth); };
log { source(s_sys); filter(f_filter4); destination(d_mail); };
log { source(s_sys); filter(f_filter5); destination(d_mlal); };
log { source(s_sys); filter(f_filter6); destination(d_spol); };
log { source(s_sys); filter(f_filter7); destination(d_boot); };
log { source(s_sys); filter(f_filter8); destination(d_cron); };
log { source(s_sys); filter(f_filter9); destination(d_host); };
# ↑この行で上記の distinationとfilter を指定

最後にsyslog-ngプロセスを再起動し、設定を反映

# /etc/init.d/syslog-ng restart

ディレクトリを作ったり、syslog-ngが書き込みを行うログファイルの所有者変更したり

# mkdir /var/log/syslog-ng
# cd /var/log/
# chown nobody.nobody syslog-ng/ messages secure maillog spooler boot.log cron

端末AのSyslog転送設定

端末AではSyslog-ngは導入せず、syslogdを使用し転送を行います。

# vi /etc/syslogd.conf

*.*            @192.168.0.2         # 最終行にログ転送サーバのIPアドレスを追加

syslogプロセスを再起動し、設定を反映

# /etc/init.d/syslogd restart

動作確認方法は、端末Aでloggerコマンドを実行し、ログ収集サーバにログが転送されていればOKです。

参考URL

■第9回 安全性の高いログ・サーバへの乗り換えのススメ(1)
http://www.atmarkit.co.jp/fsecurity/rensai/unix_sec09/unix_sec01.html
■第10回 安全性の高いログ・サーバへの乗り換えのススメ(2)
http://www.atmarkit.co.jp/fsecurity/rensai/unix_sec10/unix_sec01.html
■syslog-ng.confの設定(マロンくん.NET)
http://www.marronkun.net/linux/other/syslogng_000047.html
■syslog-ngでログ監査の自動化(マロンくん.NET)
http://www.marronkun.net/linux/other/syslogng_000087.html
■リファレンスマニュアル(英)
http://www.syslog.org/syslog-ng/v2/
■Syslog-ng FAQ(英)
http://www.campin.net/syslog-ng/faq.html

CentOS 5.1のインストール&自分流設定

ソフトの検証をするため、CentOS 5.1 のインストールを行ったのでメモ。
他人様から謹んでいただくばかりで、実はちっとも自分流ではありません。

インストール

  • textインストール
  • 初期導入アプリケーションは「開発環境」のみ

ビープ音を消す

# vi /etc/inputrc
set bell-style none

不要サービスの停止

参考URL → CentOS 5.1 ƒCƒ“ƒXƒg[ƒ‹Œã‚̍ì‹Æ

chkconfig gpm off  # マウス操作は行わないため
chkconfig auditd off  # SELinuxは使用しないため
chkconfig atd off  # cronで代用可能なため
chkconfig bluetooth off  # bluetoothは使用しないため
chkconfig cups off  # プリンタは使用しないため
chkconfig ip6tables off  # IPv6は使用しないため
chkconfig irqbalance off  # マルチCPU環境ではないため
chkconfig mdmonitor off  # RAID構成ではないため
chkconfig setroubleshoot off  # SELinuxは使用しないため
chkconfig mcstrans off  # SELinuxは使用しないため
chkconfig restorecond off   # SELinuxは使用しないため
chkconfig xfs off  # Xを使用しないため
chkconfig yum-updatesd off  # yumは手動で行うため

ユーザ作成とパスワード設定

adduser testuser
passwd testuser

ネットワーク設定

# /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=dhcp
GATEWAY=192.168.XXX.XXX


# /etc/resolv.conf
nameserver 192.168.XXX.XXX


# /etc/init.d/network restart

yumの更新

# yum check-update
# yum update
# yum list > ~/yum.list  # インストールリストをファイルに保存

yum の対象リポジトリに RPMforge を追加

参考URL→CentOS 5.2 で yum の対象リポジトリに RPMforge を追加するには - tilfin's note 跡地

インストール

# yum -y install yum-fastestmirror (1.0.4-3.el5.centos.2)
# yum -y install vim-enhanced (7.0.109-3.el5.3) ...vim-commonも導入される
# yum -y install zsh (4.2.6-1)
# yum -y install screen (4.0.3-1.el5)
# yum -y install httpd (2.2.3-11.el5_1.centos.3)
# yum -y install nkf

sudo設定

# visudo
testuser  ALL=(ALL)  ALL  # testuser にすべての権限を譲渡

zsh設定

$ chsh
新しいシェル : /bin/zsh  # ユーザシェルを変更


$ vi ~/.zshrc
# 「WEB+DB PRESS Vol.40 特集2 サポートページ」から .zshrc の雛形を謹んでいただく
http://bloghackers.net/~naoya/webdb40/files/dot.zshrc


# 以下も追加
PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin/
export PATH
setopt NO_Flow_control  # Ctrl+S/Ctrl+Q によるフロー制御を行わない


$ source .zshrc

ディレクトリのユーザ所有者変更

# chown -R testuser.testuser /usr/local/src/

SELinuxを無効

$ sudo vi /etc/sysconfig/selinux
SELINUX=disabled

ssh設定

# vi /etc/ssh/sshd_config
PermitRootLogin no  # rootログインを許可しない
UseDNS no  # ログイン時の遅延対応


# /etc/init.d/sshd restart

iptable設定

# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
#-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
#-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
#-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
#-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
#-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT


# /etc/init.d/iptables stop
# /etc/init.d/iptables start

httpd設定

# vi /etc/httpd/conf/httpd.conf
ServerTokens ProductOnly  # レスポンスヘッダの情報隠蔽
ServerSignature Off  # エラーページ表示時の情報隠蔽

 Options Includes ExecCGI FollowSymLinks  # SSI,CGIを有効、Index表示無効
 Order deny,allow
 Deny from All
 Allow from 127.0.0.1 192.168.XXX.  # localhost を入れると遅延する(謎)


 Options MultiViews  # Index表示無効
 AllowOverride None
 Order deny,allow
 Deny from all
 Allow from 127.0.0.1 192.168.XXX.


 Order deny,allow
 Deny from all
 Allow from 127.0.0.1 192.168.XXX.


 Order deny,allow
 Deny from all
 Allow from 127.0.0.1 192.168.XXX.
 AddHandler cgi-script .cgi .pl


# chkconfig httpd on
# /etc/init.d/httpd start

ntp設定

# vi /etc/ntp.conf
server ntp.bbtec.net
server ntp.hokudai.ac.jp
server wsclark.huie.hokudai.ac.jp
#server 0.rhel.pool.ntp.org
#server 1.rhel.pool.ntp.org
#server 2.rhel.pool.ntp.org


# ntpdate ntp.bbtec.net  # 手動での時刻同期
# clock --systohc  # システム時刻をハードウェアクロックと同期


# crontab -e
0 * * * * /sbin/clock --systohc


# /etc/init.d/ntpd start
# chkconfig ntpd on

screen設定

$ vi ~/.screenrc
# 「WEB+DB PRESS Vol.40 特集2 サポートページ」から .screenrc の雛形を謹んでいただく
http://bloghackers.net/~naoya/webdb40/files/dot.screenrc

vim設定

$ vi ~/.vimrc
# 「ずんwiki」から .vimrc の雛形を謹んでいただく
http://www.kawaz.jp/pukiwiki/?plugin=attach&refer=vim&openfile=.vimrc

VMware Workstation と Server の違い

使用バージョン
5.5

VMware Workstation は有償ツールですが、この製品の素晴らしさにようやく気づいたので書いておきます。

Workstation 5.5 でできること

  • スクリーンキャプチャ、ムービーキャプチャができる
    • マニュアル作成や説明に便利!
  • 簡単にクローンが作れる
    • 複数PCの環境構築に便利!
  • サービスとして動作できるのでパフォーマンスに優れる
  • 複数のスナップショットに対応している
    • インストールテストなどに便利!

※参考:仮想化プラットフォーム,VMware WorkstationとVMware Serverの違い | 日経 xTECH(クロステック)

4/29追記

VMware の第1四半期決算、増収増益で売上は70%増
http://japan.internet.com/finanews/20080428/12.html


VMware Workstation」を使うようになって、さすがはVMwareだと見直しました。
Xen」もオープンソースで個人的に期待しているけど、商用となるとVMwareには適わないとも聞いています。
Microsoftの「Virtual PC」も心なしか最近使っている人は少ないように感じますねぇ。


株価は2007年10月の高値から半分になっているけど、
ここ1ヶ月ちょっとで50%近く上がっている。
http://finance.google.com/finance?q=NYSE%3AVMW


しばらくして下がるようなことがあれば買いたいです。
その前に海外の証券口座が必要ですがね…