Zabbix http://www.zabbix.com/を使用して、本番サーバーで現時点での同時ユーザー数を監視したいとします。誰かが私にそれを行う方法を教えてもらえますか? サーバーはJavaで書かれています。
1 に答える
最初に答える質問は、サーバー上のユーザー数を照会するにはどうすればよいかということです。これは、ログ ファイルから grep できるものですか? それとも、「Java で記述されたサーバー」では、標準化された方法 (つまり、http 経由) でユーザー数を照会できますか?
標準の zabbix チェックのいずれかを使用できる場合がありますが、ほとんどの場合、サーバーで実行されている zabbix エージェントを構成して、カスタム ユーザー パラメータを監視する必要があります: https://www.zabbix.com/documentation/1.8/manual/ config/user_parameters .
したがって、必要な値は、http 経由で利用可能な json から解析する必要があります。バージョン 2.2 から web.page.regexp[] を使用して実行できるようになりますが、まだ本番環境に対応していないため、カスタム ユーザー項目に固執する必要があります。
おそらくzabbixエージェントはLinuxで実行されています。zabbix_agentd.conf を開き、次の行を追加します。
UserParameter=json.query[*], value=$(curl -s $1 | grep -Eo "\"$2\":(\w*)"| cut -d: -f2); if [ -z "$value" ]; then echo "not found"; else echo $value; fi
エージェントを再起動します。この新しいユーザー パラメータ json.query の後、このサーバーで「Zabbix Agent」タイプのアイテムとして使用できるようになります。フェッチする json のアドレスと抽出する変数の名前の 2 つの引数を取ります。次のサンプルでテストしていました。
"usercount":30
json の形式が異なる場合は、正規表現を変更する必要がある場合があります。
新しいzabbixアイテムを追加する必要があります: Configuration/Hosts/Items - Create Item
Description: Concurrent user count
Type: Zabbix Agent
Key: json.query[myserver.com/status.json,usercount]
Data Type: numeric
それでおしまい。ユーザー数が監視されるようになり、通常の方法で zabbix トリガーで参照できるようになりました。