Zabbix を使用して Nginx/Tomcat/MySQL を監視する方法の詳細なチュートリアル

Zabbix を使用して Nginx/Tomcat/MySQL を監視する方法の詳細なチュートリアル

ZabbixはNginxを監視する

マシン A: zabbix サーバー (192.168.234.128) マシン B: zabbix クライアント (192.168.234.125)

マシン B (zabbix クライアント) での操作:

nginx 仮想ホスト構成ファイルを編集します。

[root@centos ~]# vi /etc/nginx/conf.d/default.conf

server{} 内に次のコンテンツを追加します。

 場所 /nginx_status
 {
  stub_status オン;
  access_log オフ;
  127.0.0.1 を許可します。
  すべてを否定する;
 }

nginx 設定を再読み込みします:

[root@centos ~]# nginx -s リロード

テスト:

[root@centos ~]# curl http://127.0.0.1/nginx_status
アクティブな接続: 1 
サーバーは処理されたリクエストを受け入れます
 3 3 3 
読み取り: 0 書き込み: 1 待機: 0

#nginxステータス情報が表示されます

ステータスの説明:

監視スクリプトを追加します:

vi /usr/local/sbin/ngx_status.sh

次のコンテンツを追加します。

#!/bin/bash
url="http://127.0.0.1/nginx_status"
カール = /usr/bin/カール

# nginxプロセスが存在するか確認する function ping {
 /sbin/pidof nginx | ​​wc -l 
}
# nginx パフォーマンス関数がアクティブであることを確認する {
 $curl $url 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
関数の読み取り{
 $curl $url 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
関数の記述 {
 $curl $url 2>/dev/null| grep '書き込み中' | awk '{print $4}'
}
関数待機中{
 $curl $url 2>/dev/null| grep '待機中' | awk '{print $6}'
}
関数は{
 $curl $url 2>/dev/null| awk NR==3 | awk '{print $1}'
}
処理された機能
 $curl $url 2>/dev/null| awk NR==3 | awk '{print $2}'
}
機能リクエスト{
 $curl $url 2>/dev/null| awk NR==3 | awk '{print $3}'
}
1ドル

権限を追加します:

[root@centos ~]# chmod 755 /usr/local/sbin/ngx_status.sh

zabbix_agent 構成ファイルを編集します。

[root@centos ~]# vi /etc/zabbix/zabbix_agentd.conf

オプションを追加: UserParameter: UserParameter=nginx.status[*],/usr/local/sbin/ngx_status.sh $1

ここに画像の説明を挿入

サービスを再起動します。

[root@centos ~]# systemctl zabbix-agentを再起動します

マシンA(サーバー)でのテスト:

[root@zabbix ~]# zabbix_get -s 192.168.234.125 -k 'nginx.status[accepts]'
6

ローカルマシンに .xml ファイルを作成し、次のコンテンツを追加します (ファイル名をカスタマイズします)。

