書籍概要

Software Design plus

Zabbix統合監視徹底活用
──複雑化・大規模化するインフラの一元管理

著者
発売日
更新日

概要

クラウド環境を利用することがシステム構築時の一般的な選択肢の一つとなりつつありますが,用途によっては物理環境,仮想環境が適切なケースも多く,さまざまな動作環境が混在しているのが現状です。本書はこのような物理・仮想・クラウドが混在した環境をオープンソースソフトウェア(OSS)の統合監視ツールである「Zabbix」を用いて,効率的に・一括して運用管理する手法を解説します。また,著者らによりOSSとして開発・公開中のカスタマイズ版Zabbix「HyClops」についても紹介します。

こんな方におすすめ

  • 既存の運用管理者でクラウド化への対応が迫られている人
  • 商用の監視・管理ツールからZabbixへの乗り換えを検討している人

目次

Part I 物理・仮想・クラウド環境運用の基礎知識
第1章 多様化するインフラ環境

1.1 さまざまなインフラ環境とその特徴

  • 1.1.1 物理環境とは
    • 物理環境の特徴
    • 物理環境の安定運用に必要なこと
  • 1.1.2 仮想環境とは
    • 仮想化ソフトウェアの種類
    • 仮想環境の特徴
    • 仮想環境の安定運用に必要なこと
  • 1.1.3 クラウド環境とは
    • クラウド環境の特徴
    • クラウド環境の安定運用に必要なこと

1.2 各インフラ環境間の違い

  • 1.2.1 物理環境と仮想環境の違い
    • リソースの扱い方
    • 環境構成の変更しやすさ
    • 運用担当者が管理すべき層
  • 1.2.2 オンプレミス環境とクラウド環境の違い
    • データの在り処
    • 環境の提供形式
    • 発生するコスト

1.3 物理・仮想・クラウド環境の使い分け

  • 1.3.1 クラウド環境が適しているパターン
  • 1.3.2 複数環境を併用するパターン
    • 大量アクセス対応のための利用例
    • ディザスタリカバリのための利用例

第2章 物理環境の監視・管理

2.1 物理環境の監視

  • 2.1.1 監視技術の基礎
    • OSコマンドを利用した監視
    • SNMPを利用した監視
    • SNMPトラップを利用した監視
    • 監視対象ホスト内部の監視
  • 2.1.2 物理環境の監視技術
    • IPMIを利用した監視
  • 2.1.3 監視対象ホストやOSの種別ごとの監視方法
    • ネットワーク機器の監視
    • サーバ機器の監視

2.2 物理環境の管理

  • 2.2.1 IPMIを利用したリモート物理マシン制御
    • OSハングアップ時の電源操作による復旧作業
    • BIOSの設定変更
    • ネットワーク通信途絶時のネットワークインタフェース復旧作業
  • 2.2.2 ベンダー提供ツールの活用
    • 【コラム】SNMP Informant活用によるWindowsのSNMP監視

第3章 仮想環境の監視・管理

3.1 仮想環境特有の監視

  • 3.1.1 リソース利用状況の監視
    • キャパシティプランニングへの応用
    • 障害原因の特定
  • 3.1.2 環境構成変更状況の監視
  • 3.1.3 仮想化ソフトウェア層での実施処理状況の監視

3.2 仮想環境特有の管理

  • 3.2.1 キャパシティプランニング/仮想マシン配置管理
    • 各仮想マシンの負荷傾向に応じた構成
    • 各仮想マシンの用途に応じた構成
    • オーバーコミットを考慮した構成
    • 仮想マシン同士の関連を考慮した構成
  • 3.2.2 マイグレーション管理
  • 3.2.3 バックアップ管理
  • 3.2.4 スナップショット管理

