blog

Zabbixの周辺: エンタープライズ分散監視の展開

zabbixは分散システム監視とネットワーク監視機能を提供するオープンソース、エンタープライズグレードのWebベースのソリューションです。zabbixを利用することで、運用保守担当者の重いサーバ管理作...

Dec 12, 2014 · 11 min. read
シェア

最近、Zabbix監視の研究では、サーバルームが複数の都市に分散しているため、監視ソリューションとしてzabbixプロキシを使用し、各ノードにzabbixプロキシを配置し、zabbixプロキシはエージェントのデータを収集し、収集したデータはzabbixサーバにアクティブにプッシュされ、zabbixサーバはデータをデータベースに格納し、WEBフロントエンドに表示します。データをデータベースに格納し、WEBフロントエンドに表示します。

I. Zabbixの主な機能、メリット、デメリットの説明

1、Zabbixの主な機能

1)アプリケーション監視

データベース/SSH/Apache/Nginxアプリケーションの監視。

2)サーバー監視 サーバー監視

CPU、メモリ、SWAP、ディスク容量、ネットワークカードのトラフィック監視など。

3)ネットワーク監視 ネットワーク機器監視

Cisco、Juniper、3Comなどのネットワークデバイスをサポートします。ネットワークデバイスは、SNMPプロトコルを介して監視されます。

4) カスタム監視の追加 Zabbixで監視できない場合、カスタム監視を追加することができます。

2.Zabbixの優位性

2) システムには、直接使用できるさまざまなモニタリングテンプレートが付属しています。

(3) 分散配置と WEB 集中管理をサポートします。

4) ホストとネットワークデバイスの自動検出。

(5) WEB監視:WEBダウンロード速度、リターンコード、レスポンスタイムを監視できます。

6) リアルタイムおよび過去の監視・分析データの提供。

7)電子メールアラーム、障害レベルに応じて|サーバーの種類|ビジネスタイプは、関連する責任者に電子メールメールを送信します。

3.Zabbixのデメリット

1) 監視対象マシンの上にエージェントをインストールする必要があります。

2) すべての設定情報はデータベースに保存され、監視プラットフォーム全体のボトルネックとなっています。

Zabbix分散配備要件分析

1.ソフトウェアの要件

公式推奨ソフトウェア構成

1) MySQL5.0.3以降ZabbixのバックエンドデータベースとしてMySQLを使用する場合、InnoDBエンジンが必要です。

2) PHP 5.3.0以降

3) Apache 1.3.12 またはそれ以降

2.ハードウェア要件

公式推奨の最小ハードウェア構成:

#p#

III.Zabbix分散配備の実装

1.分散配置トポロジー図

その他の注意事項

プロキシがアクティブモードで配備されている場合、Zabbixサーバの負荷は最も低くなります。

1) サーバー:データベースへのデータ書き込みを担当し、Apache | Nginx + phpを通してWEBフロントエンドの表示を担当します。

2)プロキシ:サーバーが監視側のデータを収集し、収集したデータを積極的にサーバーに送信します。

3) データベース:全ての設定情報はデータベースに保存され、Zabbixサーバデータベースとプロキシデータベースは独立している必要があります。

4) エージェント: エージェントの役割は、ホストのデータを取得し、収集したデータをサーバに送信する(アクティブモード)、またはサーバが率先してデータを取得することです。

(5) 電子メール:Qmail|postfix経由のSMTPがアラームメールの送信を担当します。

2.Zabbixの分散インストールとデプロイメント

1) Mysqlデータベースのインストール

2) LNMP + Zabbixサーバのインストール

3) Zabbixプロキシのインストール

4) Zabbixエージェントのインストール

