OpenLMIによるシステム管理

2015年2月5日(木)
古賀 政純

今回は、CentOS 7で新しく搭載された管理ツール「OpenLMI」について解説します。

CentOS 7のOpenLMIによるシステム管理

Linuxシステムの管理には、様々なコマンドがあります。例えば、OSの論理ボリュームを管理するLVM一つをとっても、物理ボリュームやボリュームグループの管理コマンド、論理ディスクの管理コマンドなど様々なコマンドやオプションを覚えなければなりません。OSの管理コマンドもバージョンによってオプションや書式が変わるものも少なくありません。また、管理コマンドをいくつも駆使する場合は、ユーザーがバッチ処理用のスクリプトを個々に作成しなければならず、一連の管理の自動化を行うためには、管理者のコマンドの利用知識とスクリプト開発のスキルに依存している場合が殆どです。近年、Linuxシステムを取り巻く世界では、管理の簡素化、自動化を実現するための標準化の必要性が高まってきています。一連の定型作業は、できるだけ標準化・自動化し、様々な種類の作業を単一のコマンド体系に集約することで、ユーザーのスキル習得の負担を減らし、簡素なものにしなければならないという考え方です。また、ローカルのLinuxシステムの管理の簡素化だけではなく、遠隔管理の仕組みも含めた標準化が検討されています。例えば、遠隔地にあるデータセンターのサーバーの電源管理やコンソール出力管理、不正侵入の監視システムのための通報の仕組みなどをいかに標準化できるかについて議論され始めています。Linuxシステム全体の管理の標準化は、まだ発展途上の初期段階ですが、Linuxベースの管理・監視の仕組みが大きく見直されようとしており、その一つが今回取り上げるOpenLMIです。

2014年4月にサンフランシスコで開催されたRed Hat Summit 2014のレッドハット社の展示ブースで披露されたOpenLMIのデモの様子。RHEL7で認識されたストレージデバイスをOpenLMIで簡単に管理できることが紹介されていた

図1:2014年4月にサンフランシスコで開催されたRed Hat Summit 2014のレッドハット社の展示ブースで披露されたOpenLMIのデモの様子。RHEL7で認識されたストレージデバイスをOpenLMIで簡単に管理できることが紹介されていた

OpenLMIのアーキテクチャ

OpenLMI(Open Linux Management Infrastructure)は、管理エージェントの集合体です。システムの状態を表示や変更を簡単に行うことができます。また、遠隔のLinuxサーバーの管理・監視のための標準的なAPIも提供しています。管理サーバーまたはクライアント側は、コマンドラインやスクリプト、python、Java、C/C++などから呼び出すことができます。一方、遠隔地にある管理対象サーバーは、APIを通じて、各種コマンドと通信を行います。OpenLMIでは、この管理対象サーバー側に存在する各種コマンド類(例:nmcli、yum、lvcreate、mkfs.xfs、parted、systemctl等)を抽象化・隠蔽します。OpenLMIは、OpenPegasusと呼ばれるオブジェクトブローカーを利用します。オブジェクトブローカーであるOpenPegasusは、コマンドやクエリ、イベント等を管理します。また、OpenPegasusは、WBEM(Web-Based Enterprise Management)にも対応しており、情報セキュリティ上の懸念点が指摘されているSNMPにとってかわるプロトコルで通信を行うことができます。OpenLMIは、ジョブの終了、ストレージのハードディスクドライブの故障、NICの構成変更の通知、パスワード変更の通知といったイベント処理が可能です。OpenLMIは、遠隔のLinuxサーバーの管理・監視も考慮しているため、セキュリティについても考慮されており、TLS(https)を使用し、暗号化通信を行います。また監視対象にすべきかどうかの判断についての認証の仕組みも取り込まれています。OpenLMIでは、管理対象サーバーのユーザーのアカウントが利用されますので、全管理対象サーバーにおいてユーザー作成とパスワード設定等を一つ一つ行うことで管理は可能ですが、大規模システムにおいては、統合的なユーザーID管理ソフトウェアの導入が強く推奨されています。