3.3 仮想環境監視・管理の具体例

  • 3.3.1 VMware vSphere
    • 管理ツールの活用
    • vSphere APIの活用
    • SNMPの活用
  • 3.3.2 OSS仮想化ソフトウェア(KVM,Xen)
    • GUIによる監視・管理
    • CUIによる監視・管理
  • 3.3.3 仮想化基盤統合管理OSS
    • 仮想化基盤統合管理OSS比較
    • 仮想化基盤統合管理OSSを利用した運用

第4章 クラウド環境の監視・管理

4.1 クラウド環境運用の特徴と課題

  • 4.1.1 クラウド環境運用での課題
    • クラウドサービス障害起因による自社サービス障害発生
    • 不正アクセスやアタックの脅威
    • 利用者がコントロールできない個所への対応
    • 余分な費用の発生

4.2 クラウド環境の監視

  • 4.2.1 クラウドサービス提供者管理層の監視
  • 4.2.2 クラウドサービス利用者管理層の監視
  • 4.2.3 外部アクセスの監視
  • 4.2.4 課金情報の監視

4.3 クラウド環境の管理

  • 4.3.1 仮想環境と共通する管理
    • キャパシティプランニング/仮想マシン配置管理
    • マイグレーション管理
    • バックアップ管理
    • スナップショット管理
  • 4.3.2 クラウド環境特有の管理
    • アクセス管理
    • 発生費用の管理

4.4 AWSの監視・管理

  • 4.4.1 AWSの概要
    • AWSのサービスとアーキテクチャ
    • AWS環境の設計
    • AWS運用手段
  • 4.4.2 AWSの監視
    • AWS提供者側管理層
    • AWS利用者側管理層
    • AWSでの発生費用
  • 4.4.3 AWSの管理
    • AWSのキャパシティプランニング/仮想マシン配置管理
    • AWSのマイグレーション管理
    • AWSのバックアップ/スナップショット管理
    • AWSのアクセス管理
    • AWSでの発生費用の最適化
    • 【コラム】IAMによるAPI操作の制限

第5章 物理・仮想・クラウド混在環境の監視・管理

5.1 混在環境を扱う際の課題

5.2 環境間の移行技術

  • 5.2.1 物理環境から仮想環境への移行(P2V)
    • P2Vのしくみ
    • P2V移行ツール
  • 5.2.2 異なる仮想環境間での移行(V2V)
    • V2Vのしくみ
    • 仮想マシンイメージフォーマットの標準化
    • V2V移行ツール
  • 5.2.3 仮想環境からクラウド環境への移行(V2C)
    • AWSのVMインポート/エクスポートサービス
    • その他クラウドサービスの移行サービス

5.3 環境間の連携技術

  • 5.3.1 Amazon Virtual Private Cloud(VPC)
    • オンプレミスとの連携例
  • 5.3.2 AWS Storage Gateway
    • オンプレミスとの連携例

5.4 運用負荷を軽減する技術

  • 5.4.1 メタクラウドAPIとは
  • 5.4.2 libcloud
    • libcloudの構成
    • libcloudの使い方
  • 5.4.3 各メタクラウドAPIの特徴と使い分け

Part II Zabbixによる物理・仮想・クラウド混在環境の統合管理
第6章 Zabbixの監視のしくみ

6.1 Zabbixアーキテクチャの概要

  • 6.1.1 Zabbixを構成する要素
    • Zabbixサーバ
    • Zabbixフロントエンド
    • Zabbixエージェント
    • Zabbixプロキシ
    • Zabbix Javaゲートウェイ
  • 6.1.2 Zabbixで扱うデータ
    • 監視結果データ
    • 設定データ

6.2 Zabbixのパフォーマンス対策

  • 6.2.1 データベースのチューニング
  • 6.2.2 プロセス数のチューニング

6.3 Zabbixの高可用性対策

  • 6.3.1 Zabbixサーバプロセスの可用性確保
  • 6.3.2 データベースサーバの可用性確保
    • データベースサーバプロセスの稼働監視
    • データベースのデータ冗長化

第7章 監視の効率性向上

7.1 監視における課題

