最後の章によって:「他のマシンを監視ドッカー2つの本当のZABBIXの三部作」戦闘の後、我々は意志、完了するために、機械、ZABBIXエージェント接続ZABBIXサーバ上でZABBIXエージェントをインストールすることで、機械の監視について学びました;彼らは、このように監視マシンを実現する、タイミングZABBIXサーバマシンに与える情報
などの成功などの論理障害を実行し、そのようないくつかのビジネス訪問のための情報として、これらの基本的な情報を私たちはCPUのみを監視することができ、ディスク情報は、我々はまた、カスタム監視項目を作成するために私たちを必要とする、監視する、およびこの章では、我々はそれを監視し、実際のカスタムアイテムを取ります。
記事リンクの全シリーズ:
- 「ドッカー下の本当のZABBIXの三部作のひとつ:スピードの経験」。
- 「2のドッカー戦闘ZABBIX三部作の下で:モニタリング他のマシン」。
- 「ドッカー次の3つの戦闘ZABBIXトリロジー:カスタム監視項目」。
マシン展開一覧
一般的には、4台のマシンには、次の各機能があります。
。Aは、Webアプリケーションを実行しているマシンがあると、コンテナはTomcatがあり、このアプリケーションでは、インタフェースにhttpを持っている:// localhostを:8080 / zabbixcustomitemdemo /カウントは、最後まで業務ボリューム(たとえば、サイト訪問を)返します。
。Bは、監視対象のアイテムをカスタマイズするための担体として、機械設置ZABBIXエージェントを有します。
。Cは、マシンにインストールZABBIXサーバを持っています。
。Dデータベースシステムとして機械インストールのMySQL、ZABBIXを有します。
全体的な展開、下図のように:
Webアプリケーションサーバを実行します
このアプリケーションは、コードが以下に示されるHTTPサービス、毎分特定のサービストラフィックの範囲を提供するためのスプリングMVCコントローラを有するMavenのJavaのウェブを、基づいています。
@Controller
public class CountController {
@RequestMapping("/count")
@ResponseBody
public int count(String model, String type) {
int base;
int max;
int min;
if("a".equals(model)){
base = 50000;
}else{
base =10000;
}
if("0".equals(type)){
max = 9000;
min = 1000;
}else{
max = 1000;
min = 0;
}
return base + new Random().nextInt(max)%(max-min+1);
}
}
我々は上記のコードから見ることができたときに返さは、httpサービスは乱数を返しモデルは「」ランダムに等しくない「」開始するには50000から乱数を返し、モデルに等しい場合、このサービスは、2つのパラメータモデルとタイプを受け入れ開始から数10000、タイプが「0」に等しい場合、ベースに基づいて付加価値のタイプが「0」に等しくない場合9000、1000の間であり、値0に基づいてベースの増加1000間;
以下に示すように、これは、実用的なエンジニアリングzabbixcustomitemdemoで、このディレクトリの複数のエンジニアリング、zq2599 / blog_demos.git:プロジェクト全体のコードは、アドレス[email protected]、Gitリポジトリにアップロードされました
ドッキングウィンドウ-compose.ymlファイル
私たちは今、ドッキングウィンドウ-compose.ymlファイルにそれを開発するために、整理明確に4台のマシンの機能と関係を持っている上:
version: '2'
services:
zabbix-mysql-service:
image: daocloud.io/library/mysql:8
container_name: zabbix-mysql-service
environment:
- MYSQL_ROOT_PASSWORD=888888
restart: always
zabbix-server-service:
image: monitoringartist/zabbix-xxl:3.2.6
links:
- zabbix-mysql-service:mysqlhost
container_name: zabbix-server-service
restart: always
depends_on:
- zabbix-mysql-service
ports:
- "8888:80"
environment:
- ZS_DBHost=mysqlhost
- ZS_DBUser=root
- ZS_DBPassword=888888
zabbix-agent-a:
image: zabbix/zabbix-agent:ubuntu-3.2.6
links:
- zabbix-server-service:zabbixserverhost
container_name: zabbix-agent-a
restart: always
depends_on:
- zabbix-server-service
environment:
- ZBX_HOSTNAME=zabbix-agent-service-a
- ZBX_SERVER_HOST=zabbixserverhost
tomcat-server-service:
image: bolingcavalry/bolingcavalrytomcat:0.0.1
container_name: tomcat-server
restart: always
ports:
- "8080:8080"
上に示したYMLコンテンツファイル、前記のMySQL、ZABBIXサーバ、ZABBIXエージェントの構成と前章「低級ドッカー実際ZABBIXビストリロジー:他の機械を監視する」は同じであり、それは、新しいTomcatのミラーでありますこの画像は、私はTomcatの公式の画像に基づいて、小さな変更を加えたポイントは、Tomcatは、オンラインTomcatは記事を参照して、アプリケーションを展開するWebアプリケーションのこのオンラインサポートの展開を行っている、」本当のドッキングウィンドウを作成したカスタムのTomcatミラーをDockerfile、オンラインWebアプリケーションの展開を達成するために"
準備ができYMLファイルをしている場合は、ターミナルを開き、ディレクトリYML内のファイルを実行-dがアップドッキングウィンドウ-構成するすべてのコンテナが起動し、ファイルYMLことができます。
なお、前の章では、お使いのコンピュータの前に実行された場合は、「2のドッカー戦闘ZABBIX三部作の下で:他のマシンの監視」ドッカー-compose.ymlファイル、そしてドッキングウィンドウ・作曲アップ-dを開始するようにします促さ実行し、このすべてのコンテナをリストするドッキングウィンドウのPS -aを渡すことができ、また、ダウンドッキングウィンドウ・作曲した後、ドッキングウィンドウの停止コマンドによって、コンテナは同じ名前が存在しているあなたが実行ドッキングウィンドウ-compose.ymlファイルディレクトリの最後の章に行くことができ、この時に失敗すべてのコンテナを停止するためには、[削除]をクリックし、次にドッキングウィンドウ・コンrmコマンドを実行すると、
Webアプリケーションのデプロイ
ターミナルを開いて、Webプロジェクトのzabbixcustomitemdemo下のディレクトリを入力し、コマンドの実行真tomcat7にクリーン= -U -Dmaven.test.skipためMVNのパッケージ変更:再デプロイし、コンテナのTomcatのWebプロジェクトに展開することができ、展開の詳細については、オンラインの記事を参照してください"戦闘ドッキングウィンドウは、「Webアプリケーションの展開ラインを達成するためにDockerfileカスタムTomcatのミラーを書きます。
展開が成功した後、ブラウザを開いて、http:// localhost:8080 / zabbixcustomitemdemo /回数、以下に示すように、ウェブサーバは、番号を返します。
URLにアクセスするためのシェルスクリプトの生成
次に我々はこのスクリプト際にシェルスクリプト、打ち上げHTTPリクエストのHTTP機能でZABBIXエージェント上で実行したい:この場合は、// localhostを:? 8080 / zabbixcustomitemdemo /カウントモデル= A&タイプ= 0、あなたはデジタルWebサービス応答を得ることができますスクリプトは1分間に1回呼ばれ、あなたは完全な監視のグラフを得ることができます。
まず、ドッカーEXEC -it ZABBIXエージェント-A / binに/のbash ログインZABBIX剤容器。
。ログイン後、B、実行更新apt-getの更新がなりやすいです。
。cが実行したのwgetをインストールapt-getをとVimをインストールapt-getを、viとwgetのツールをインストールします。
。次のようにD新しいディレクトリは/ usr /仕事/は、シェルファイルbiz_count.sh使用VIを作成するには、このディレクトリには、読み取ります。
#"!/bin/bash
wget -qO- http://tomcathost:8080/zabbixcustomitemdemo/count?model=$1\&type=$2
echo ""
機能コードは、上記の上院へのシェルを持つモデルとタイプである数、取得するためにHTTPサービスを訪問することで、
2つの細部に注意を:
まず:コードの最後の行エコーを「」、このラインがあり、非常に有用であることが判明しましたデジタル出力のhttpはラップを返された後、この行は、成功したZABBIXサーバであることを報告したデータをラップし、実施することになる。
第二:コマンド次のwget urlパラメータ、脱出の前に「&」記号をスラッシュに"";
。eは実行のchmod A + X biz_count.shを、シェルに与えられた実行権限。
監視項目にエージェントを追加します。
私たちは、あなたがZABBIXサーバ上のモニタ項目のバックを使用できるように、カスタム監視項目を追加したい、ZABBIXエージェントコンテナに進みます。
。/etc/zabbix/zabbix_agentd.dディレクトリでA、次のように、biz.confファイルを追加します。
UserParameter=get_total_num[*],/usr/work/biz_count.sh $1 $2
上記のコードは、カスタム監視項目で構成され、名前がget_total_numは、我々は呼び出しがスクリプトをbiz_count.sh監視項目の中に2つのパラメータを受け入れることができている、と2はbiz_count.shに直接渡される外部パラメータに入って来ました。
。B実行のchmod A + Rのbiz.confファイルが読み取り可能であるようにします。
ZABBIXエージェントのテスト
ZABBIXエージェントコンテナに続行、ちょうど追加された新たな監視項目をテストするには、次のコマンドを実行します。
/usr/sbin/zabbix_agentd -t get_total_num[a,0]
括弧内に、0は、2つのパラメータは "" と "0" であることを示し、我々は、それぞれ、4回行わ、パラメータ[0]、[B、0]、[1]、[ B、1]、以下に示すような結果を得ます:
54741,17097,50564,10919戻り値は、それぞれ、前の2つのJavaコードは、パラメータに見出すことができる組み合わせによるデジタルパラメータ変化の大きさの範囲に、有効に、4です。
発効を監視するためには、ZABBIXエージェントを再起動する必要がありますが、ここではあなたが試すことができ、より迅速な方法があります:
。行う出口出口ZABBIX剤容器。
。B実行ドッカー再始動ZABBIX-剤再始動ザンビア剤容器と、
ここでは、カスタム監視項目準備ができて、その後、ZABBIXサーバの設定上に置く成功すると、我々は監視データとグラフを表示することができますが、構成する前に、我々はZABBIXサーバ上でそれをテストすることができZABBIXエージェントの項目を監視するための呼び出しが成功。
ZABBIXサーバマシンでキーエージェントの監視をテスト
まず、二つの方法があり、ZABBIXエージェントマシンのIPを把握する必要があります:
最初の、実装ドッカ幹部が-it ZABBIXエージェント-A / binに/、bashのログインZABBIXエージェントコンテナ、コンテナが実行されたIP ADDRの IPを取得するためのコマンド;
第二、直接実行ドッキングウィンドウの幹部-it ZABBIX-エージェントのIP ADDRのIPを取得するためのコマンド。
どちらにしても、ZABBIXエージェントIPは172.31.0.5で取得することができます。
今、私たちは、コマンドの実行、コンテナのZABBIXサーバのログをドッキングウィンドウの幹部-it ZABBIXサーバ・サービス / binに/ bashのログイン後、以下のコマンドを実行し、ログに記録すると:
zabbix_get -s 172.31.0.5 -k get_total_num[a,0]
以下に示すように、テストが成功し、コールエージェントの監視項目は、予想されるデータと一致して戻します。
私達はちょうどZABBIXエージェントに設定した後、エージェントサービスは、あなたがこのステップを忘れて、そして今、ZABBIXサーバのテストは、次のエラーメッセージが表示されます場合は、再起動するか、ZABBIXエージェントコンテナを再起動する必要があります忘れないでください:
今回はそれを再起動し、その後、あなたは成功をテストするために戻って来ることができます。
監視項目は、管理ページに追加します。
お使いのブラウザに入力します「のhttp:// localhostを:8888 /」以下に示すようにログ管理ページ、まず、エージェントマシンを追加します。
添加した後、赤いボックスの位置は、監視項目のページを入力するには以下をクリック:
以下に、右上、監視する項目の追加を開始する「の項目を作成」をクリックします:
新しい監視項目、私たちは名前、キーを記入し、更新間隔(更新頻度)これらのフィールド、他の人が同じまま、あなたは以下に示すように、各フィールドの内容を更新します:
入力し、保存し、我々は監視することができます - 以下に示すように>、で最新のデータを最新の監視データ項目を参照してください。
次は、以下に示すように、グラフィカルな監視動作を追加し、グラフィックス管理ページを入力することができます。
以下に、右上、グラフィックを作成するには、「グラフの作成」をクリックします。
限り、下記のように選択した監視項目の項目だけで、作成することができますように、新しいグラフィックス、自由の名:
今、私たちは以下に示すように、操作の効果を見てみたい、成功を作成します。
クリックした後、操作が完了した後だけで、私たちの新しいグラフィックスオプションを選択し、ポップアップページで、「追加」赤い線の位置の下にクリックすると、グラフを見ることができます:
グラフは次のよう:
これらはtirggerアラームを追加するために使用することができ、グラフィックスに加えて、すべてのプロセスとセットベースの操作の監視項目の開発を、監視するためのカスタムアイテムで、アラームは、このようなメールメッセージとして、アクションを追加するアクションを決定するために使用する、興味のある読者は、実際にすることができます実際の戦闘活動。