サヌバヌ監芖システムの抂芁。 muninを...に眮き換える

長い間蚘事を曞きたかったのですが、時間が足りたせんでした。 この蚘事で説明されおいるように、muninのような単玔な代替手段を芋぀けた堎所はありたせんHabréを含む。







私はバック゚ンド開発者であり、プロゞェクトに専任の管理者がいないこずが非垞に倚いため特に補品の初期段階、私は長い間基本的なサヌバヌ管理を行っおきたした初期セットアップ、構成、バックアップ、レプリケヌション、監芖など。 私はこれが本圓に奜きで、い぀もこの方向で䜕か新しいこずを孊びたす。



ほずんどの堎合、プロゞェクトには1台のサヌバヌで十分であり、䞊玚開発者および単なる責任者ずしお、い぀その制限に盎面するかを理解するためにリ゜ヌスを制埡する必芁がありたした。 これらの目的には、Muninで十分でした。



むンタヌフェヌス






ムニン



むンストヌルは簡単で、芁件はわずかです。 それはperlで曞かれおおり、リングデヌタベヌス RRDtool を䜿甚したす。



蚭眮䟋
コマンドを実行したす。

apt-get munin munin-nodeをむンストヌルしたす

サヌビスmunin-nodeの開始



munin-nodeはシステムメトリックを収集しおデヌタベヌスに曞き蟌み、5分ごずにこのデヌタベヌスからhtmlレポヌトを生成し、/ var / cache / munin / wwwフォルダヌに配眮したす



これらのレポヌトを簡単に衚瀺するために、nginxの簡単な構成を䜜成できたす

server { listen 80; server_name munin.myserver.ru; root /var/cache/munin/www; index index.html; }
      
      







実際にはそれだけです。 1日/週/月/幎のCPU、メモリ、ハヌドドラむブ、ネットワヌクなどのグラフをすでに芋るこずができたす。 ほずんどの堎合、デヌタベヌスが垞にボトルネックであるため、ハヌドディスクの読み取り/曞き蟌みの負荷に興味がありたした。



サヌバヌリ゜ヌスを監芖するには垞に十分であり、 uptimerobot.comなどの無料サヌビスを䜿甚しおサヌバヌの可甚性を監芖したした。



この組み合わせを䜿甚しお、仮想サヌバヌ䞊のホヌムプロゞェクトを監芖したす。



プロゞェクトが1぀のサヌバヌから成長する堎合、2番目のサヌバヌにmunin-nodeをむンストヌルするだけで十分です。1番目に-構成に1行远加しお、2番目のサヌバヌからメトリックを収集したす。 䞡方のサヌバヌのグラフは別々になりたすが、これは䞀般的な画像を衚瀺するのに䟿利ではありたせん-どのサヌバヌが空きディスク容量を䜿い果たし、どのRAMが䞍足したす。 この状況を修正するには、構成に数十行を远加しお、䞡方のサヌバヌからのメトリックで1぀のグラフを集玄したす。 したがっお、これは最も基本的なメトリックに察しおのみ行うこずをお勧めしたす。 構成を間違えた堎合は、ログに蚘録された内容を正確に読み取る必芁がありたす。情報を芋぀けられずに、「pokeメ゜ッド」を䜿甚しお状況を修正しおください。



蚀うたでもなく、より倚くのサヌバヌにずっお、これは本圓の地獄に倉わりたす。 たぶんこれは、muninが2003幎に開発されたものであり、元々このために蚭蚈されたものではないずいう事実によるものです。



耇数のサヌバヌを監芖するためのmuninの代替



新しい監芖システムに必芁な品質を自分で決定したした。



怜蚎したすべおをリストしたす。



サボテン



phpでのみmuninずほが同じです。 デヌタベヌスずしお、 muninやmysqlのようなrrdtoolを䜿甚できたす。 最初のリリヌス 2001

むンタヌフェヌス






ガングリア



デヌタベヌスずしおphp 、 rrdtoolで曞かれた以前のものずほが同じです。 最初のリリヌス 1998

むンタヌフェヌス






収集した



以前のものよりもさらにシンプルなシステム。 デヌタベヌスずしおc 、 rrdtoolで曞かれおいたす。 最初のリリヌス 2005

むンタヌフェヌス






黒鉛



pythonで蚘述された3぀のコンポヌネントで構成されたす 。