<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<zabbix_エクスポート>
 <バージョン>4.0</バージョン>
 <日付>2019-02-11T07:29:29Z</日付>
 <グループ>
  <グループ>
   <name>テンプレート</name>
  </グループ>
 </グループ>
 <テンプレート>
  <テンプレート>
   <template>テンプレート アプリ NGINX</template>
   <name>テンプレート アプリ NGINX</name>
   <説明/>
   <グループ>
    <グループ>
     <name>テンプレート</name>
    </グループ>
   </グループ>
   <アプリケーション>
    <アプリケーション>
     <name>nginx</name>
    </アプリケーション>
   </アプリケーション>
   <アイテム>
    <アイテム>
     <name>nginx ステータス サーバーが受け入れる</name>
     <type>0</type>
     <snmp_community/>
     <SNMP_OID/> は、
     <key>nginx.status[受け入れる]</key>
     <遅延>60</遅延>
     <history>90日</history>
     <トレンド>365d</トレンド>
     <ステータス>0</ステータス>
     <値の種類>3</値の種類>
     <許可されたホスト/>
     <単位/>
     <snmpv3_コンテキスト名 />
     <snmpv3_セキュリティ名/>
     <snmpv3_セキュリティレベル>0</snmpv3_セキュリティレベル>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authパスフレーズ/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privパスフレーズ/>
     <パラメータ/>
     <ipmi_sensor/>
     <認証タイプ>0</認証タイプ>
     <ユーザー名/>
     <パスワード/>
     <公開鍵/>
     <秘密鍵/>
     <ポート/>
     <description>受け入れる</description>
     <inventory_link>0</inventory_link>
     <アプリケーション>
      <アプリケーション>
       <name>nginx</name>
      </アプリケーション>
     </アプリケーション>
     <値マップ/>
     <ログタイムフォーマット/>
     <前処理>
      <ステップ>
       <type>10</type>
       <パラメータ/>
      </ステップ>
     </前処理>
     <jmx_エンドポイント />
     <timeout>3秒</timeout>
     <url/>
     <クエリフィールド/>
     <投稿/>
     <ステータスコード>200</ステータスコード>
     <follow_redirects>1</follow_redirects>
     <投稿タイプ>0</投稿タイプ>
     <http_proxy/>
     <ヘッダー/>
     <取得モード>0</取得モード>
     <リクエストメソッド>0</リクエストメソッド>
     <出力フォーマット>0</出力フォーマット>
     <allow_traps>0</allow_traps>
     <SSL証明書ファイル/>
     <SSL キーファイル />
     <SSLキーパスワード/>
     <検証ピア>0</検証ピア>
     <verify_host>0</verify_host>
     <マスターアイテム/>
    </item>
    <アイテム>
     <name>nginx ステータス接続がアクティブ</name>
     <type>0</type>
     <snmp_community/>
     <SNMP_OID/> は、
     <キー>nginx.status[アクティブ]</キー>
     <遅延>60</遅延>
     <history>90日</history>
     <トレンド>365d</トレンド>
     <ステータス>0</ステータス>
     <値の種類>3</値の種類>
     <許可されたホスト/>
     <単位/>
     <snmpv3_コンテキスト名 />
     <snmpv3_セキュリティ名/>
     <snmpv3_セキュリティレベル>0</snmpv3_セキュリティレベル>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authpassphrase/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privパスフレーズ/>
     <パラメータ/>
     <ipmi_sensor/>
     <認証タイプ>0</認証タイプ>
     <ユーザー名/>
     <パスワード/>
     <公開鍵/>
     <秘密鍵/>
     <ポート/>
     <description>アクティブ</description>
     <inventory_link>0</inventory_link>
     <アプリケーション>
      <アプリケーション>
       <name>nginx</name>
      </アプリケーション>
     </アプリケーション>
     <値マップ/>
     <ログタイムフォーマット/>
     <前処理/>
     <jmx_エンドポイント />
     <timeout>3秒</timeout>
     <url/>
     <クエリフィールド/>
     <投稿/>
     <ステータスコード>200</ステータスコード>
     <follow_redirects>1</follow_redirects>
     <投稿タイプ>0</投稿タイプ>
     <http_proxy/>
     <ヘッダー/>
     <取得モード>0</取得モード>
     <リクエストメソッド>0</リクエストメソッド>
     <出力フォーマット>0</出力フォーマット>
     <allow_traps>0</allow_traps>
     <SSL証明書ファイル/>
     <SSL キーファイル />
     <SSLキーパスワード/>
     <検証ピア>0</検証ピア>
     <verify_host>0</verify_host>
     <マスターアイテム/>
    </item>
    <アイテム>
     <name>nginx ステータス サーバーが処理されました</name>
     <type>0</type>
     <snmp_community/>
     <SNMP_OID/> は、
     <key>nginx.status[処理済み]</key>
     <遅延>60</遅延>
     <history>90日</history>
     <トレンド>365d</トレンド>
     <ステータス>0</ステータス>
     <値の種類>3</値の種類>
     <許可されたホスト/>
     <単位/>
     <snmpv3_コンテキスト名 />
     <snmpv3_セキュリティ名/>
     <snmpv3_セキュリティレベル>0</snmpv3_セキュリティレベル>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authpassphrase/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privパスフレーズ/>
     <パラメータ/>
     <ipmi_sensor/>
     <認証タイプ>0</認証タイプ>
     <ユーザー名/>
     <パスワード/>
     <公開鍵/>
     <秘密鍵/>
     <ポート/>
     <description>処理済み</description>
     <inventory_link>0</inventory_link>
     <アプリケーション>
      <アプリケーション>
       <name>nginx</name>
      </アプリケーション>
     </アプリケーション>
     <値マップ/>
     <ログタイムフォーマット/>
     <前処理>
      <ステップ>
       <type>10</type>
       <パラメータ/>
      </ステップ>
     </前処理>
     <jmx_エンドポイント />
     <timeout>3秒</timeout>
     <url/>
     <クエリフィールド/>
     <投稿/>
     <ステータスコード>200</ステータスコード>
     <follow_redirects>1</follow_redirects>
     <投稿タイプ>0</投稿タイプ>
     <http_proxy/>
     <ヘッダー/>
     <取得モード>0</取得モード>
     <リクエストメソッド>0</リクエストメソッド>
     <出力フォーマット>0</出力フォーマット>
     <allow_traps>0</allow_traps>
     <SSL証明書ファイル/>
     <SSL キーファイル />
     <SSLキーパスワード/>
     <検証ピア>0</検証ピア>
     <verify_host>0</verify_host>
     <マスターアイテム/>
    </item>
    <アイテム>
     <name>nginx ステータス PING</name>
     <type>0</type>
     <snmp_community/>
     <SNMP_OID/> は、
     <キー>nginx.status[ping]</キー>
     <遅延>60</遅延>
     <history>30日</history>
     <トレンド>365d</トレンド>
     <ステータス>0</ステータス>
     <値の種類>3</値の種類>
     <許可されたホスト/>
     <単位/>
     <snmpv3_コンテキスト名 />
     <snmpv3_セキュリティ名/>
     <snmpv3_セキュリティレベル>0</snmpv3_セキュリティレベル>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authpassphrase/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privパスフレーズ/>
     <パラメータ/>
     <ipmi_sensor/>
     <認証タイプ>0</認証タイプ>
     <ユーザー名/>
     <パスワード/>
     <公開鍵/>
     <秘密鍵/>
     <ポート/>
     <description>ライブです</description>
     <inventory_link>0</inventory_link>
     <アプリケーション>
      <アプリケーション>
       <name>nginx</name>
      </アプリケーション>
     </アプリケーション>
     <値マップ>
      <name>サービス状態</name>
     </値マップ>
     <ログタイムフォーマット/>
     <前処理/>
     <jmx_エンドポイント />
     <timeout>3秒</timeout>
     <url/>
     <クエリフィールド/>
     <投稿/>
     <ステータスコード>200</ステータスコード>
     <follow_redirects>1</follow_redirects>
     <投稿タイプ>0</投稿タイプ>
     <http_proxy/>
     <ヘッダー/>
     <取得モード>0</取得モード>
     <リクエストメソッド>0</リクエストメソッド>
     <出力フォーマット>0</出力フォーマット>
     <allow_traps>0</allow_traps>
     <SSL証明書ファイル/>
     <SSL キーファイル />
     <SSLキーパスワード/>
     <検証ピア>0</検証ピア>
     <verify_host>0</verify_host>
     <マスターアイテム/>
    </item>
    <アイテム>
     <name>nginx ステータス接続読み取り中</name>
     <type>0</type>
     <snmp_community/>
     <SNMP_OID/> は、
     <key>nginx.status[読み取り]</key>
     <遅延>60</遅延>
     <history>90日</history>
     <トレンド>365d</トレンド>
     <ステータス>0</ステータス>
     <値の種類>3</値の種類>
     <許可されたホスト/>
     <単位/>
     <snmpv3_コンテキスト名 />
     <snmpv3_セキュリティ名/>
     <snmpv3_セキュリティレベル>0</snmpv3_セキュリティレベル>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authパスフレーズ/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privパスフレーズ/>
     <パラメータ/>
     <ipmi_sensor/>
     <認証タイプ>0</認証タイプ>
     <ユーザー名/>
     <パスワード/>
     <公開鍵/>
     <秘密鍵/>
     <ポート/>
     <description>読書</description>
     <inventory_link>0</inventory_link>
     <アプリケーション>
      <アプリケーション>
       <name>nginx</name>
      </アプリケーション>
     </アプリケーション>
     <値マップ/>
     <ログタイムフォーマット/>
     <前処理/>
     <jmx_エンドポイント />
     <timeout>3秒</timeout>
     <url/>
     <クエリフィールド/>
     <投稿/>
     <ステータスコード>200</ステータスコード>
     <follow_redirects>1</follow_redirects>
     <投稿タイプ>0</投稿タイプ>
     <http_proxy/>
     <ヘッダー/>
     <取得モード>0</取得モード>
     <リクエストメソッド>0</リクエストメソッド>
     <出力フォーマット>0</出力フォーマット>
     <allow_traps>0</allow_traps>
     <SSL証明書ファイル/>
     <SSL キーファイル />
     <SSLキーパスワード/>
     <検証ピア>0</検証ピア>
     <verify_host>0</verify_host>
     <マスターアイテム/>
    </item>
    <アイテム>
     <name>nginx ステータス サーバー リクエスト</name>
     <type>0</type>
     <snmp_community/>
     <SNMP_OID/> は、
     <key>nginx.status[リクエスト]</key>
     <遅延>60</遅延>
     <history>90日</history>
     <トレンド>365d</トレンド>
     <ステータス>0</ステータス>
     <値の種類>3</値の種類>
     <許可されたホスト/>
     <単位/>
     <snmpv3_コンテキスト名 />
     <snmpv3_セキュリティ名/>
     <snmpv3_セキュリティレベル>0</snmpv3_セキュリティレベル>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authパスフレーズ/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privパスフレーズ/>
     <パラメータ/>
     <ipmi_sensor/>
     <認証タイプ>0</認証タイプ>
     <ユーザー名/>
     <パスワード/>
     <公開鍵/>
     <秘密鍵/>
     <ポート/>
     <description>リクエスト</description>
     <inventory_link>0</inventory_link>
     <アプリケーション>
      <アプリケーション>
       <name>nginx</name>
      </アプリケーション>
     </アプリケーション>
     <値マップ/>
     <ログタイムフォーマット/>
     <前処理>
      <ステップ>
       <type>10</type>
       <パラメータ/>
      </ステップ>
     </前処理>
     <jmx_エンドポイント />
     <timeout>3秒</timeout>
     <url/>
     <クエリフィールド/>
     <投稿/>
     <ステータスコード>200</ステータスコード>
     <follow_redirects>1</follow_redirects>
     <投稿タイプ>0</投稿タイプ>
     <http_proxy/>
     <ヘッダー/>
     <取得モード>0</取得モード>
     <リクエストメソッド>0</リクエストメソッド>
     <出力フォーマット>0</出力フォーマット>
     <allow_traps>0</allow_traps>
     <SSL証明書ファイル/>
     <SSL キーファイル />
     <SSLキーパスワード/>
     <検証ピア>0</検証ピア>
     <verify_host>0</verify_host>
     <マスターアイテム/>
    </item>
    <アイテム>
     <name>nginx ステータス接続待機中</name>
     <type>0</type>
     <snmp_community/>
     <SNMP_OID/> は、
     <key>nginx.status[待機中]</key>
     <遅延>60</遅延>
     <history>90日</history>
     <トレンド>365d</トレンド>
     <ステータス>0</ステータス>
     <値の種類>3</値の種類>
     <許可されたホスト/>
     <単位/>
     <snmpv3_コンテキスト名 />
     <snmpv3_セキュリティ名/>
     <snmpv3_セキュリティレベル>0</snmpv3_セキュリティレベル>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authパスフレーズ/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privパスフレーズ/>
     <パラメータ/>
     <ipmi_sensor/>
     <認証タイプ>0</認証タイプ>
     <ユーザー名/>
     <パスワード/>
     <公開鍵/>
     <秘密鍵/>
     <ポート/>
     <description>待機中</description>
     <inventory_link>0</inventory_link>
     <アプリケーション>
      <アプリケーション>
       <name>nginx</name>
      </アプリケーション>
     </アプリケーション>
     <値マップ/>
     <ログタイムフォーマット/>
     <前処理/>
     <jmx_エンドポイント />
     <timeout>3秒</timeout>
     <url/>
     <クエリフィールド/>
     <投稿/>
     <ステータスコード>200</ステータスコード>
     <follow_redirects>1</follow_redirects>
     <投稿タイプ>0</投稿タイプ>
     <http_proxy/>
     <ヘッダー/>
     <取得モード>0</取得モード>
     <リクエストメソッド>0</リクエストメソッド>
     <出力フォーマット>0</出力フォーマット>
     <allow_traps>0</allow_traps>
     <SSL証明書ファイル/>
     <SSL キーファイル />
     <SSLキーパスワード/>
     <検証ピア>0</検証ピア>
     <verify_host>0</verify_host>
     <マスターアイテム/>
    </item>
    <アイテム>
     <name>nginx ステータス接続書き込み</name>
     <type>0</type>
     <snmp_community/>
     <SNMP_OID/> は、
     <key>nginx.status[書き込み中]</key>
     <遅延>60</遅延>
     <history>90日</history>
     <トレンド>365d</トレンド>
     <ステータス>0</ステータス>
     <値の種類>3</値の種類>
     <許可されたホスト/>
     <単位/>
     <snmpv3_コンテキスト名 />
     <snmpv3_セキュリティ名/>
     <snmpv3_セキュリティレベル>0</snmpv3_セキュリティレベル>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authpassphrase/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privパスフレーズ/>
     <パラメータ/>
     <ipmi_sensor/>
     <認証タイプ>0</認証タイプ>
     <ユーザー名/>
     <パスワード/>
     <公開鍵/>
     <秘密鍵/>
     <ポート/>
     <description>ライティング</description>
     <inventory_link>0</inventory_link>
     <アプリケーション>
      <アプリケーション>
       <name>nginx</name>
      </アプリケーション>
     </アプリケーション>
     <値マップ/>
     <ログタイムフォーマット/>
     <前処理/>
     <jmx_エンドポイント />
     <timeout>3秒</timeout>
     <url/>
     <クエリフィールド/>
     <投稿/>
     <ステータスコード>200</ステータスコード>
     <follow_redirects>1</follow_redirects>
     <投稿タイプ>0</投稿タイプ>
     <http_proxy/>
     <ヘッダー/>
     <取得モード>0</取得モード>
     <リクエストメソッド>0</リクエストメソッド>
     <出力フォーマット>0</出力フォーマット>
     <allow_traps>0</allow_traps>
     <SSL証明書ファイル/>
     <SSL キーファイル />
     <SSLキーパスワード/>
     <検証ピア>0</検証ピア>
     <verify_host>0</verify_host>
     <マスターアイテム/>
    </item>
   </items>
   <検出ルール/>
   <httpテスト/>
   <マクロ/>
   <テンプレート/>
   <スクリーン/>
  </テンプレート>
 </テンプレート>
 <トリガー>
  <トリガー>
   <式>{テンプレート アプリ NGINX:nginx.status[ping].last()}=0</式>
   <リカバリモード>0</リカバリモード>
   <回復式/>
   <name>nginx がダウンしました!</name>
   <相関モード>0</相関モード>
   <相関タグ/>
   <url/>
   <ステータス>0</ステータス>
   <優先度>4</優先度>
   <description>NGINX プロセス番号: 0、ご注意ください</description>
   <type>0</type>
   <manual_close>0</manual_close>
   <依存関係/>
   <タグ/>
  </トリガー>
 </トリガー>
 <グラフ>
  <グラフ>
   <name>nginx ステータス接続</name>
   <width>900</width>
   <高さ>200</高さ>
   <yaxismin>0.0000</yaxismin>
   <yaxismax>100.0000</yaxismax>
   <show_work_period>1</show_work_period>
   <show_triggers>1</show_triggers>
   <type>0</type>
   <show_legend>1</show_legend>
   <show_3d>0</show_3d>
   <パーセント左>0.0000</パーセント左>
   <パーセント右>0.0000</パーセント右>
   <ymin_type_1>0</ymin_type_1>
   <ymax_type_1>0</ymax_type_1>
   <ymin_item_1>0</ymin_item_1>
   <ymax_item_1>0</ymax_item_1>
   <グラフ項目>
    <グラフ項目>
     <sortorder>0</sortorder>
     <drawtype>0</drawtype>
     <color>00C800</color>
     <yaxisside>0</yaxisside>
     <calc_fnc>2</calc_fnc>
     <type>0</type>
     <アイテム>
      <host>テンプレート アプリ NGINX</host>
      <キー>nginx.status[アクティブ]</キー>
     </item>
    </グラフ項目>
    <グラフ項目>
     <sortorder>1</sortorder>
     <drawtype>0</drawtype>
     <color>C80000</color>
     <yaxisside>0</yaxisside>
     <calc_fnc>2</calc_fnc>
     <type>0</type>
     <アイテム>
      <host>テンプレート アプリ NGINX</host>
      <key>nginx.status[読み取り]</key>
     </item>
    </グラフ項目>
    <グラフ項目>
     <sortorder>2</sortorder>
     <drawtype>0</drawtype>
     <color>0000C8</color>
     <yaxisside>0</yaxisside>
     <calc_fnc>2</calc_fnc>
     <type>0</type>
     <アイテム>
      <host>テンプレート アプリ NGINX</host>
      <key>nginx.status[待機中]</key>
     </item>
    </グラフ項目>
    <グラフ項目>
     <sortorder>3</sortorder>
     <drawtype>0</drawtype>
     <color>C800C8</color>
     <yaxisside>0</yaxisside>
     <calc_fnc>2</calc_fnc>
     <type>0</type>
     <アイテム>
      <host>テンプレート アプリ NGINX</host>
      <key>nginx.status[書き込み中]</key>
     </item>
    </グラフ項目>
   </グラフ項目>
  </グラフ>
  <グラフ>
   <name>nginx ステータス サーバー</name>
   <width>900</width>
   <高さ>200</高さ>
   <yaxismin>0.0000</yaxismin>
   <yaxismax>100.0000</yaxismax>
   <show_work_period>1</show_work_period>
   <show_triggers>1</show_triggers>
   <type>0</type>
   <show_legend>1</show_legend>
   <show_3d>0</show_3d>
   <パーセント左>0.0000</パーセント左>
   <パーセント右>0.0000</パーセント右>
   <ymin_type_1>0</ymin_type_1>
   <ymax_type_1>0</ymax_type_1>
   <ymin_item_1>0</ymin_item_1>
   <ymax_item_1>0</ymax_item_1>
   <グラフ項目>
    <グラフ項目>
     <sortorder>0</sortorder>
     <drawtype>0</drawtype>
     <color>00C800</color>
     <yaxisside>0</yaxisside>
     <calc_fnc>2</calc_fnc>
     <type>0</type>
     <アイテム>
      <host>テンプレート アプリ NGINX</host>
      <key>nginx.status[受け入れる]</key>
     </item>
    </グラフ項目>
    <グラフ項目>
     <sortorder>1</sortorder>
     <drawtype>0</drawtype>
     <color>C80000</color>
     <yaxisside>0</yaxisside>
     <calc_fnc>2</calc_fnc>
     <type>0</type>
     <アイテム>
      <host>テンプレート アプリ NGINX</host>
      <key>nginx.status[処理済み]</key>
     </item>
    </グラフ項目>
    <グラフ項目>
     <sortorder>2</sortorder>
     <drawtype>0</drawtype>
     <color>0000C8</color>
     <yaxisside>0</yaxisside>
     <calc_fnc>2</calc_fnc>
     <type>0</type>
     <アイテム>
      <host>テンプレート アプリ NGINX</host>
      <key>nginx.status[リクエスト]</key>
     </item>
    </グラフ項目>
   </グラフ項目>
  </グラフ>
 </グラフ>
 <値マップ>
  <値マップ>
   <name>サービス状態</name>
   <マッピング>
    <マッピング>
     <値>0</値>
     <newvalue>下</newvalue>
    </マッピング>
    <マッピング>
     <値>1</値>
     <newvalue>上へ</newvalue>
    </マッピング>
   </マッピング>
  </値マップ>
 </value_maps>
