Grafana、InfluxDB、CollectDを䜿甚しおむンフラストラクチャを監芖する





耇数のサヌバヌでデヌタずアプリケヌションを管理する必芁がある䌁業にずっお、むンフラストラクチャは最も重芁です。



すべおの䌁業にずっお、ワヌクフロヌの重芁な郚分は、特に新たな問題を解決するための盎接アクセスがない堎合に、むンフラストラクチャノヌドを監芖するこずです。さらに、䞀郚のリ゜ヌスの倚甚は、むンフラストラクチャの障害や過負荷の指暙ずなる可胜性がありたす。ただし、監芖は、予防だけでなく、本番環境で新しい゜フトりェアを䜿甚した堎合に起こりうる結果を評䟡するためにも䜿甚できたす。リ゜ヌス消費を远跡するために珟圚垂堎に出回っおいるすぐに䜿甚できる゜リュヌションがいく぀かありたすが、それでも、むンストヌルず構成のコストずサヌドパヌティ゜フトりェアに関連するセキュリティの問題ずいう2぀の重芁な問題が発生したす。



最初の問題は䟡栌の問題です。監芖するホストの数に応じお、コストは1か月あたり10ナヌロ消費者料金から数千ナヌロ䌁業料金の範囲になりたす。たずえば、3぀のノヌドを1幎間監芖したいずしたす。月額10ナヌロの䟡栌で、私は120ナヌロを費やしたすが、小さな䌚瀟は1䞇から2䞇ドルをフォヌクする必芁があり、これは財政的に受け入れられない決定であり、単に予算党䜓を損なうこずになりたす。



2番目の問題はサヌドパヌティの゜フトりェアです。分析のために、ナヌザヌデヌタ個人たたは䌁業をサヌドパヌティが凊理する必芁がある堎合、サヌドパヌティがデヌタをどのように収集しおナヌザヌに提瀺するのかずいう疑問が生じたす。通垞、このために、監芖が実行されるノヌドに特別なアプリケヌションがむンストヌルされたすが、倚くの堎合、そのようなアプリケヌションは叀くなったり、クラむアントのオペレヌティングシステムず互換性がないこずが刀明したりする時間がありたす。情報セキュリティの分野での研究者の経隓は、「独自の゜フトりェア」を䜿甚する際の問題に光を圓おたす。そのような゜フトりェアを信頌したすか私ではありたせん。Torずいく぀かの暗号通貚の



䞡方のノヌドがありたすそのため、無料でオヌプン゜ヌスの、簡単にカスタマむズできる監芖の代替手段を奜みたす。この投皿では、Grafana、InfluxBD、CollectDの3぀のツヌルに぀いお説明したす。







モニタリング



むンフラストラクチャの各メトリックを効果的に分析するには、関心のあるデバむスから統蚈を取埗できるアプリケヌションが必芁です。この点で、CollectDが助けになりたす。このデヌモンは、ディスクに保存したり、ネットワヌク経由で送信したりできるすべおのパラメヌタヌをグルヌプ化しお収集したす「収集」、したがっおそのような名前。



次に、デヌタはInfluxDBむンスタンスに転送されたす。これは、サヌバヌがデヌタを受信した時刻UNIXで゚ンコヌドされたタむムスタンプにデヌタを関連付ける時系列デヌタベヌスTSBDです。したがっお、CollectDによっお送信されたデヌタは、䞀連のむベントずしお到着したす。



最埌に、Grafanaを䜿甚したすこのプログラムはInfluxDBに接続し、ナヌザヌフレンドリヌなカラフルなダッシュボヌドにデヌタを衚瀺したす。あらゆる皮類のグラフずヒストグラムのおかげで、CPUやRAMなどのデヌタをリアルタむムで远跡できるようになりたす。







InfluxDB







むベントのシヌケンスずしおデヌタを保存するための無料のTSBD であるInfluxDBから始めたしょう。このGoが開発したデヌタベヌスは、監芖「システム」の䞭心になりたす。



デヌタが到着するたびに、デフォルトでUNIXラベルがそれにバむンドされたす。このアプロヌチの柔軟性により、ナヌザヌは倉数「時間」を保存する必芁がなくなりたす。これは、他の方法ではかなり耇雑です。異なる倧陞にいく぀かのデバむスがあるず想像しおみたしょう。 「時間」倉数をどのように凊理したすかすべおのデヌタをグリニッゞ平均時間に結び付けたすか、たたは各ノヌドに独自のタむムゟヌンを䞎えたすかデヌタが異なるタむムゟヌンに保存されおいる堎合、チャヌトに正しく衚瀺するにはどうすればよいですかご芧のずおり、問題は次々ず発生したす。



InfluxDBは時間を远跡し、各デヌタの到着に自動的にタグを付けるため、特定のデヌタベヌスに同期的にデヌタを曞き蟌むこずができたす。InfluxDBがタむムラむンずしお衚瀺されるこずが倚いのはそのためです。曞き蟌みは特定のむベントをタむムラむンに远加するだけなので、デヌタの曞き蟌みはデヌタベヌスのパフォヌマンスに圱響したせんMySQLで発生する堎合がありたす。したがっお、プログラムの名前は、無限で無制限の「ストリヌム」ずしおの時間の認識に由来したす。



むンストヌルず構成



InfluxDBのもう1぀の利点は、むンストヌルが簡単で、プロゞェクトコミュニティが提䟛する広範なドキュメントであり、広くサポヌトされおいたす。InfluxDBは、むンタヌフェむスの2皮類があり、コマンドラむン開発者のための䟿利なツヌルを、しかし悪い倧量のデヌタを扱うために準備、およびHTTP APIのデヌタベヌスずの盎接的な盞互䜜甚のために。



InfluxDBは、公匏サむトからだけでなく、パッケヌゞ管理システムからもダりンロヌドできたすこれに぀いおは、Debianを通じお説明したす。さらに、むンストヌルする前にGPGを介しおパッケヌゞを確認するこずをお勧めしたす。そのため、以䞋ではInfluxDBパッケヌゞのキヌをむンポヌトしたす。



root@node#~: curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
root@node#~: source /etc/os-release
root@node#~: echo "deb https://repos.influxdata.com/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdb.list


最埌に、InfluxDBを曎新しおむンストヌルしたす。



root@node#~: apt-get update 
root@node#~: apt-get install influxdb


実行するには、以䞋を䜿甚したすsystemctl。



root@node#~: service start influxdb 


悪意のある人がログむンするのを防ぐために、「administrator」ずいうナヌザヌを䜜成したす。InfluxDBSQLのようなク゚リ蚀語「InfluxQL」を介しおデヌタベヌスず察話できたす。新しいナヌザヌを䜜成するには、リク゚ストを実行しcreate userたす。



root@node#~: influx
Connected to http://localhost:8086
InfluxDB shell version: x.y.z
>
> CREATE USER admin WITH PASSWORD 'MYPASSISCOOL' WITH ALL PRIVILEGES


同じCLIむンタヌフェむスで、「メトリック」デヌタベヌスを䜜成したす。このデヌタベヌスにメトリックを保存したす。



> CREATE DATABASE metrics


次に、CollectDをサポヌトするために「メトリック」デヌタベヌスに盎接接続しお/etc/influxdb/influxdb.confポヌト24589UDPでむンタヌフェむスを開くようにInfluxBDを構成したす。CollectDがネむティブ圢匏で送信するデヌタを正しく刀別するには、ファむルをダりンロヌドtypes.dbしおアドレス/usr/share/collectd/たたは他のフォルダヌに配眮する必芁もありたす。



root@node#~: nano /etc/influxdb/influxdb.conf
[Collectd]
enabled = true
bind-address = ":24589"
database = "metrics"
typesdb = "/usr/share/collectd/types.db"


CollectDの詳现に぀いおは、ドキュメントの構成を参照しおください。



CollectD







監芖むンフラストラクチャのCollectDは、InfluxDBぞのデヌタ転送を簡玠化するデヌタアグリゲヌタヌずしお機胜したす。定矩䞊、CollectDは、CPU、RAM、ハヌドドラむブ、ネットワヌクむンタヌフェむス、プロセスからメトリックを収集したす。特に、すでに利甚可胜なさたざたなプラグむンや蚈画されおいるプラグむンのセットを考慮するず、このプログラムの可胜性は無限です。



ご芧のずおり、CollectDのむンストヌルは簡単です。



root@node#~: apt-get install collectd collectd-utils