[root@www20 shell]# cat zabbix_agentd_install.sh 
#!/bin/sh 
#Create by sftanaka  
yum -y install net-snmp 
yum -y install net-snmp-devel 
BASE_DIR="/data/software" 
TAR="zabbix-2.2.1.tar.gz" 
tar -zxvf $BASE_DIR/$TAR -C$BASE_DIR 
cd $BASE_DIR/zabbix-2.2.1 
./configure--prefix=/usr/local/zabbix --sysconfdir=/etc/zabbix --enable-agent 
make && make install 
groupadd zabbix 
useradd zabbix -g zabbix 
cpmisc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd 
chmod 700/etc/init.d/zabbix_agentd 
chown zabbix.zabbix/etc/init.d/zabbix_agentd 
sed -i "/BASEDIR=/s#/.*#/usr/local/zabbix#" /etc/init.d/zabbix_agentd 
sed -i"s#bin/zabbix_agentd#sbin/zabbix_agentd#" /etc/init.d/zabbix_agentd 
sed -i"s#Server=.1#Server=192.168.161.129#"/etc/zabbix/zabbix_agentd.conf 
sed -i"s#ServerActive=.1#\#ServerActive=.1#"/etc/zabbix/zabbix_agentd.conf 
sed -i "/Hostname=/s#=.*#"=$HOSTNAME#""/etc/zabbix/zabbix_agentd.conf 
sed -i"s#\#/tmp/zabbix_agentd.pid#/data/logs/zabbix_agentd.pid#"/etc/zabbix/zabbix_agentd.conf 
sed -i"s#/tmp/zabbix_agentd.log#/data/logs/zabbix_agentd.log#"/etc/zabbix/zabbix_agentd.conf 
sed -i "s#\#Timeout=3#Timeout=30#" /etc/zabbix/zabbix_agentd.conf 
cat>>/etc/services<<EOF 
#Zabbix services 
zabbix-agent 10050/tcp#Zabbix Agent 
zabbix-agent 10050/udp#Zabbix Agent 
zabbix-trapper 10051/tcp#Zabbix Trapper 
zabbix-trapper 10051/udp#Zabbix Trapper 
EOF 
/etc/init.d/zabbix_agentdstart 

Zabbix WEBフロントエンド設定

1、プロキシエージェントの設定

2、グループとホストを追加

通常、グループはWEB、MYSQL、memcacheなどのチャネルやサービスタイプによってグループ化されます。

3、カスタム監視テンプレート、監視項目とトリガー

#p#

V. zabbixのメイン機能

1、サーバー監視

1) CPU負荷監視

2) メモリ容量の監視

3) 椎間板スペースのモニタリング

4) スイッチングパーティションの監視

5) ネットワークカードのトラフィック監視

これに加えて、サーバーのリブートの監視、ユーザーの追加や削除の監視、ホストの生存状況の監視もあります。

2.アプリケーション監視

Zabbixには多くのテンプレートが付属しており、ホストを追加する際に関連するテンプレートをリンクするだけです。

アラームはホストの SSH サービスや Apache サービスが停止したときに発生します。

3、WEBモニタリング

Web MonitoringはWebアプリケーションを監視するために使用され、Webアプリケーションのダウンロード速度、リターンコード、応答時間を監視することができます。また、リターンコードが200でない場合、アラームを生成することができます。

4.Zabbixの画面

画面にはさまざまな情報がまとめて表示されるため、特定のホストの監視情報に集中しやすくなります。

5.Zabbixマップ

Zabbixマップは監視対象機器のトポロジーをグラフィカルに表示し、障害イベントを異なるマーカーで表示するために使用され、機器の全体的な状況を非常に直感的に把握することができます。

#p#

VI. Zabbixカスタム監視

実際のアプリケーションでは、多くの監視システムは、実際のニーズに応じてカスタム監視を追加する必要性を満たすことができません。例:監視アプリケーションサーバタキシードキューイングは、キューが2000以上のアラームです。監視apacheは、mysqlのリンク数は、2000以上のときにアラームなど、この時点でZabbixが完了するスクリプトを使用する必要があります。

例:http接続数、ESTABLISHED接続数、TIME_WAIT接続数を監視し、100を超えるとアラームを発し、WEBページでリアルタイムに接続数を表示します。

1.ESTABLISHEDとTIME_WAIT接続を取り出すために、監視したいサーバーの上でシェル/pythonスクリプトを書きます。