OpenLMIによるシステム管理の概念図。OpenLMIが提供する管理コマンドやスクリプト等を使って、遠隔にある管理対象サーバーを管理する

図2:OpenLMIによるシステム管理の概念図。OpenLMIが提供する管理コマンドやスクリプト等を使って、遠隔にある管理対象サーバーを管理する

OpenLMIのインストール手順

以下では、CentOS 7におけるOpenLMIを使った具体的な管理・監視手順を述べます。ただし、OpenLMIは、まだ発展途上であるため、従来のコマンド群を直接使用したほうがよい場合も存在します。それらの留意点も含めて解説します。まずは、CentOS 7にOpenLMIをインストールしてみましょう。CentOS 7において、OpenLMIは、RPMパッケージで提供されており、をyumコマンドでインストールできます。管理対象サーバーにインストールしてください。

# yum install -y openlmi

OpenLMIに必要なサービスを起動します。OpenLMIに含まれるtog-pegasusサービスを起動します。

# systemctl start tog-pegasus
# systemctl enable tog-pegasus

OpenLMIはポート番号5989を使用しますので、firewall-cmdコマンドで、当該ポートを開放します。また、今回は、SELinuxを無効にしてあります。

# firewall-cmd --add-port=5989/tcp
# firewall-cmd --permanent --add-port=5989/tcp
# firewall-cmd --reload
# setenforce 0

top-pegasusパッケージをインストールすると、pegasusユーザーが作成されていますので、pegasusユーザーのパスワードを設定します。pagasusユーザーは、管理対象サーバーが遠隔にある場合に、リモートアクセスを行うために必要となります。OpenPegasusで提供されるCIMOMは、rootまたは、pegasusユーザーでHTTP及びHTTPSによるアクセスを許可します。標準では、pegasusユーザーがCIMOM にアクセスできる設定になっています。

# passwd pegasus

OpenLMIは、CentOS 7のEPELリポジトリに、スクリプト類が用意されていますので合わせてインストールしておきます。

# yum install -y http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
# yum install -y openlmi-scripts*

【注意】

2015年1月時点でのEPELのリポジトリで提供されているファイルは、epel-release-7-5.noarch.rpmですが、今後のアップデートによりファイルのバージョンが新しくなりURLが変更される可能性があります。そのため、上記のURLに存在するepel-release RPMパッケージの最新を事前に確認してください。

OpenLMIにおいて、PEM形式の証明書ファイルをコピーします。証明書ファイルをコピーしたら、CA(Certificate Authority)の証明書を管理するupdate-ca-trustコマンドを使ってルート証明書を追加します。

# cp /etc/Pegasus/server.pem /etc/pki/ca-trust/source/anchors/managed-machine-cert.pem
# update-ca-trust extract

【注意】

上記の例は、公式の認証機関による署名入りの証明書を利用する手順ではなく、自己証明書による設定例となります。本番環境においては、公式の認証機関におる署名入り証明書を使うようにして下さい。

OpenLMIによるハードウェア情報の取得

OpenLMIを使って管理対象サーバーのハードウェア情報を取得してみます。管理対象サーバーにログインし、ローカルホストの情報を取得してみます。OpenLMIは、主にlmiコマンドで管理を行います。

# lmi -h localhost hwinfo
Hostname:         centos70n02.jpn.linux.hp.com

Chassis Type:     SMBIOS Reseved
Manufacturer:     HP
Model:            Not Specified (ProLiant DL385p Gen8)
Serial Number:    CN7230040Z
Asset Tag:        CN7230040Z
Virtual Machine:  N/A

Motherboard info: N/A

CPU:              AMD Opteron(TM) Processor 6238
Topology:         2 cpu(s), 24 core(s), 24 thread(s)
Max Freq:         3500 MHz
Arch:             x86_64

Memory:           32.0 GB
Modules:          8.0 GB, DDR3 (DIMM), 1333 MHz, HP, Not Specified
                  8.0 GB, DDR3 (DIMM), 1333 MHz, HP, Not Specified
                  8.0 GB, DDR3 (DIMM), 1333 MHz, HP, Not Specified
                  8.0 GB, DDR3 (DIMM), 1333 MHz, HP, Not Specified