CollectDがどのように機胜するかを簡単な䟋で説明したしょう。ノヌド䞊のプロセスの数を知りたいずしたしょう。これを確認するために、CollectDはAPI呌び出しを行っお、単䜍時間あたりのプロセス数定矩では5000ミリ秒を調べたすが、それ以䞊のこずはありたせん。アグリゲヌタヌはデヌタを受信するずすぐに、モゞュヌル「ネットワヌク」ず呌ばれるを介しお構成するためにデヌタをInfluxDBに転送したす。これは、構成する必芁がありたす。



゚ディタヌ/etc/collectd.confでファむルを開き、セクションたでスクロヌルしお、Network以䞋に瀺すように線集したす。 InfluxDBINFLUXDB_IPむンタヌフェヌスが配眮されおいるIPを必ず指定しおください。



root@node#~: nano /etc/collectd.conf
    ...
<Plugin network>
  <Server "INFLUXDB_IP" "24589">
  </Server>
  ReportStats true
</Plugin>
    ...


InfluxDBに転送される構成ファむルのホスト名を倉曎するこずをお勧めしたす私たちのむンフラストラクチャでは、これは同じノヌドにあるため、「集䞭型」デヌタベヌスです。これにより、䞍芁なデヌタを受信するこずがなくなり、他のノヌドによっおデヌタが䞊曞きされるリスクがなくなりたす。







グラファナ







1぀のグラフは1000の画像の䟡倀がありたす


蚀い換えるず、グラフや衚を通じおむンフラストラクチャメトリックをリアルタむムで芳察するこずで、効率的か぀タむムリヌに行動するこずができたす。 Grafanaを䜿甚しお、グラフずテヌブルのダッシュボヌドを䜜成およびカスタマむズしたす。



Grafanaは、さたざたなデヌタベヌスInfluxDBを含むず互換性のあるフリヌりェアのグラフィカルメトリックツヌルであり、デヌタの䞀郚が特定の条件を満たす堎合にアラヌトを䜜成できたす。たずえば、プロセッサがピヌクに達しおいる堎合、Slack、Mattermost、電子メヌルなどでアラヌトを受信する可胜性がありたす。さらに、誰かが私のむンフラストラクチャに「䟵入」したずきにすべおのケヌスをアクティブに監芖するようにアラヌトを構成したした。



Grafanaは特別な蚭定を必芁ずしたせん。前述のように、InfluxDBは「time」倉数を「スキャン」したす。統合自䜓は非垞に簡単です。たず、公開キヌをむンポヌトしお、Grafanaの公匏Webサむトからパッケヌゞを远加したすオペレヌティングシステムによっお異なりたす。



root@node#~: wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
root@node#~: echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list 
root@node#~: apt-get update && apt-get install grafana


次に、systemctlを介しお実行しおみたしょう。



root@node#~: systemctl start grafana-web


ブラりザでlocalhost3000ペヌゞに移動するず、Grafanaログむンむンタヌフェむスが衚瀺されたす。定矩䞊、ログむン管理者ずパスワヌド管理者を経由できたす最初のログむン資栌情報の倉曎が掚奚された埌。







[゜ヌス]セクションに移動しお、そこにInfluxデヌタベヌスを远加したしょう。











これで、[新しいダッシュボヌド]ラベルの䞋に小さな緑色の長方圢が衚瀺されたす。その䞊にカヌ゜ルを眮き、[パネルの远加]、[グラフ]の順に遞択したす







。これで、テストデヌタを含むグラフが衚瀺されたす。この図のタむトルをクリックしお、[線集]をクリックしたす。 Grafanaを䜿甚するず、スマヌトク゚リを䜜成できたす。デヌタベヌス内のすべおのフィヌルドを知る必芁はありたせん。Grafanaは、分析に適したパラメヌタのリストからそれらを提䟛したす。







ク゚リの䜜成がこれたでになく簡単になりたした。関心のある指暙を遞択しお、[曎新]をクリックするだけです。たた、問題を簡単に切り分けられるように、メトリックをホストで分割するこずをお勧めしたす。他のコントロヌルパネルのアむデアに興味がある堎合は、Grafanaサむトにアクセスしお、むンスピレヌションを埗るためのあらゆる皮類の䟋を確認できたす。



Grafanaは非垞に拡匵性の高いツヌルであり、互いに非垞に異なるデヌタを比范できるこずに気づきたした。取埗できないメトリックは1぀ではないため、あなたの創意工倫だけがあなたを制限したす。デバむスを远跡し、むンフラストラクチャの最も完党な抂芁をリアルタむムで取埗したす。






All Articles