[root@monitor scripts]# catcheckservices.sh 
#!/bin/sh 
#Create by sftanaka  
ARGS=1 
if [ $# -ne "$ARGS"];then 
echo "Please input one arguement"; 
fi 
case $1 in 
EST_80) 
result=`netstat -anp | grep :80 | grep EST | wc -l` 
echo$result 
;; 
TIME_OUT_80) 
result=`netstat-anp | grep :80 | grep TIME_WAIT | wc -l` 
echo$result 
;; 
EST_3306) 
result=`netstat -anp | grep :3306 | grep EST | wc -l` 
echo $result 
;; 
TIME_OUT_3306) 
result=`netstat -anp | grep:3306 | grep TIME_WAIT | wc -l` 
echo $result 
;; 
EST_11211) 
result=`netstat -anp | grep :11211 | grep EST | wc -l` 
echo $result 
;; 
TIME_OUT_11211) 
result=`netstat -anp | grep:11211 | grep TIME_WAIT | wc -l` 
echo $result 
;; 
*) 
echo"Usage:$0(EST_80|TIME_OUT_80|EST_3306|TIME_OUT_3306|EST_11211|TIME_OUT_11211)" 
;; 
esac 

2.以下のフォーマットでZabbix_agentd.conf内にUserParameterを追加します。 Zabbixの場合、スクリプトは実際にはプラグインです。

UserParameter=checkservices.sh[*],/etc/zabbix/scripts/checkservices.sh $1 $2 

agentdサーバを再起動し、zabbixサーバでzabbix_getを使用して値を取得します。

3は、サーバーが複数の時間を持って監視するために、最も簡単な方法は、上記のサーバーを監視するためのリンクで、テンプレート(テンプレート)を記述することです。

4.新しく追加したテンプレートLinux_service_templatesにアプリケーションを追加します。

5.新しく追加したテンプレートLinux_service_templatesに項目を追加します。以下は、http ESTABLISHED監視エントリを追加するものです。

6、新しく追加されたテンプレートLinux_service_templatesにトリガーを追加します。以下は、httpのESTABLISHEDトリガを追加することです、接続数が2000以上の場合、アラーム、障害レベルはHighです。

7、http接続のWEBフロントエンドリアルタイムビューでは、phを設定する必要があります。phは、複数のemデータに追加することができます。

8、上記のリンクで監視するホスト上のグラフを見るには、単にテンプレートLinux_service_templates。

9.WEBフロントエンドでリアルタイムの接続を表示します。

Http 接続ステータス:

Mysql 接続ステータス:

#p#

Zabbix発見

1.ネットワークの発見

Zabbixネットワークディスカバリはネットワーク上のライブホストを自動的に検出することができます。 プロキシエージェントまたはZabbixサーバを通してネットワーク上のライブホストを検出し、アクションで定義した条件に従って自動的にZabbix監視に追加することができます。

3)Actionsの動作を設定し、Actionsの対象ホストをshwwwグループに追加し、監視対象のテンプレートを紐付けます。

4) Discover自動検出ホストがZabbixに自動的に追加されていることを確認します。

2.Zabbix低レベルディスカバリ

Zabbixの低レベルディスカバリはモニタ、トリガ、イメージを自動的に作成することができます。zabbixはホスト上のファイルシステムやネットワークインターフェイスを自動的に検出することができるため、ファイルシステムやネットワークインターフェイスごとにモニタ、トリガ、イメージを手動で作成する必要はありません。zabbixは不要なモニタを自動的に削除することもできます。例えば、上記の例では、agentdが24時間以上ダウンしている場合、自動的にモニタを削除することができます。Zabbixは不要な監視項目を自動的に削除することもできます。例えば、上記の例では、agentdが24時間以上ダウンした場合、監視項目を自動的に削除することができますので、アクションで設定するだけです。

例:サーバー上のすべてのTCPポートを監視することは、低レベル・ディスカバリーで簡単に実現できます。

Zabbixアラームメールメカニズム

1、アラームメールを送信するビジネスの種類に基づいて

データベースサーバーに問題がある場合はDBAグループに、システムに問題がある場合はSystemグループに送信されます。

2、メール送信の障害レベルまたは時間に基づいています。

IX. Zabbix資産管理

Zabbixはホスト名、OS、CPU情報、MACなどの情報をホストから自動的に収集することができます。ホストを追加する際は、ホストインベントリの自動収集を有効にし、アイテムを追加する必要があります。

X. Zabbixレポート機能

Read next

CVMS1.0-デスクトップクラウド管理システムの再定義

アセンド・インフォメーションは、セキュリティ、使いやすさなどの面で最高のソリューションを提供し、管理インターフェイスを通じてクラウドデスクトップのシステム全体の統合監視と管理を実現するデスクトップクラウド管理システムCVMS1.0をリリースしました。

Dec 9, 2014 · 2 min read