</zabbix_エクスポート>

Zabbix フロントエンドページで、[構成] → [テンプレート] → [インポート] をクリックします。

ここに画像の説明を挿入

#作成したxmlファイルをインポートします

インポートが成功したら、ホストリストページで監視対象マシン(マシンB)を選択し、テンプレートをリンクしてnginxの監視を開始します。

ZabbixはTomcatを監視する

マシン A: zabbix サーバー (192.168.234.128) マシン B: zabbix クライアント (192.168.234.125)

マシン A に zabbix-java-gateway をインストールします。

[root@zabbix ~]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-java-gateway-4.0.14-1.el7.x86_64.rpm

[root@zabbix ~]# yum -y localinstall zabbix-java-gateway-4.0.14-1.el7.x86_64.rpm

ゲートウェイ構成ファイルを編集します。

[root@zabbix ~]# vi /etc/zabbix/zabbix_java_gateway.conf

LISTEN_IP、LISTEN_PORT (リスニング ポート)、および START_POLLERS (プロセス数) からコメント記号 # を削除します。

ここに画像の説明を挿入

#LISTEN_IP は監視対象マシンのアドレスを定義します。指定しない場合は、デフォルトですべてのマシンが監視されます。

サーバー構成ファイルを編集します。

[root@zabbix ~]# vi /etc/zabbix/zabbix_server.conf