カヌボンはメトリックを収集し、dbに曞き蟌みたす

りィスパヌ -独自のrrdtoolのようなデヌタベヌス

グラファむトりェブ -むンタヌフェヌス

最初のリリヌス 2008

むンタヌフェヌス






ザビックス



ほずんどの管理者が䜿甚するプロフェッショナルな監芖システム。 電子メヌル通知を含むほがすべおのものがありたすスラックず電報の堎合、単玔なbashスクリプトを䜜成できたす。 ナヌザヌずサヌバヌに重い。 ゞラからカマキリに戻ったかのように、私はそれを䜿甚しおいたした。

カヌネルはcで蚘述され、Webむンタヌフェむスはphpで蚘述されおいたす。 デヌタベヌスで䜿甚できるのは、MySQL、PostgreSQL、SQLite、Oracle、たたはIBM DB2です。 最初のリリヌス 2001

むンタヌフェヌス






ナギオス



Zabbixの䟡倀ある代替品。 pで曞かれおいたす。 最初のリリヌス 1999

むンタヌフェヌス






むシンガ



フォヌク・ナギオス。 デヌタベヌスずしお䜿甚できるのは、MySQL、Oracle、およびPostgreSQLです。 最初のリリヌス 2009

むンタヌフェヌス






小さな䜙談



䞊蚘のシステムはすべお尊敬に倀したす。 ほずんどのLinuxディストリビュヌションのパッケヌゞから簡単にむンストヌルでき、倚くのサヌバヌで実皌働で長い間䜿甚されおおり、サポヌトされおいたすが、開発は非垞に䞍十分で、むンタヌフェヌスが叀くなっおいたす。

補品の半分はsqlデヌタベヌスを䜿甚しおいたすが、これは履歎デヌタメトリックの保存には最適ではありたせん。 䞀方では、これらのデヌタベヌスは汎甚的であり、他方では、ディスクに倧きな負荷をかけ、ストレヌゞ䞭にデヌタがより倚くのスペヌスを占有したす。

このようなタスクには、 ClickHouseなどの最新の時系列デヌタベヌスがより適しおいたす。

新䞖代の監芖システムは時系列デヌタベヌスを䜿甚したす。それらの䞀郚には分離䞍可胜な郚分ずしお含たれ、他は個別のコンポヌネントずしお䜿甚され、3番目はデヌタベヌスなしで機胜したす。



ネットデヌタ



デヌタベヌスはたったく必芁ありたせんが、 Graphite、OpenTSDB、Prometheus、InfluxDBにメトリックをアップロヌドできたす。 cおよびpythonで蚘述されおいたす。 最初のリリヌス 2016

むンタヌフェヌス






プロメテりス



goで蚘述された3぀のコンポヌネントで構成されたす 。

prometheusはカヌネルであり、独自の組み蟌みデヌタベヌスずWebむンタヌフェむスです。

node_exporter-別のサヌバヌにむンストヌルしお、メトリックをカヌネルに転送できる゚ヌゞェントは、prometheusでのみ機胜したす。

alertmanager-通知システム。

最初のリリヌス 2014

むンタヌフェヌス






InfluxData TICKスタック



サヌドパヌティ補品ず連携できるgoで蚘述された4぀のコンポヌネントで構成されおいたす。

telegraf-別のサヌバヌにむンストヌルでき、メトリック、ログをinfluxdb 、 elasticsearch 、 prometheus 、 グラファむト デヌタベヌス 、および耇数のキュヌサヌバヌに送信できる゚ヌゞェント。

influxdbは、 telegraf 、 netdata、たたはcollectdからデヌタを受信できるデヌタベヌスです。

chronograf-デヌタベヌスのメトリックを芖芚化するためのWebむンタヌフェむス。

kapacitor-通知システム。

最初のリリヌス 2013

むンタヌフェヌス






grafanaなどの補品に぀いおも蚀及したいず思いたす 。これはgoで曞かれおおり、influxdb、elasticsearch、clickhouse、prometheus、graphiteからのデヌタを芖芚化できるほか、電子メヌル、スラック、電報で通知を送信できたす。

最初のリリヌス 2014

むンタヌフェヌス






最高のものを遞ぶ



むンタヌネットやHabréには、さたざたな補品のさたざたなコンポヌネントを䜿甚しお必芁なものを取埗する䟋がたくさんありたす。



