第01回 Hinemos 6.1でもあそぼう!(インストール編)
以前、Hinemos 5.0であそんだので、今回はHinemos 6.1でもあそんでみたい。
blog.jippahitokarage.com
今回は新しいバージョンのHinemos6.1のインストールから動かすところまでやってみる。今回はインストール編として、インストールと簡単な疎通確認までを紹介する。次回以降は、具体的な監視設定方法やジョブ実行の方法について紹介する。
サーバ構成
- マネージャ兼エージェント兼Webクライアント(jm01) 192.168.100.11
- エージェント(bt01) 192.168.100.13
(Hinemos ver.6.1 インストールマニュアル Linux版マネージャ より
https://github.com/hinemos/hinemos/releases/download/v6.1.0/ja_Install_Linux_6.1_rev1.pdf
)
Hinemosマネージャの構築
OSの準備
OSはこちらを利用(Vagrant box secnix/rhel7 - Vagrant Cloud)。RHELの開発者サブスクリプション登録の手順などはこちらを参照。
https://blog.jippahitokarage://blog.jippahitokarage.com/entry/2018/01/07/151904blog.jippahitokarage:
必要パッケージのインストール
HinemosはNTTデータ先端技術が用意している親切なインストールマニュアルがあるので、基本的にこれに従ってインストールすれば間違いない。GPLで公開されたOSSなのでソースコードやドキュメントもすべてgithub上に公開されている。
「必須パッケージ」と「推奨パッケージ」をインストールする。まずはマネージャ用のパッケージをインストールする。
- Hinemos マネージャ
- (必須)java-1.8.0-openjdk
- (必須)vim-common
- (推奨)java-1.8.0-openjdk-devel
- (推奨)net-snmp-utils
- (推奨)net-tools
- (推奨)sysstat
- (推奨)tcpdump
- (推奨)lsof
- (推奨)sblim-wbemcli
- (推奨)wsmancli
[root@jm01 ~]# yum install vim-common java-1.8.0-openjdk net-snmp-utils net-tools sysstat tcpdump lsof sblim-wbemcli wsmancli net-snmp
SELINUXの無効化
マネージャをインストールするサーバは、SELINUXを無効にする。SELINUXが有効になっている場合はEnforcingが返ってくる。
[root@jm01 ~]# getenforce Enforcing
/etc/selinux/config を以下の様に編集する。
SELINUX=enforcing
↓
SELINUX=disabled
[root@jm01 ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
再起動後に再度SELINUXのパラメータを確認する。
[root@jm01 ~]# getenforce Disabled [root@jm01 ~]#
Hinemosマネージャのインストール
- パッケージのインストール
Hinemosはgithubに公開されているので、githubからインストールする。
[root@jm01 ~]# rpm -ivh https://github.com/hinemos/hinemos/releases/download/v6.1.0/hinemos-6.1-manager-6.1.0-1.el7.x86_64.rpm https://github.com/hinemos/hinemos/releases/download/v6.1.0/hinemos-6.1-manager-6.1.0-1.el7.x86_64.rpm を取得中 準備しています... ################################# [100%] 更新中 / インストール中... 1:hinemos-6.1-manager-0:6.1.0-1.el7################################# [100%] Created symlink from /etc/systemd/system/multi-user.target.wants/hinemos_manager.service to /usr/lib/systemd/system/hinemos_manager.service. Created symlink from /etc/systemd/system/multi-user.target.wants/hinemos_pg.service to /usr/lib/systemd/system/hinemos_pg.service. [root@jm01 ~]#
- 言語設定を確認
[root@jm01 ~]# cat /opt/hinemos/etc/hinemos.cfg | grep LANG export LANG=ja_JP.UTF-8 [root@jm01 ~]#
- Hinemosサービスの起動
[root@jm01 ~]# service hinemos_manager start Redirecting to /bin/systemctl start hinemos_manager.service [root@jm01 ~]#
- Hinemosサービスのステータス確認
[root@jm01 ~]# service hinemos_manager status Redirecting to /bin/systemctl status hinemos_manager.service ● hinemos_manager.service - Hinemos Manager Loaded: loaded (/usr/lib/systemd/system/hinemos_manager.service; enabled; vendor preset: disabled) Active: active (running) since 土 2018-06-09 14:37:46 JST; 6s ago Process: 1945 ExecStop=/opt/hinemos/bin/jvm_stop.sh (code=exited, status=0/SUCCESS) Process: 2030 ExecStart=/opt/hinemos/bin/jvm_start.sh -W (code=exited, status=0/SUCCESS) Main PID: 2095 (java) CGroup: /system.slice/hinemos_manager.service └─2095 /usr/lib/jvm/jre-1.8.0-openjdk/bin/java -Djdk.xml.entityExpansionLim... 6月 09 14:37:45 jm01 jvm_start.sh[2030]: sysctl: reading key "net.ipv6.conf.eth1.s...t" 6月 09 14:37:45 jm01 jvm_start.sh[2030]: sysctl: reading key "net.ipv6.conf.lo.sta...t" 6月 09 14:37:45 jm01 jvm_start.sh[2030]: sysctl: reading key "net.ipv6.conf.all.st...t" 6月 09 14:37:45 jm01 jvm_start.sh[2030]: sysctl: reading key "net.ipv6.conf.defaul...t" 6月 09 14:37:45 jm01 jvm_start.sh[2030]: sysctl: reading key "net.ipv6.conf.eth0.s...t" 6月 09 14:37:45 jm01 jvm_start.sh[2030]: sysctl: reading key "net.ipv6.conf.eth1.s...t" 6月 09 14:37:45 jm01 jvm_start.sh[2030]: sysctl: reading key "net.ipv6.conf.lo.sta...t" 6月 09 14:37:45 jm01 jvm_start.sh[2030]: waiting for Java Virtual Machine startup... 6月 09 14:37:46 jm01 jvm_start.sh[2030]: Java Virtual Machine started (with -W option) 6月 09 14:37:46 jm01 systemd[1]: Started Hinemos Manager. Hint: Some lines were ellipsized, use -l to show in full. [root@jm01 ~]#
- Hinemosで利用されるPostgreSQLのステータス確認
[root@jm01 ~]# service hinemos_pg status Redirecting to /bin/systemctl status hinemos_pg.service ● hinemos_pg.service - Hinemos PostgreSQL Loaded: loaded (/usr/lib/systemd/system/hinemos_pg.service; enabled; vendor preset: disabled) Active: active (running) since 土 2018-06-09 14:37:45 JST; 1min 1s ago Process: 2000 ExecStop=/opt/hinemos/postgresql/bin/pg_ctl stop -w -t ${PGTIMEOUT} -s -D ${PG_DATA} -m ${PGSHUTDOWNMODE} (code=exited, status=0/SUCCESS) Process: 2019 ExecStart=/opt/hinemos/postgresql/bin/pg_ctl start -w -t ${PGTIMEOUT} -s -D ${PG_DATA} -l ${PGLOGFILE} (code=exited, status=0/SUCCESS) Main PID: 2021 (postgres) CGroup: /system.slice/hinemos_pg.service ├─2021 /opt/hinemos/postgresql/bin/postgres -D /opt/hinemos/var/data ├─2022 postgres: logger process ├─2024 postgres: checkpointer process ├─2025 postgres: writer process ├─2026 postgres: wal writer process ├─2027 postgres: autovacuum launcher process ├─2028 postgres: stats collector process ├─2157 postgres: hinemos hinemos 127.0.0.1(56934) idle ├─2159 postgres: hinemos hinemos 127.0.0.1(56936) idle ├─2161 postgres: hinemos hinemos 127.0.0.1(56938) idle ├─2163 postgres: hinemos hinemos 127.0.0.1(56940) idle ├─2165 postgres: hinemos hinemos 127.0.0.1(56942) idle ├─2169 postgres: hinemos hinemos 127.0.0.1(56946) idle └─2171 postgres: hinemos hinemos 127.0.0.1(56948) idle 6月 09 14:37:44 jm01 systemd[1]: Starting Hinemos PostgreSQL... 6月 09 14:37:45 jm01 systemd[1]: Started Hinemos PostgreSQL.
- Hinemosサービスの停止手順(実行はしない)
念の為、Hinemosサービスの停止手順を確認しておく。
[root@jm01 ~]# service hinemos_manager stop Redirecting to /bin/systemctl stop hinemos_manager.service [root@jm01 ~]#
自動起動の設定
インストールを実行した時点で、HinemosマネージャおよびHinemosマネージャで利用されるposgreSQLのサービスは自動起動するようになっている。ここでは確認するだけ。
[root@jm01 ~]# systemctl list-unit-files | grep hinemos hinemos_manager.service enabled hinemos_pg.service enabled [root@jm01 ~]#
Hinemos Webクライアントの構築
必要パッケージのインストール
今回はHinemosマネージャとHinemos Webクライアントを共存させるため、 java-1.8.0-openjdkはマネージャ構築時にインストール済み。
- Hinemos Webクライアント
- (必須)java-1.8.0-openjdk
- (必須)unzip
- (必須)vlgothic-p-fonts
- (推奨)java-1.8.0-openjdk-devel
[root@jm01 ~]# yum install java-1.8.0-openjdk unzip vlgothic-p-fonts java-1.8.0-openjdk-devel
Hinemos Webクライアントのインストール
- パッケージのインストール
[root@jm01 ~]# rpm -ivh https://github.com/hinemos/hinemos/releases/download/v6.1.0/hinemos-6.1-web-6.1.0-1.el7.x86_64.rpm https://github.com/hinemos/hinemos/releases/download/v6.1.0/hinemos-6.1-web-6.1.0-1.el7.x86_64.rpm を取得中 準備しています... ################################# [100%] 更新中 / インストール中... 1:hinemos-6.1-web-0:6.1.0-1.el7 ################################# [100%] Created symlink from /etc/systemd/system/multi-user.target.wants/hinemos_web.service to /usr/lib/systemd/system/hinemos_web.service. [root@jm01 ~]#
- 言語の確認
[root@jm01 ~]# cat /opt/hinemos_web/conf/hinemos_web.cfg | grep LANG export LANG=ja_JP.UTF-8
- firewalldの停止
外からWebクライアントにアクセスするので、firewalldを停止する。
[root@jm01 ~]# systemctl stop firewalld [root@jm01 ~]#
ここでOS起動時にfirewalldが自動起動しないようにしておく。
[root@jm01 ~]# systemctl disable firewalld
- Hinemos Webクライアントの起動
[root@jm01 ~]# service hinemos_web start Redirecting to /bin/systemctl start hinemos_web.service [root@jm01 ~]#
- Hinemos Webクライアントにアクセスする。
デフォルトで管理者はユーザID hinemos パスワード hinemosでログインする。
ログインできることを確認する。
Hinemosのイメージキャラクタ もに太が現れたらOK
Hinemosエージェントの構築
次は、監視対象であるbt01にHinemosエージェントをインストールする。jm01はHinemos マネージャであり、Webクライアントではあるが、それと同時に監視対象でもあるので、jm01にもHinemos エージェントをインストールしておく。
必要なパッケージのインストール
- Hinemosエージェント(Linux版)
- (必須)java-1.8.0-openjdk*1
[root@bt01 ~]# yum install java-1.8.0-openjdk net-snmp net-snmp-libs
Hinemosエージェントのインストール
- Hinemosエージェントを単体でインストールする場合は、HinemosマネージャのIPを環境変数HINEMOS_MANAGERに定義してインストールを実行する。
[root@bt01 ~]# HINEMOS_MANAGER=192.168.100.11 rpm -ivh https://github.com/hinemos/hinemos/releases/download/v6.1.0/hinemos-6.1-agent-6.1.0-1.el.noarch.rpm https://github.com/hinemos/hinemos/releases/download/v6.1.0/hinemos-6.1-agent-6.1.0-1.el.noarch.rpm を取得中 準備しています... ################################# [100%] 更新中 / インストール中... 1:hinemos-6.1-agent-0:6.1.0-1.el ################################# [100%] Redirecting to /bin/systemctl status rsyslog.service Redirecting to /bin/systemctl restart rsyslog.service [root@bt01 ~]#
- HinemosエージェントをHinemosマネージャと同居する場合は、HINEMOS_MANAGERは省略して良い。省略すると127.0.0.1が自動的に補完される。
[root@jm01 ~]# rpm -ivh https://github.com/hinemos/hinemos/releases/download/v6.1.0/hinemos-6.1-agent-6.1.0-1.el.noarch.rpm https://github.com/hinemos/hinemos/releases/download/v6.1.0/hinemos-6.1-agent-6.1.0-1.el.noarch.rpm を取得中 準備しています... ################################# [100%] 更新中 / インストール中... 1:hinemos-6.1-agent-0:6.1.0-1.el ################################# [100%] Redirecting to /bin/systemctl status rsyslog.service Redirecting to /bin/systemctl restart rsyslog.service
- 言語の確認
[root@bt01 ~]# cat /opt/hinemos_agent/conf/hinemos_agent.cfg | grep LANG export LANG=ja_JP.utf8 [root@bt01 ~]#
- Hinemos エージェントの起動
[root@bt01 ~]# service hinemos_agent start Starting hinemos_agent (via systemctl): [ OK ] [root@bt01 ~]#
- net-snmp サービス起動
[root@bt01 ~]# service snmpd start Redirecting to /bin/systemctl start snmpd.service [root@bt01 ~]#
- net-snmp を自動起動するように設定する
[root@bt01 ~]# chkconfig --level 2345 snmpd on 情報:'systemctl enable snmpd.service'へ転送しています。 Created symlink from /etc/systemd/system/multi-user.target.wants/snmpd.service to /usr/lib/systemd/system/snmpd.service. [root@bt01 ~]#
- firewalldの停止
[root@bt01 ~]# systemctl stop firewalld [root@bt01 ~]#
ここでOS起動時にfirewalldが自動起動しないようにしておく。
[root@bt01 ~]# systemctl disable firewalld
- 同様の手順でjm01にもHinemos エージェントをインストールしておく
簡単な動作確認
次回以降、複数回に分けて監視やジョブ管理の方法について紹介するので、ここではまずは簡単なping監視で動作を確認する。
ping監視を入れてみる
- スタートアップからリポジトリパースペクティブを開く
- 「ノードサーチ」をクリックする
- ノードサーチしたいIPアドレスの範囲を指定する
- マネージャとエージェントがサーチされることを確認する
- サーチにヒットしなかったノードは、"no response"として表示される。エージェントとの疎通がうまくいっていない場合は"no response"と表示される。エージェントが"no response"になる場合はfirewalldが停止していること、snmpdが起動していることを確認する。
- 監視設定パースペクティブを開く
- 作成をクリックして監視設定を追加する
- ping監視(数値)を選択する
- 監視IDにHinemos内で重複しない任意の名前(半角英数)をつける
- 「参照」をクリックしてスコープを定義する。ここでは「登録ノードすべて」を選択する
ー通知IDには「EVENT_FOR_POLLING」と「STATUS_FOR_POLLING」を選択する
- ここで事前に「STATUS_FOR_POLLING」の設定を変更しておく
- ステータス通知の「情報」にチェックが入っていないので、チェックを入れておく
- 「情報」にチェックが入っていることを確認する。ここでチェックが入っていないと、pingに成功して正常域に入ったとしてもステータスが「情報」にアップデートされない。
- 監視履歴パースペクティブを開く
- pingに成功してjm01およびbt01の通知(ステータス)と通知(イベント)両方に「情報」が記録されることを確認する
- bt01をシャットダウンしてみると、pingに失敗して通知(ステータス)と通知(イベント)の両方が「危険」に更新されることを確認する
- bt01を起動すると、pingに成功して通知(ステータス)と通知(イベント)が「情報」に更新される。ここで「STATUS_FOR_POLLING」の「情報」にチェックが入っていないと、「情報」に戻らず「危険」のままになるので注意。
これでひとまずHinemos 6.1が使える状態になった。次回以降は、具体的な監視設定の方法やジョブの実行方法について紹介する。
*1:java-1.7.0-openjdkも可