■Hinemos Agent をDebian Lenny(x86)に導入
AgentはHinemosの管理対象とするためのプログラム。
以下は古いがとりあえず。
参考:UNIX 系OS向け Hinemos ver2.1 エージェント 作成メモ
ftp://ftp.iij.ad.jp/pub/sourceforge.jp/hinemos/22288/agent_for_UNIX_memo.pdf
■構成(ブリッジ)
WindowsXP Client → CnetOS5.7 Manager → CnetOS5.7(Mabagerと同じ) Agent
↓
Debian Lenny(Agent)
■現在の環境
CentOS5.7とHinemos3.2
http://d.hatena.ne.jp/labunix/20120120
$ cat /etc/redhat-release
CentOS release 5.7 (Final)
$ ls hinemos_*.tar.gz
hinemos_agent-3.2.2_rhel5_32.tar.gz hinemos_manager-3.2.2_rhel5_32.tar.gz
■要件のチェック
※すべての機能を使うわけではない。
CentOSでAgentを導入した際のログを確認。
net-snmp shadow-utils passwd
net-snmp-libs gawk openssh
net-snmp-5 grep openssh-clients
net-snmp-libs-5 sed expect
coreutils krb5-workstation
■Debian Lennyの導入
インストーラ:debian-509-i386-businesscard.iso
ゲストOSとして「標準システム」のみ
sshの導入とIP固定
$ ssh-keygen -t rsa
$ sudo /etc/init.d/ssh restart
$ sudo vim /etc/network/interfaces
$ sudo shutdown -r now
■要件の確認
※「ii」は導入済み
$ echo ' net-snmp shadow-utils passwd
net-snmp-libs gawk openssh
net-snmp-5 grep openssh-clients
net-snmp-libs-5 sed expect
coreutils krb5-workstation
' | for list in `xargs`;do \
echo -n "$list ";dpkg -l | awk '{print $2 " " $1}' | grep ${list} || echo "# Not Found"; \
done | sort -k 2
expect
gawk
krb5-workstation
net-snmp
net-snmp-5
net-snmp-libs
net-snmp-libs-5
openssh-clients
shadow-utils
passwd base-passwd ii
coreutils coreutils ii
grep grep ii
openssh-blacklist-extra ii
openssh-client ii
openssh-server ii
passwd ii
openssh openssh-blacklist ii
sed sed ii
■「expect gawk snmpd snmp snmptrapfmt」の導入
$ echo "expect gawk snmpd snmp snmptrapfmt" | for list in `xargs`;do sudo apt-get install -y "$list";done
■snmpdのコミュニティの設定
$ sudo vim /etc/snmp/snmpd.cof
$ grep -v "^#\|^\$" /etc/snmp/snmpd.conf | head -3
com2sec readonly default public
com2sec readonly 127.0.0.1 public
com2sec readonly 192.168.100.0/24 public
■snmpdのディスクの設定の有効化
$ sudo grep ^disk /etc/snmp/snmpd.conf
disk / 10000
■snmpdのリッスンポートの修正
$ sudo grep 0.0.0.0 /etc/default/snmpd
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 0.0.0.0'
$ sudo /etc/init.d/snmpd restart
Restarting network management services: snmpd.
$ snmpwalk -v 1 localhost -c public system | wc -l
31
■CentOSからのチェック
1312
■Hinemos-Agentのインストーラで置き換えるべきパッケージを導入
$ ls Hinemos_Agent-3.2.2_rhel5_32/rpms/
libevtlog0-0.2.7-1.i386.rpm syslog-ng-2.0.9-1.i386.rpm
$ sudo apt-get install libevtlog0 syslog-ng
■マネージャとの通信の為のコマンドを導入
$ echo "su ftp ssh" | for list in `xargs`;do whereis -b "$list";done
su: /bin/su
ftp: /usr/bin/ftp
ssh: /usr/bin/ssh /etc/ssh /usr/share/ssh
$ sudo apt-get install -y xinetd chkconfig
$ whereis -b xinetd
xinetd: /usr/sbin/xinetd /etc/xinetd.d /etc/xinetd.conf
■SELINUXのチェックの無効化
$ grep -A 10 "# check selinux is Disabled" agent_installer_all
■rpmチェックの無効化
※関数を呼び出すコマンドの方を無効化。
$ grep "#CheckRPM\|#InstallSyslogNg" agent_installer_all
#InstallSyslogNg || continue
■「syslog-ng libevtlog0」のインストール/アンインストールの無効化
※上述の通りこれはapt-getで管理する。
$ grep -A 10 'rpm -q syslog-ng' agent_installer_all | grep ^#
$ grep -A 10 libevt agent_installer_all | grep ^#
■「rpm -q」と「dpkg -l」の入れ替え
$ sed s/'rpm -q'/'dpkg -l'/g agent_installer_all | grep dpkg
dpkg -l ${RPM} > /dev/null 2>&1
PKG_NET_SNMP=`dpkg -l net-snmp`
PKG_NET_SNMP_LIB=`dpkg -l net-snmp-libs`
dpkg -l ${RPM} > /dev/null 2>&1
dpkg -l rsyslog > /dev/null
dpkg -l syslog > /dev/null
dpkg -l rsyslog > /dev/null
dpkg -l syslog > /dev/null
$ mv agent_installer_all agent_installer_all.rhel5
$ sed s/'rpm -q'/'dpkg -l'/g agent_installer_all.rhel5 > agent_installer_all
■「redhat-release」のチェックに失敗した場合の処理があるのでそのまま。
※Javaの設定箇所
if [ `cat /etc/redhat-release | grep "release 6.[0-9]" | wc -l` -ne 0 ]
if [ `cat /etc/redhat-release | grep "release 6.[0-9]" | wc -l` -eq 0 ]
■agentインストーラのチェック
if [ -e ${SCRIPT_DIR}/hinemos_agent ]
then
ConfirmInstallation || continue
CheckInstallDirectory || continue
CheckHosts || continue
InputIpAddress || continue
CopyFiles || continue
ConfigureFiles || continue
CopyServiceScripts || continue
InstallJRE || continue
ConfigureNetSnmp || continue
echo && echo "${MSG_I028}" && echo
else
echo "${MSG_W001}"
fi
■実行権限を付けて導入
※エラーはredhat-releaseのチェックのみ。
■インストールログの確認
Done.
Hinemosエージェントのインストールが完了しました。
--- 実行する項目を選択してください ---
1) Hinemosエージェントのインストール
2) Hinemosエージェントのアンインストール
9) インストーラを終了する
==>
インストーラを終了します。
■インストール後のjavaのチェック
bash: java: command not found
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
Java HotSpot(TM) Client VM (build 1.5.0_22-b03, mixed mode, sharing)
$ grep '/opt/hinemos_agent/jre1.5.0_22/bin:' /etc/login.defs
ENV_SUPATH PATH=/opt/hinemos_agent/jre1.5.0_22/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
■Agentの開始
Hinemos Job Agent started.
Hinemos Log Agent started.
■WinXPからCentOSのマネージャにログイン、Lennyのエージェントをノードに追加
リアルタイムグラフで状態を確認。
----以下作業中---
■killprocを置き換えたが、書き直した方が良いかも知れない。
「restart」は出来ないので、stop、startと2回に分ける。
この修正は、後日に持ち越しの課題ということで。。。
/etc/init.d/hinemos_job_agent: echo "Usage: $0 {start|stop|status|restart}"
/etc/init.d/hinemos_log_agent: echo "Usage: $0 {start|stop|status|restart}"
■initスクリプトの調整
※debianには「/etc/rc.d/init.d/functions」は無い
/etc/init.d/hinemos_job_agent /etc/init.d/hinemos_log_agent
■LSB TAG対応
hinemos_job_agent 0:off 1:off 2:on 3:on 4:on 5:on 6:off
hinemos_log_agent 0:off 1:off 2:on 3:on 4:on 5:on 6:off
■daemonコマンド対応
※「"」の位置を変更
/etc/init.d/hinemos_job_agent: daemon "${HINEMOS_AGENT_HOME}/bin/job_agent_start.sh" > /dev/null
/etc/init.d/hinemos_log_agent: daemon "${HINEMOS_AGENT_HOME}/bin/log_agent_start.sh" > /dev/null
■「killproc」文を書き換え
※今後の課題とする
/etc/init.d/hinemos_job_agent: killproc ${PROG}
/etc/init.d/hinemos_log_agent: killproc ${PROG}
ps -ef | grep "hinemos" | grep "jog" | grep -v grep | awk '{print $2}' | \
for list in `xargs`;do kill "$list";done
ps -ef | grep "hinemos" | grep "log" | grep -v grep | awk '{print $2}' | \
for list in `xargs`;do kill "$list";done
-rw-r--r-- 1 root root 0 2012-01-29 00:18 /var/lock/subsys/hinemos_job_agent
-rw-r--r-- 1 root root 0 2012-01-29 00:17 /var/lock/subsys/hinemos_log_agent