炭玠゚ヌゞェント->ささやきdb-> grafanaむンタヌフェヌス

netdata゚ヌゞェントずしお-> null / influxdb / elasticsearch / prometheus / graphas db-> grafanaむンタヌフェむス

node_exporter゚ヌゞェント-> prometheusデヌタベヌスずしお-> grafanaむンタヌフェヌス

collectd゚ヌゞェント-> influxdbdb-> grafanaむンタヌフェヌス

zabbix゚ヌゞェント+サヌバヌ-> mysql-> grafanaむンタヌフェヌス

telegraf゚ヌゞェント-> elasticsearchdb-> kibanaむンタヌフェヌス

...など

私もそのような束の蚀及を芋たした

...゚ヌゞェント->クリックハりスdb-> grafanaむンタヌフェヌス



ほずんどの堎合、既に独自のむンタヌフェヌスプロメテりス、グラファむトりェブが含たれおいる補品ず組み合わせお䜿甚​​されおいおも、grafanaがむンタヌフェヌスずしお䜿甚されおいたした。

そのためおよびその汎甚性、シンプルさ、利䟿性のためむンタヌフェヌスずしお、私はgrafanaに萜ち着き、デヌタベヌスの遞択に進みたした。1぀のデヌタベヌス、グラファむト-デヌタベヌスだけですべおの機胜をむンタヌフェヌスず䞀緒に匕きたくないため、プロメテりスは脱萜したした前䞖玀のrrdtool-bdによっお䜜り盎された過去10幎間の、たあ、実際にinfluxdbに萜ち着きたした。



たた、私自身のために、telegrafを遞択するこずにしたした。それは、私のニヌズ倚数のメトリックずbashで独自のプラグむンを䜜成する胜力を満たし、たた、将来圹に立぀かもしれない異なるデヌタベヌスで動䜜するからです。



私が埗た最埌の束はこれです

telegraf゚ヌゞェント-> influxdbdb-> grafanaむンタヌフェヌス+通知



すべおのコンポヌネントには䜙分なものは含たれおおらず、 goで蚘述されおいたす 。 私が恐れおいた唯䞀のこずは、この束をむンストヌルしお構成するのが難しいずいうこずでしたが、以䞋でわかるように、それは無駄でした。



TIGの短いむンストヌルガむド



influxdb



 wget https://dl.influxdata.com/influxdb/releases/influxdb-1.2.2.x86_64.rpm && yum localinstall influxdb-1.2.2.x86_64.rpm #centos wget https://dl.influxdata.com/influxdb/releases/influxdb_1.2.4_amd64.deb && dpkg -i influxdb_1.2.4_amd64.deb #ubuntu systemctl start influxdb systemctl enable influxdb
      
      





これで、デヌタベヌスにク゚リを䜜成できたすただし、ただデヌタはありたせん。

http://localhost:8086/query?q=select+*+from+telegraf..cpu







テレグラフ



 wget https://dl.influxdata.com/telegraf/releases/telegraf-1.2.1.x86_64.rpm && yum -y localinstall telegraf-1.2.1.x86_64.rpm #centos wget https://dl.influxdata.com/telegraf/releases/telegraf_1.3.2-1_amd64.deb && dpkg -i telegraf_1.3.2-1_amd64.deb #ubuntu #          influxdb    /etc/telegraf/telegraf.conf   [[outputs.influxdb]]   urls = ["http://localhost:8086"]: sed -i 's| urls = ["http://localhost:8086"]| urls = ["http://myserver.ru:8086"]|g' /etc/telegraf/telegraf.conf systemctl start telegraf systemctl enable telegraf
      
      





Telegrafは、名前「telegraf」、ナヌザヌ名「telegraf」、パスワヌド「metricsmetricsmetricsmetrics」でinfluxdbにベヌスを自動的に䜜成したす。



グラファナ



 yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.3.2-1.x86_64.rpm #centos wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_4.3.2_amd64.deb && dpkg -i grafana_4.3.2_amd64.deb #ubuntu systemctl start grafana-server systemctl enable grafana-server
      
      





むンタヌフェむスはhttp://myserver.ru:3000



で入手できたす。 ログむンadmin、パスワヌドadmin。

グラファンはデヌタに぀いお䜕も知らないため、最初はむンタヌフェむスに䜕もありたせん。

1゜ヌスに移動しお、influxdbdbtelegrafを指定する必芁がありたす

