じっぱひとからげ

十把一絡げになんでもかんでもつづる。

第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

f:id:jippahitokarage:20180615203912p:plain
(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の開発者サブスクリプション登録の手順などはこちらを参照。
blog.jippahitokarage.com

必要パッケージのインストール

 HinemosはNTTデータ先端技術が用意している親切なインストールマニュアルがあるので、基本的にこれに従ってインストールすれば間違いない。GPLで公開されたOSSなのでソースコードやドキュメントもすべてgithub上に公開されている。

github.com


「必須パッケージ」と「推奨パッケージ」をインストールする。まずはマネージャ用のパッケージをインストールする。

  • 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でログインする。
f:id:jippahitokarage:20180609152018p:plain

ログインできることを確認する。
f:id:jippahitokarage:20180609152019p:plain

Hinemosのイメージキャラクタ もに太が現れたらOK

f:id:jippahitokarage:20180609152021p:plain

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 ~]# 
[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監視を入れてみる

f:id:jippahitokarage:20180615201844p:plain

  • 「ノードサーチ」をクリックする

f:id:jippahitokarage:20180615201848p:plain

f:id:jippahitokarage:20180615201849p:plain

  • マネージャとエージェントがサーチされることを確認する

f:id:jippahitokarage:20180615201851p:plain

  • サーチにヒットしなかったノードは、"no response"として表示される。エージェントとの疎通がうまくいっていない場合は"no response"と表示される。エージェントが"no response"になる場合はfirewalldが停止していること、snmpdが起動していることを確認する。

f:id:jippahitokarage:20180615201854p:plain

f:id:jippahitokarage:20180615201857p:plain

  • 作成をクリックして監視設定を追加する

f:id:jippahitokarage:20180615201902p:plain

  • ping監視(数値)を選択する

f:id:jippahitokarage:20180615201903p:plain

  • 監視IDにHinemos内で重複しない任意の名前(半角英数)をつける

f:id:jippahitokarage:20180615201912p:plain

  • 「参照」をクリックしてスコープを定義する。ここでは「登録ノードすべて」を選択する

f:id:jippahitokarage:20180615201907p:plain

ー通知IDには「EVENT_FOR_POLLING」と「STATUS_FOR_POLLING」を選択する

f:id:jippahitokarage:20180615201926p:plain

  • ここで事前に「STATUS_FOR_POLLING」の設定を変更しておく

f:id:jippahitokarage:20180615201927p:plain

  • ステータス通知の「情報」にチェックが入っていないので、チェックを入れておく

f:id:jippahitokarage:20180615201913p:plain

  • 「情報」にチェックが入っていることを確認する。ここでチェックが入っていないと、pingに成功して正常域に入ったとしてもステータスが「情報」にアップデートされない。

f:id:jippahitokarage:20180615201916p:plain

f:id:jippahitokarage:20180615201918p:plain

  • pingに成功してjm01およびbt01の通知(ステータス)と通知(イベント)両方に「情報」が記録されることを確認する

f:id:jippahitokarage:20180615201923p:plain

  • bt01をシャットダウンしてみると、pingに失敗して通知(ステータス)と通知(イベント)の両方が「危険」に更新されることを確認する

f:id:jippahitokarage:20180615201922p:plain

  • bt01を起動すると、pingに成功して通知(ステータス)と通知(イベント)が「情報」に更新される。ここで「STATUS_FOR_POLLING」の「情報」にチェックが入っていないと、「情報」に戻らず「危険」のままになるので注意。

f:id:jippahitokarage:20180615201924p:plain

これでひとまずHinemos 6.1が使える状態になった。次回以降は、具体的な監視設定の方法やジョブの実行方法について紹介する。

blog.jippahitokarage.com

*1:java-1.7.0-openjdkも可