次の 3 つの構成パラメータを定義します。

ここに画像の説明を挿入

zabbix-java-gateway サービスを開始します。

[root@zabbix ~]# systemctl zabbix-java-gateway を起動します

zabbix-server サービスを再起動します。

[root@zabbix ~]# systemctl zabbix-serverを再起動します

リスニング ポートを表示します。

[root@zabbix ~]# netstat -lntp |grep java
tcp6 0 0 :::10052 :::* LISTEN 8706/java

JMXを有効にする

マシン B の Tomcat 構成ファイルを編集します。

[root@centos ~]# vi /usr/local/tomcat/bin/catalina.sh

次のコンテンツを追加します。

エクスポート CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Djava.rmi.server.ホスト名=192.168.234.125
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

#hostname は B マシンのアドレス、ポート 9999 (デフォルト 12345) を定義します。

Tomcatを再起動します:

[root@centos ~]# /usr/local/tomcat/bin/shutdown.sh 

[root@centos ~]# /usr/local/tomcat/bin/startup.sh

リスニングポート 9999 を表示します。

[root@centos ~]# netstat -lntp |grep 9999
tcp6 0 0 :::9999 :::* LISTEN 25861/java

ホストを追加するには、Zabbix フロントエンド ページにアクセスします。

ここに画像の説明を挿入

#通常の状況で監視ホストを追加する場合とは異なり、監視マシンBのTomcatはJMXインターフェースを構成する必要があります

テンプレートは 2 つの JMX 関連テンプレートにリンクします。

ここに画像の説明を挿入

JMX アイコンが緑色に変わると、構成は成功です。

ここに画像の説明を挿入

ZabbixはMySQLを監視する

マシン A: zabbix サーバー (192.168.234.128) マシン B: zabbix クライアント (192.168.234.125)

zabbix_agent は、mysql 監視用の設定ファイルを定義します: /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

マシン B の mysql にログインし、ユーザーを作成します。

mysql> 'zamysql' によって識別される zamysql@'localhost' に、*.* の使用、プロセス、レプリケーション クライアントを許可します。

設定ファイルで指定されたディレクトリを作成します。

[root@centos ~]# mkdir /var/lib/zabbix

my.cnf ファイルを作成します。

[root@centos ~]# vi /var/lib/zabbix/.my.cnf

#このファイルは隠しファイルであることに注意してください

次のコンテンツを追加します。

[mysql]
ホスト=ローカルホスト
ユーザー=zamysql
パスワード='zamysql'
ソケット=/tmp/mysql.sock

[mysqladmin]
ホスト=ローカルホスト
ユーザー=zamysql
パスワード='zamysql'
ソケット=/tmp/mysql.sock

マシンAでのテスト:

[root@zabbix ~]# zabbix_get -s 192.168.234.125 -p 10050 -k mysql.ping
1
[root@zabbix ~]# zabbix_get -s 192.168.234.125 -p 10050 -k mysql.バージョン
mysql Ver 14.14 Distrib 5.6.43、EditLine ラッパーを使用した linux-glibc2.12 (x86_64) 用
[root@zabbix ~]# zabbix_get -s 192.168.234.125 -p 10050 -k mysql.size
10240

#データが正常に取得されました

Zabbix フロントエンド ページでホストを追加します。

ここに画像の説明を挿入

監視テンプレートで DB mysql を選択します。

ここに画像の説明を挿入

ZBX 標準が緑色に変わり、成功を示します。

ここに画像の説明を挿入

MySQL 監視データは、[監視] → [最新データ] ページで表示できます。

ここに画像の説明を挿入

要約する

上記は、Zabbix を使用して Nginx/Tomcat/MySQL を監視する方法に関する詳細なチュートリアルです。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Zabbixカスタムスクリプト監視nginxとWeChatアラームの全プロセス
  • Zabbix カスタム監視 nginx ステータス実装プロセス
  • Zabbix 構成 nginx 監視の実装

<<:  JavaScript を使用して文字列内の最も繰り返しの多い文字を取得する方法

>>:  ユニークインデックスの S ロックと X ロックによる MySQL デッドロック ルーチンの理解

推薦する

Centos7 で mysqldump を使用して MySQL データベースの毎日の自動バックアップを作成する

1. 要件:データベースのバックアップは、実稼働環境にとって特に重要です。データベースのバックアップ...

Vue における nextTick の役割といくつかの簡単な使用シナリオ

目的nextTickの役割といくつかの簡単な使用シナリオを理解する文章その機能は何ですか?遅延コール...

Windows での自動展開に Jenkins を使用するチュートリアル図

今日は、Jenkins + powershell スクリプトを使用して、.NET CORE スクリプ...

MySQL ストレステストツールの使い方

1. MySQL 独自のストレステストツール - Mysqlslap mysqlslap は、mys...

Windows に MySQL 5.7.18 の解凍バージョンをインストールするチュートリアル

1. インストールプロセスMySQL バージョン: 5.7.18 1. my.ini ファイル(簡易...

CSS3はアニメーション効果を実現するためにvar()とcalc()関数を使用する。

ナレッジポイントをプレビューします。アニメーションフレーム背景グラデーションvar() と calc...

MySql8.0バージョンに接続するMyBatisの設定問題について

mybatis を学習しているときにエラーが発生しました。エラーの内容は次のとおりです。データベース...

ES5とES6の違いを分析する

目次概要関数シグネチャオプションパラメータ非厳密モード例外処理実用要約する概要ご存知のとおり、ES6...

ネイティブ js はフォームの定期的な検証を実装します (検証後にのみ送信)

以下の機能が実装されています。 1. ユーザー名: onfouc は msg ルールを表示します。o...

webpackでCSSを分割・圧縮し、リンクでインポートする手順

まずコードファイルの構造を見てみましょう。エントリファイル (index1.js) の内容: ...

Linux での MySQL データベースのアンインストール

Linux で MySQL データベースをアンインストールするにはどうすればいいですか? 以下では、...

JSONP クロスドメインシミュレーション Baidu 検索

目次1. JSONPとは何か2. JSONPクロスドメインリクエスト3. Baidu検索をシミュレー...

ネイティブJSを使用した遅延読み込みlazyLoadの3つの方法の概要

目次序文方法1: 高コントラスト方法2: getBoundingClientRect() APIを使...

Ubuntuのインストール Matlab2020b の詳細なチュートリアルとリソース

目次1. リソースファイル2. インストール2.1 詳細な手順2.1.1 ディスクイメージのマウント...