2必芁なメトリックを䜿甚しお独自のダッシュボヌドを䜜成する倚くの時間がかかりたすか、既存のダッシュボヌドをむンポヌトする必芁がありたす。次に䟋を瀺したす。

928-遞択したホストのすべおのメトリックを衚瀺できたす

914は同じです

61-単䞀のチャヌトで遞択したホストのメトリックを蚱可したす

Grafanaには、サヌドパヌティのダッシュボヌドをむンポヌトするための優れたツヌルがありその数を指定するだけです、独自のダッシュボヌドを䜜成しおコミュニティず共有するこずもできたす。

以䞋は、telegrafコレクタヌを䜿甚しお収集されたinfluxdbのデヌタを操䜜するすべおのダッシュボヌドのリストです 。



セキュリティを重芖



サヌバヌ䞊のすべおのポヌトは、信頌するIPからのみ開く必芁がありたす。䜿甚する補品で認蚌を有効にし、デフォルトのパスワヌドを倉曎する必芁がありたす䞡方を実行したす。



influxdb



influxdbでは、認蚌はデフォルトで無効になっおおり、誰でも䜕でもできたす。 したがっお、サヌバヌにファむアりォヌルがない堎合は、蚱可を有効にするこずを匷くお勧めしたす。



 #   : influx -execute 'CREATE DATABASE telegraf' influx -execute 'CREATE USER admin WITH PASSWORD "password_for_admin" WITH ALL PRIVILEGES' influx -execute 'CREATE USER telegraf WITH PASSWORD "password_for_telegraf"' influx -execute 'CREATE USER grafana WITH PASSWORD "password_for_grafana"' influx -execute 'GRANT WRITE ON "telegraf" TO "telegraf"' # telegraf      influx -execute 'GRANT READ ON "telegraf" TO "grafana"' # grafana      #  /etc/influxdb/influxdb.conf   [http]   auth-enabled   : sed -i 's| # auth-enabled = false| auth-enabled = true|g' /etc/influxdb/influxdb.conf systemctl restart influxdb
      
      





テレグラフ



 #  /etc/telegraf/telegraf.conf   [[outputs.influxdb]]       : sed -i 's| # password = "metricsmetricsmetricsmetrics"| password = "password_for_telegraf"|g' /etc/telegraf/telegraf.conf systemctl restart telegraf
      
      





グラファナ



゜ヌス蚭定で、influxdbの新しいログむンを指定する必芁がありたす䞊蚘の項目から「grafana」ずパスワヌド「password_for_grafana」。

たた、むンタヌフェヌスで、adminナヌザヌのデフォルトのパスワヌドを倉曎する必芁がありたす。

 Admin -> profile -> change password
      
      







曎新圌の基準「無料でオヌプン゜ヌス」にアむテムを远加し、最初から指定するのを忘れおいたした。今では、有料/シェアりェア/トラむアル/クロヌズド゜フトりェアの束に぀いおアドバむスを受けおいたす。 無料で取匕がありたす。

どうやっお遞んだの
1最初に英語版りィキペディアの監芖システムの比范を芋たした

2githubのトッププロゞェクトを芋た

3habrでこのテヌマにあるように芋えた

4珟圚どのシステムが流行しおいるかをグヌグル



Update2珟圚、愛奜家のグルヌプがgoogle docsでテヌブルを䜜成し、䞻芁なパラメヌタヌ蚀語、バむト/ポむント、クラスタリングによっおさたざたな監芖システムを比范しおいたす。 カットの䞋の珟圚のスラむス、フルスむングで動䜜したす。

15:15時点のスクリヌンショット




Update3 Googleドキュメントのオヌプン゜ヌスTSDBの別の比范 。 少し耇雑ですが、 AnyKey80lvlシステムよりも少ない



PSセットアップむンストヌルの説明でいく぀かの点を省略した堎合は、コメントを蚘入しお蚘事を曎新したす。 タむプミス-PM。

PPSもちろん、誰もこれを聞くこずはありたせん以前の蚘事執筆の経隓に基づいおいたすが、私はただ詊しおみる必芁がありたすPMでHabr、VK、fbなどに぀いお質問するのではなく、ここにコメントを曞いおください。

PPPS蚘事のサむズずそれに費やされる時間は最初の「予算」から倧きく倖れおいるため、この䜜業の結果が誰かに圹立぀こずを願っおいたす。



All Articles