私は最近DevOpsのトピックに興味を持っていたので、モニターに関連するオープンソースプロジェクトを勉強し、Mediumの記事に反映しました。実際のプロジェクトでは、DevOpsグループの同僚が同様の監視を使用しているのを見たので、それを楽しんで視覚化の監視について学びたいと思いました。
監視対象のサービス構成
スプリングブートプロジェクトがローカルにあり、ジョロキアにも依存しています(主にhttpを介してJMX Mbeansを露出させるため)
プロジェクトの構成も不可欠です
エンドポイント:enabled:true jmx:enabled:true jolokia:enabled:truemanagement:security:enabled:false
URLにアクセスして、問題がないかどうかを確認してください
http:// localhost:8080/jolokia/read/org.springframework.boot:name = metricsendpoint、type = endpoint/data
監視システムを構築します
データを見ることができれば、サーバー側の構成が問題ないことを意味します。 Telegraf + InfluxDB + Grafanaをどのように構築しますか?この3つのコンポーネントは、このように連携します。 Telegrafは実際に情報を収集します。たとえば、10秒ごとに上記のURLにアクセスしてメトリックを取得し、収集したデータをInfluxDBに保存し、Grafanaがデータの視覚化を行います。
しかし、手動でインストールするには面倒な場合は、ユニバーサルGitHubを支援し、非常に良いプロジェクト(https://github.com/samuelebistoletti/docker-statsd-influxdb-grafana)を見つけてください。関連する構成がわからない場合は、最初に直接実行してから、SSHを使用して調べることができます。
ssh root@localhost -p 22022
構成に関しては、主なことは、異なるプロジェクトに接続するため、Telegrafを変更することです。 CPU、ディスク、ネットなど、どのような種類の情報をテレグラフに装備する必要があります。簡単にするために、3つの入力のみを設定します。
#/etc/telegraf/telegraf.conf.conf [[inputs.jolokia]] context = "/jolokia"]]] name =" Springbootapp "host =" {app ip address} "port =" 8080 "[inputs.jolokia.metrics] "org.springframework.boot:name = metricsendpoint、type = endpoint"属性= "data" [inputs.jolokia.metrics]] name = "tomcat_max_threads" mbean = "mbean =" tomcat:name =/"http-nio-8080/"、type = "maxthreds"] name = "tomcat_current_threads_busy" mbean = "tomcat:name =/" http-nio-8080/"、type = threadpool"属性= "currentthreadsbusy"実際、これはスプリングブート標準メトリックとTomcatスレッドです。
完了後、Service /etc/init.d/telegraf restart
監視データを表示します
InfluxDBにアクセスして、データがあるかどうかを確認しますhttp:// localhost:3004/、およびデータベースをTelegrafに切り替えます。次のコマンドを入力して試してください
show measurementselect * from jolokiaselect * from cpuselect * from memselect * from diskio
たとえば、 SELECT * FROM jolokiaを入力すると、Spring-Bootによってどのデータが公開されているかがわかります。 Time列から、Telegrafが10秒ごとに収集されることもわかります。頻繁すぎると、サーバーへの圧力にもなります。
上記は基本的に、CPU、メモリ、ストレージのいくつかのメトリックをカバーしています。
実際、ネットワーク関連の構成を構成することもできます。興味がある場合は、[[inputs.net]]の構成の例が含まれている公式のtelegraf.confを見ることができます。
データの視覚化
データが利用可能になると、次のステップは視覚化です。
上記のgithubをフォローして、http:// localhost:3003/、
ウィザードの使用データの追加をクリックしてSourceChooseソースの名前を追加し、DefaultChoose influxDBとしてフラグを付けて、次のように残りのフィールドをアクセスしてください。
InfluxDBを追加した後、新しいダッシュボードを作成し、いくつかのグラフをすばやく追加します。
デモンストレーションのために、次の3セットのクエリステートメントを使用して3つのチャートをレンダリングする3つを追加しました
SELECT MEAN(usage_system) + MEAN(usage_user) AS cpu_total FROM cpu WHERE $timeFilter GROUP BY time($interval)SELECT means("total") as "total" FROM "mem" WHERE $timeFilter GROUP BY time($interval) fill(null)SELECT means("used") as "used" FROM "mem" WHERE $timeFilter GROUP BY time($interval) fill(null)SELECT平均( "metrics_heap.used")as as "Jolokia"の「heap_usage」最初のものはCPU使用です。 2つ目はメモリの使用法、緑色の線は合計で、黄色のラインが使用されます。 3番目は、Jolokiaが提供するJVMヒープの使用です。GCの状況を見ることができます。
また、Tomcat Collectionを設定しましたが、Tomcatのスレッドの状況を見るのも最適です。
「Jolokia」から平均( "tomcat_max_threads")を選択します。ここで、$ timefilter group by time($ interval)fill(null)select veam( "tomcat_current_threads_busy")from "jolokia")
まとめ
上記は、エディターが導入したスプリングブート監視です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!