7.2 監視の統合化

  • 7.2.1 複数拠点での監視結果の統合
    • Zabbixプロキシ
    • オンプレミス環境複数データセンター監視統合例
    • オンプレミス/クラウド監視統合例
    • 【コラム】Zabbixプロキシでの監視結果保存期間チューニング
  • 7.2.2 複数プラットフォームの監視統合
    • SNMP/SNMPトラップ監視
    • Zabbixエージェント監視
    • 外部チェック監視
    • Zabbixトラッパー監視
    • Zabbix VMware監視

7.3 Zabbixによる仮想環境の監視統合

  • 7.3.1 SNMPエージェントとZabbixの連携
    • SNMP監視
    • SNMPトラップ監視
  • 7.3.2 vSphere APIとZabbixの連携
    • 外部スクリプトの設定例
    • 【コラム】Zabbixのマクロ機能
    • zabbix_senderの活用
    • Zabbixエージェントの活用
  • 7.3.3 Zabbix VMware監視機能による連携
    • ハイパーバイザや仮想マシンが存在しなくなったときの挙動

7.4 Zabbixによるクラウド環境の監視統合

  • 7.4.1 AWS APIとZabbixの連携
  • 7.4.2 ウェブ監視を利用したAWS上システムの監視
    • AWS上のシステムをウェブ監視する際の注意点
    • 【コラム】zabbix_senderの便利な利用方法
    • Zabbixエージェントを起点としたウェブ監視
  • 7.4.3 ウェブ監視の利用と注意点
    • リダイレクトされるページの監視
    • セッション情報を維持した遷移が必要なページの監視
    • HTTPプロキシ越しに表示する必要があるページの監視
    • クライアント証明書を使った認証が必要なHTTPSページの監視
    • 表示内容が前ステップの表示内容に依存するページの監視

7.5 監視の自動化

  • 7.5.1 ネットワークディスカバリ機能を利用した監視自動化
  • 7.5.2 自動登録機能を利用した監視自動化
    • ホストメタデータの送付設定
  • 7.5.3 Zabbix APIを活用した監視自動化
    • Zabbix APIの概要
    • 不要ホストの監視設定削除自動化
  • 7.5.4 ローレベルディスカバリを利用した監視設定の自動化
    • ディスカバリルール設定
    • アイテムプロトタイプ設定
    • ローレベルディスカバリのカスタマイズ

第8章 構成情報管理の効率性向上

8.1 構成情報管理における課題

  • 8.1.1 構成管理におけるZabbixの活用
    • ホストインベントリ機能とは
    • マップ機能とは

8.2 ホストインベントリ機能を活用した機器構成情報管理

  • 8.2.1 ホストインベントリ登録方法
    • 手動登録
    • 自動登録
  • 8.2.2 ホストインベントリ機能のメリット
  • 8.2.3 仮想環境での活用例
    • 構成管理情報の自動管理
    • マクロを活用した詳細なアラート通知
  • 8.2.4 クラウド環境での活用例
    • 構成管理情報の自動管理
  • 8.2.5 効率性向上のための応用例
    • 仮想マシンとハイパーバイザ用ホストのトリガー依存関係を自動設定する

8.3 マップ機能を活用したネットワーク構成情報管理

  • 8.3.1 マップ機能を使った環境構成の視覚化
  • 8.3.2 Zabbixホストグループを活用したマップ設定
  • 8.3.3 Zabbix APIを活用したマップ設定
    • Zabbix API mapメソッドの利用方法

第9章 設定ファイル,ソフトウェアパッケージ管理の効率性向上

9.1 設定ファイル,ソフトウェアパッケージ管理における課題

  • 9.1.1 Zabbixの環境における課題

9.2 効率性向上へのアプローチ

  • 9.2.1 環境構築の自動化
    • マシンテンプレートの活用
    • 構築自動化ツールの活用
  • 9.2.2 構築後の運用作業の自動化
    • Chefを利用した運用作業自動化
    • 【コラム】ChefとPuppet

9.3 Zabbix環境への活用

  • 9.3.1 CloudInitを活用したZabbixエージェント構築自動化
    • マシンテンプレートの活用
    • CloudInitの活用
  • 9.3.2 Chefを活用したZabbixエージェント環境運用自動化
    • Chefで管理すべきZabbix環境情報
    • Chefを使ったZabbix環境管理手順
    • Zabbixエージェントインストール管理
    • Zabbixエージェントアップデート管理
    • Zabbixエージェント設定ファイル変更管理
    • 【コラム】Zabbixエージェント設定ファイルを扱う際の注意点
  • 9.3.3 Chefクライアント環境,Zabbixエージェント環境の構築・運用自動化
    • Knife EC2の活用
    • 構築自動化ツールの活用
    • マシンテンプレートイメージの活用
    • 【コラム】選べるChefサーバ

第10章 ログ管理の効率性向上

10.1 ログ管理における課題

10.2 ログ管理の効率性向上へのアプローチ

  • 10.2.1 Zabbixのログ監視機能
  • 10.2.2 FluentdとZabbix
    • Fluentdとは
    • FluentdとZabbixの連携

10.3 Zabbixログ監視機能を活用したログ集約管理

  • 10.3.1 ログ監視のしくみ
    • ログ監視の基本設定
  • 10.3.2 ログ監視の活用例
    • 大量ログの監視
    • 複数行に渡るログの対応
  • Zabbixエージェントが導入できない機器のログ監視

10.4 Fluentdを活用したログ集約・解析

  • 10.4.1 Fluentdによるログ集約
  • 10.4.2 Fluentdによるログ解析
    • Apacheアクセスログのレスポンスコード別解析
    • Apacheアクセスログのレスポンス時間別解析
    • MySQLスロークエリログ解析

第11章 環境操作の効率性向上

11.1 環境操作における課題

11.2 グローバルスクリプト機能を利用した操作の統合

  • 11.2.1 グローバルスクリプトの基本的な使い方
    • Zabbixサーバの設定
    • 【コラム】root権限での実行
    • Zabbixエージェントの設定
    • グローバルスクリプトの登録
  • 11.2.2 グローバルスクリプトの活用例

11.3 アクション機能を利用した自動処理化

  • 【コラム】内部イベントにおけるアクション
  • 11.3.1 アクション機能の基本的な使い方
    • アクション機能を利用するための事前設定
    • アクションの登録
    • 【コラム】アクションステップの効果的な利用
  • 11.3.2 アクション機能活用例
    • カスタムスクリプトを利用した仮想マシンメモリ割り当て自動変更例
    • SSH接続を利用したESXiハイパーバイザから仮想マシン再起動例
  • 11.3.3 メッセージ通知の応用
    • スクリプトを利用したAmazon SNSへのメッセージ通知
    • Amazon SESのSMTPサーバ機能と連携したアラートメール通知
  • 11.3.4 トリガー条件の効果的な設定
    • 過去からの推移状況をもとに判定するパターン
    • 複数ホスト,複数アイテムのデータを計算処理した結果をもとに判定するパターン
    • マクロで指定したデータを含む計算処理結果をもとに判定するパターン
    • トリガーに対してメンテナンス時間を指定するパターン
    • 計算アイテムを活用した判定パターン

11.4 GateOneと連携したSSH接続の統合管理

  • 11.4.1 マップURL機能の使い方
  • 11.4.2 ZabbixとGateOneの連携
    • GateOne連携用ページの作成
    • マップURLの登録

11.5 時間のかかる処理への対応

  • 11.5.1 バックグラウンド処理化
    • system.runのnowaitオプション
    • 処理スクリプトの書き方を変える
  • 11.5.2 キューイングシステムの利用

第12章 HyClops for Zabbixの概要

12.1 HyClops for Zabbixとは

  • 12.1.1 HyClopsでできること
    • 各環境上のマシン状態管理機能
    • 仮想マシン情報の自動登録・自動削除機能
    • 各環境に最適なテンプレート自動割り当て機能
    • GateOne連携によるSSHコンソール接続機能
  • 12.1.2 HyClopsのアーキテクチャ
    • vSphere API,AWS API実行のアーキテクチャ
    • 仮想マシンやインスタンスの関連付けのアーキテクチャ
    • 仮想マシンやインスタンスの自動登録・自動削除機能のアーキテクチャ
  • 12.1.3 公開先情報

Appendix

A.1 SNMPTTを利用したSNMPトラップ監視環境の構築

A.2 Zabbix VMware監視機能の監視可能アイテム

A.3 Chefの導入と利用

A.4 Fluentdの導入と利用

A.5 GateOneの導入と利用

A.6 HyClops for Zabbixの導入と利用

サポート

ダウンロード

本書のサンプルコードのダウンロード

本書で使用したサンプルコードをGitHub上で公開しています。

[GitHub]
https://github.com/tech-sketch/zabbix_book_sample.git

補足情報

参考サイト

本書は,Zabbix 2.2をベースに解説を行っています。できる限り最新の情報をもとに記載していますが,Zabbixは現在も活発に機能追加やバグフィックスなど開発が進められています。そのため,一部掲載内容と最新版で仕様が異なる場合があります。

また,筆者が公開しているHyClops for Zabbixについても,開発を継続しており,本書での記載内容と一部異なる可能性があります。
これらの最新の情報につきましては,それぞれの利用マニュアルを参考にしていただければと思います。

[Zabbix公式マニュアル]
http://www.zabbix.com/documentation/
[HyClops for Zabbix公式サイト]
http://tech-sketch.github.io/hyclops

また,ZabbixにはZABBIX-JPという日本のコミュニティが存在します。

コミュニティには多くのZabbix利用に関する情報が集まっています。

ZABBIX-JPのコミュニティサイトについてもぜひ活用してください。

[ZABBIX-JP]
http://www.zabbix.jp/

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2018年9月14日最終更新)

P.119 表6-1,「configuration syncer」の概要

Zabbix管理画面から登録された設定情報は一旦キャッシュメモリ上に登録され、このプロセスによりデータベース書き込みを実行
データベース上の設定情報をConfigurationキャッシュに同期する処理を実行

P.124 本文,上から7行目

(Zabbix 2.2以降)
(Zabbix 3.4以降)

P.125 本文,上から2行目

(pollerまたはtrapperでの処理)
configuration syncerまたはtrapperでの処理)

(以下2018年1月17日更新)

P.298 「手順3 メディア登録」内

スクリプト名:send_to_sns.rb
スクリプト名:send_message_to_sns.rb

(以下2017年3月10日更新)

P.30 脚注のURL

注7:http://www.zabbix.com/wiki/templates/start
注8:http://www.zabbix.com/wiki/scripts/gentemplate.pl
注9:http://www.wtcs.org/informant/products.htm
注7 https://www.zabbix.org/wiki/Zabbix_Templates
注8 https://github.com/cavaliercoder/mib2zabbix
注9 http://www.snmp-informant.com/

P.36 脚注のURL

注b http://www.wtcs.org/informant/download.htm
注b http://www.snmp-informant.com/downloads.htm

P.68 脚注20内の日本OpenStackユーザ会のURL

http://openstack.jp/community.html
https://openstack.jp/about_josug

P.102 脚注のURL

注1 http://www.networld.co.jp/platespin/migrate/overview.htm
注1 https://www.netiq.com/ja-jp/products/migrate/

P.231 脚注のURL

注11 http://docs.opscode.com/essentials_cookbook_attribute_files.html
注11 https://docs.chef.io/attributes.html

P.236 脚注のURL

注a http://docs.opscode.com/chef_solo.html
注a https://docs.chef.io/chef_solo.html

P.247 下から2行目

~論理和で結合しています。
~論理で結合しています。

P.248 上から1行目

~トリガー条件式は&(論理和)や|(論理積)など~
~トリガー条件式は&(論理)や|(論理)など~

商品一覧