Zabbix カスタム スクリプトを使用して監視データを収集する場合、通常、次の問題が発生します。
実装原理: ファイル サーバーを使用して監視スクリプトを統一的に保存および管理し、一般的なスクリプトを zabbix エージェントに事前に埋め込み、zabbix サーバーによって送信されたキーとパラメーターに従ってファイル サーバーからスクリプトをプルし、実行後にデータを返します。 建築設計: 具体的な実装: 1. nginxを例にファイルサーバーを構築する nginxの設定を変更して再起動します サーバー 8080を聴く; サーバー名zabbix; ルート /usr/local/static/; 位置 / { 自動インデックスオン; autoindex_exact_size をオン; autoindex_localtime をオン; 文字セット utf-8; } } 2. ファイルの取得と実行のためのスクリプトを書く url="http://192.168.24.108:8080/" #ファイルサーバーのURLを定義する 親ディレクトリ="/usr/local/zabbix/bin/zabbix_script" file_directory=$parentDir/$1 #スクリプトがローカルに保存されているディレクトリを定義 file_name=$2 #スクリプト名 file_path=$1/$2 #ファイルサーバーのスクリプトパスに参加 if [ ! -d $file_directory ];then #ファイルディレクトリが存在するかどうかを判断 mkdir -p $file_directory フィ if [ ! -f $parentDir/$file_path ];then #スクリプトが既に存在するかどうかを判断 wget -P $file_directory $url$file_path 2>>log フィ タイムスタンプ=$(日付 +%s) ファイルタイムスタンプ=$(stat -c %Y $parentDir/$file_path) if [ $[$timestamp - $filetimestamp] -gt 3600 ];then #現在の時刻とスクリプトの変更時刻の差を判断し、3600秒ごとに更新します wget $url$file_path -O $parentDir/$file_path 2>>log #スクリプトを上書きします touch -c $parentDir/$file_path #スクリプトの変更時刻を変更します fi python $parentDir/$file_path $3 #スクリプトを実行する 3. zabbixの設定ファイルを追加する ユーザーパラメータ=requests_file[*],sh /usr/local/zabbix/bin/zabbix_script/requests_file.sh $1 $2 $3 4. Zabbixエージェントを再起動する 5. テストスクリプトを記述し、ファイルサーバーの指定されたディレクトリにアップロードします。 #サーバー接続数を監視#!/usr/bin/python パスワードをインポートする os、sysをインポート 輸入再 インポートグロブ 状態 = sys.argv[1] cmd = "netstat -an | grep " + 状態 + " | wc -l" os.system(コマンド) 6. Zabbix ページの監視項目を設定します。 7. データが正常かどうかを観察します。 8. 新しい監視スクリプトはファイルサーバーの後に配置され、構成ページの監視項目を直接構成してデータ収集を行うことができます。 この記事では、Zabbix でカスタム監視スクリプトを集中管理するためのソリューションを提供することに焦点を当てています。このアイデアに基づいて、Zabbix の使用を自由に拡張して、より簡潔で効率的にし、運用と保守をさらに簡素化できます。 参考リンク: Zabbix はどのようにして監視収集スクリプトを動的に実行するのか: https://mp.weixin.qq.com/s/ikuCSYhlFdtiAmt7epskWw Zabbix 動的実行監視および収集スクリプトの実装原理に関するこの記事はこれで終わりです。Zabbix 動的実行監視および収集スクリプトの関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: Web デザインのための 5 つのシンプルな XHTML Web フォーム
序文一般的に、Linux システムについて話すときは、Linux カーネルと GNU プロジェクトに...
目次1. JDKをダウンロードする(例としてjdk1.8.0を使用する) 2. JDK をインストー...
目次序文なぜユニットテストを導入するのですか?ユニットテストの概要テスト開発パターン1. テスト駆動...
目次序文axiosカプセル化の利点パッケージのアイデア設定の優先順位axiosインスタンス構成1. ...
この記事では、携帯電話のプルダウンリフレッシュを模倣したjsの具体的なコードを参考までに共有します。...
目次クロスドメインの理由JSONP Nginxソリューションバックエンドソリューションクロスドメイン...
Web デザインは科学であると同時に芸術でもあります。 Web デザイン作業は、半分は適切なプログラ...
基本イメージが以前に構成されていて、これらのイメージが他の場所でも必要な場合はどうなりますか?回答:...
MySQL データベースのバージョンを 5.6.28 から 8.0.11 にアップグレード中にプロジ...
本から学ぶことは常に浅はかで、これがさらなるダウンタイムを引き起こすことには決して気づきません......
1. Ubuntu Server 18.04.5 LTS システムのインストールUbuntuはデスク...
いくつかの概念行ボックス: インライン ボックスを囲むボックス。1 つ以上の行ボックスが積み重ねられ...
npm インストールチュートリアル: 1. Node.jsインストールパッケージをダウンロードする公...
Linux では、ファイルが作成されると、そのファイルの所有者はファイルを作成したユーザーになります...
この間、プロジェクトに取り組んでいるときに、データ間の接続が非常に複雑なモジュールに遭遇しました。テ...