Slots:            4 used, N/A total

OS上で設定されたホスト名の他に、管理対象サーバーの製造元のメーカー名や、サーバーのモデル名、CPUの種類、CPUソケット数、CPUコア数、CPU動作周波数、メモリ容量などの情報が取得できていることがわかります。メモリモジュールの情報やメモリの動作周波数も、人間にとって分かりやすい形で表示されています。従来であれば、cat /proc/cpuinfoやvmstatコマンド等の各種コマンドやオプション、書式を覚える必要がありましたが、OpenLMIが提供するlmiコマンドでこれらの情報を一括取得することができ、管理者のスキル習得の手間を大幅に削減することができます。

OS情報、ファイヤウォール、ネットワークインタフェース等のシステム概要の表示

OpenLMIは、ハードウェア情報だけでなく、管理対象サーバーのOSに関連するシステムの概要を表示することが可能です。lmiコマンドを使って、ハードウェア情報に加え、OS情報、ファイヤウォール、ネットワークインタフェース等のシステム情報をまとめて表示するには、以下のようにします。

# lmi -h localhost system
Computer Name:    centos70n02.jpn.linux.hp.com
Hardware:         HP ProLiant DL385p Gen8
Processors:       2x AMD Opteron(TM) Processor 6238
Memory:           32.0 GB
OS:               CentOS Linux release 7.0.1406 (Core)
Kernel:           3.10.0-123.el7.x86_64
Firewall:         on (firewalld)
Logging:          on (journald)
 
Networking
  NIC 1
    Name:         br0
    Status:       In Service
    IPv4 Address: 172.16.3.82
    IPv6 Address: fe80::2e76:8aff:fe5d:f36c
    MAC Address:  2C:76:8A:5D:F3:6C
  NIC 2
    Name:         eth0
    Status:       In Service
    MAC Address:  2C:76:8A:5D:F3:6C
  NIC 3
    Name:         eth1
    Status:       In Service
    IPv4 Address: 16.147.201.23
    IPv6 Address: fe80::2e76:8aff:fe5d:f36d
    MAC Address:  2C:76:8A:5D:F3:6D
  NIC 4
    Name:         eth2
    Status:       Starting
    MAC Address:  2C:76:8A:5D:F3:6E
  NIC 5
    Name:         eth3
    Status:       Starting
    MAC Address:  2C:76:8A:5D:F3:6F
  NIC 6
    Name:         docker0
    Status:       Starting
    MAC Address:  56:84:7A:FE:97:99
  NIC 7
    Name:         virbr0
    Status:       Starting
    MAC Address:  16:54:77:BE:DA:2D

CPU、メモリ、NIC以外にも、OSで稼働中のカーネルのバージョン、ファイヤウォール、ロギングの有無の情報が取得できていることがわかります。

日本ヒューレット・パッカード株式会社 プリセールス統括本部 ソリューションセンター OSS・Linux担当 シニアITスペシャリスト

兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師を担当。科学技術計算サーバーのSI経験も持つ。2005年、大手製造業向けLinuxサーバー提案で日本HP社長賞受賞。2006年、米国HPからLinux技術の伝道師に与えられる「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。日本HPプリセールスMVPを4度受賞。現在は、Linux、FreeBSD、Hadoop等のOSSを駆使したスケールアウト型サーバー基盤のプリセールスSE、技術検証、技術文書執筆を担当。日本HPのオープンソース・Linuxテクノロジーエバンジェリストとして講演活動も行っている。Red Hat Certified Engineer、Red Hat Certified Virtualization Administrator、Novell Certified Linux Professional、EXIN Cloud Computing Foundation Certificate、HP Accredited Systems Engineer Cloud Architect、Red Hat Certified System Administrator in Red Hat OpenStack、Cloudera Certified Administrator for Apache Hadoop認定技術者。HP公式ブログ執筆者。趣味はレーシングカートとビリヤード

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています