Zabbix 入門|ログ監視と分析をやってみよう 研修コースに参加してみた

今回参加した研修コースは Zabbix入門 ~ログ監視と分析をやってみよう です。
監視やモニタリングは最近ツールが多くなっていますね。DataDog や国産では Mackerel (マカレル) などに加えて、アプリケーション監視も増えています。ちなみに最近弊社で開発した Webアプリ では NewRelic を導入しています。いい感じです。
そんな監視・モニタリングツールの活況もあってか今回のコースも満員です!!
このコースでは、何をどのように監視するのか理解した上で、監視ツールでも歴史の長い Zabbix を使って、実際にエラー検知をやってみました。 変な話ですが、エラーを仕込んでちゃんと検知できると、とてもうれしい体験でした。
はじめて Zabbix の設定や障害検知、運用自動化などにこれから取り組もうという方にはとてもオススメの内容です !
では、コース内容をレポートします !!
もくじ
コース情報
想定している受講者 |
|
---|---|
受講目標 | Zabbixの機能概要などを理解する |
講師紹介
インフラ系コースではおなじみ 岩木 慎一さん です。
岩木さんが開発をされていたときは、監視もベンダープロプライエタリなものだったそうです。
今日やること
続いて、今日のコースでやることを紹介いただきました。
- Zabbix を設定
- エージェントの設定
- 監視対象の設定
- 実際どんなインターフェースなのか見てみる
なぜシステムを監視するのか
まずは、なぜ監視するのか、というところです。
もはや人間が手動で監視コマンドを叩くような牧歌的な時代ではなく、また 1 分停止で数千万円のような損害にもなる時代なので、自動化が必要な領域です。
- 構成が複雑化している
- 仮想化もクラウドもオンプレもある
- 手元に物理的なシステムが無く論理的になっている
- そもそもサーバが何台あるのかすらわからない。。
- システム監視を自動化するメリット
- 構成が見える
- 安定稼働に繋げられる
- 障害発生->復旧が速くなる
- キャパシティプランニングがしやすくなる
- アクセスなどの傾向がわかる
- 短期ではわからない
なにを監視するのか
続いて、何を監視するのか、当然ながら、その対象によってやり方が変わります。
- 稼働監視
ping
による死活監視- アプリケーションの応答確認
- その応答時間の遅延監視
- リソース監視
- メモリ、ネットワークなどの使用量
- BMC というプロセッサを組み込んでやっている
- サーバに内包されているケースもある
- 電源、温度など物理状態の監視
- IPMI という仕様がある
- 使用量のしきい値を設定してアラートを発火
- 古くから使われているプロトコルが SNMP ( Simple Network Management Protocol )
Zabbix とは
- OSS (GPLライセンス)
- ラトビアの Zabbix LLC が開発
- エージェントの動作が軽い
2001 年に発表されたので、もう 20 年近くになるのですね。
岩木さんのお話では監視も昔はベンダープロプライエタリだったので、OSS で GPL ライセンスされたことが新しかったのかも知れません。
Zabbix の機能
- SNMP に対応している
- 様々な監視方法に対応している
- エージェントを入れなくても監視できる
>ping
の死活監視- SSH/TELNET での監視
- ハードウェア監視
- Web GUI なのでわかりやすく設定して監視できる
- とはいえ、監視対象にもよるがちょっとわかりにくい。。
- あとで見てみましょう
- コマンド入力よりは楽になった
- 監視状態をマップやグラフで表示
- 監視項目のテンプレートが用意されている
- たくさん項目を設定するのでテンプレを選ぶとそのまま使えることもある
- テンプレートのインポート/エクスポートも可能
- 収集したデータは RDB に保存。各種 RDBMS に対応している
- MySQL や PostgresSQLなど
- 仮想化やクラウドのインフラ監視にも対応
- 今のトレンドには合致している
- 大規模監視もできる
- Zabbix 自体も冗長化できる
- 1 つの Zabbix サーバではなく分散監視にも対応
- 監視対象を自動探索 (オートディスカバリ) する
- VMware ならオートスケールも監視追加できる
- 元のイメージにエージェントを入れておけばできる
- OSS
- ライセンス費用はかからない
- 1 年半でメジャーアップデート
- 現行は3.x だが、2018 年 2 月に 4.x が出るはずが出てない ( その後 ver 4.0 が 2018 年 10 月にリリース)
ほぼオールインワンで監視できて、これが OSS とは今更ながらすごいです。。
Zabbix の構成
Zabbix のシステム要件
- 最小ではRaspberry Piでも動く (!!)
- RDMBS、ApacheとPHPが必要
- 使いたい機能によっては追加パッケージが必要
演習
ここからは Zabbix をインストールして演習していきます。
Zabbix インストール
研修ではすでにインストールされているものもあり、コマンドすべてを実行した訳ではありませんが、↓のようにインストールと設定をしていきます。
Zabbix 用 DB の作成
# mysql -u root -p
MariaDB [(none)]> show databases;
MariaDB [(none)]> create database zabbix;
MariaDB [(none)]> create user ‘zabbix’@‘%’ identified by ‘zabbixpass’; # ユーザー名とパスワードは一例
MariaDB [(none)]> select user,host from mysql.user;
MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'%';
MariaDB [(none)]> show grants for zabbix;
MariaDB [(none)]> exit
# cd /usr/share/doc/zabbix-server-mysql-3.0.* # * 部分はバージョンによって異なる
# gunzip create.sql.gz
# mysql -u root -p zabbix < create.sql
Zabbix サーバの設定変更
# cd /etc/zabbix
# cp -p zabbix_server.conf zabbix_server.conf.original
# vi zabbix_server.conf
DBPassword=zabbixpass # DBPassword行にパスワードをセット
Zabbix サーバの起動
# systemctl start zabbix-server
# systemctl enable zabbix-server
Zabbixエージェントの起動(自分自身の監視)
# systemctl start zabbix-agent
# systemctl enable zabbix-agent
Apache zabbix用定義ファイルの修正(※実運用環境に応じて修正)
# systemctl start zabbix-agent
# systemctl enable zabbix-agent
最後に、 # systemctl restart httpd
で Web サーバを reboot します。
というわけで、表示されました!!
その上で、DB アクセス情報を設定し、ログインするとダッシュボードが表示されます。いえい!
zabbix agent インストール
続いて、監視対象のサーバにエージェントを入れます。
- リポジトリの追加
# yum -y install http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
- エージェントのインストール
# yum -y install zabbix-agent
- エージェントのコンフィグファイル変更
# vi /etc/zabbix/zabbix_agentd.conf
Server={Zabbix サーバの IP アドレス} ServerActive={Zabbix サーバーの IP アドレス} Hostname={自身のホスト名}
- プロセス起動
# service zabbix-agent start
- エージェントと自動起動登録
# chkconfig zabbix-agent on
- ファイアウォールへのポート10050 許可設定
# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT
- ファイアウォールの再起動
# service iptables rest
- リポジトリの無効化
# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/zabbix.repo
Zabbix のトリガーの設定など監視フロー
まずは対象サーバの状態を確認します。
続いて、Zabbix の GUI で 「どの対象の、どの項目で、どんな閾値を設定し、閾値を超えるとどんなイベントを発火させるのか」 を設定します。
- テンプレートを選択
- 監視対象
- 何を監視するか
- トリガーでアラート発火の閾値の設定
- どう通知するのかアクションを設定
実際にエラーを起こして検知する
監視対象のサーバのログに "ERROR"
を書いてエラーを発生させ、エラー検知するか確かめると、検知されました! いえーい!!
このエラーが検知できたところでコースは終了となりました。
まとめ
何をどのように監視する必要があるのか学んだ上で、実際に Zabbix を設定して、エラーを検知できました!!
ただ、今回のコースではモニタリング->グラフ化して、どんな傾向にあるなど分析が出来なかったので、後続コースがあると良いかも知れません。(とはいえ、どうやってストリームデータを作って、予兆を出すには、どうするんだろう... よいアイデアお待ちしております!!)
タイトルに対して不足部分がありましたが、監視をはじめて設定するという方にはエラー検知までの確認ができるので、とてもオススメです !!
label SE カレッジの無料見学、資料請求などお問い合わせはこちらから!!
label SEカレッジを詳しく知りたいという方はこちらから !!

IT専門の定額制研修 月額25,000円 ~/ 1社 で IT研修 制度を導入できます。
年間 670 講座をほぼ毎日開催中!!

SEプラスにしかないコンテンツや、研修サービスの運営情報を発信しています。