データを収集してGraphite(Grafana)に送信するためにCollectdをインストールして構成します

最近、 Graphite + Grafanaの構成とインストールに関する記事を書きました。サーバーステータスデータを収集し、 Grapfiteに送信してGrapfiteで表示するためにGrafanaをインストールおよび構成する方法を説明します。


まえがき


Collectd -実行中のマシンの状態に関するメトリックを収集、保存、および送信するためのシステム。


多くのすぐに使えるプラグインがあり、設定は非常に柔軟です。


それでは、始めましょう。


収集されたインストール


ほとんどの場合、インストールは簡単です。


 sudo apt-get install collectd collectd-utils 

収集された基本セットアップ


まず、 collectdサービスを停止する必要があります。


 sudo service collectd stop 

標準構成ファイルのバックアップを作成し、独自に作成することをお勧めします。


 sudo mv /etc/collectd/collectd.conf /etc/collectd/collectd.conf.bak sudo touch /etc/collectd/collectd.conf 

すべての設定はファイル/etc/collectd/collectd.conf 、編集します。


 Hostname "graph_host" #    ( IP   Grafana #    ,    FQDNLookup true 

これで基本的なセットアップは完了です。


プラグイン設定


collectd多くの組み込みプラグインがあります。


最も必要なものを検討してください。


Mysqlプラグイン


同じ構成ファイルで、次の行を追加します


 LoadPlugin mysql 

以下に設定を入力します。


 <Plugin mysql> <Database DataBaseName> Host "HOST.OR.IP" Port "3306" User "UserName" Password "PassWord" Database "databasename" MasterStats true </Database> <Database DataBaseName2> Host "HOST.OR.IP" Port "3306" User "UserName" Password "PassWord" Database "databasename2" MasterStats true </Database> #       </Plugin> 

Nginxプラグイン


ここではすべてがもう少しおもしろいです。


まず、 Nginx自体を設定する必要があります。つまり、 nginx_statusページを有効にします。


Nginx一部として必要なモジュールの可用性を確認します。


 nginx -V 2>&1 | grep -o with-http_stub_status_module 

コマンドの出力が次の場合:


 with-http_stub_status_module 

その後、すべてが正常です。 それ以外の場合は、このモジュールでNginxを再構築するか、 nginx/1.10.1にこのモジュールを含む最新バージョンのnginx/1.10.1にアップグレードする必要があります。


次に、 Nginx構成し、ファイル/etc/nginx/conf.d/your.domain.conf編集します。


 server { listen 80; server_name your.domain.com; location / { #     ,    . } location /nginx_status { stub_status on; access_log off; allow IP.AD.DR.ES; # IP     Nginx deny all; } } 

ブラウザでhttp://your.domain.com/nginx_statusを開くと、403エラーが表示されます。
これは、左のユーザーがここで許可されないことを意味します。


collectd構成ファイルcollectdの行collectd追加します。


 LoadPlugin nginx 

そして設定を規定します:


 <Plugin nginx> URL "http://your.domain.com/nginx_status" VerifyPeer false VerifyHost false </Plugin> 

プラグインのメモリ、稼働時間、ユーザー、CPU


同じ構成ファイルに行を追加します


 LoadPlugin memory LoadPlugin uptime LoadPlugin users LoadPlugin cpu 

これらのプラグインはカスタマイズする必要はありません。
名前から、これらのプラグインが何を担当しているかは明らかだと思います。


Openvpnプラグイン


サーバーがOpenVPNサーバーの場合、このプラグインはデータの出力に役立ちます。


同じ構成ファイルで、次の行を追加します


 LoadPlugin openvpn 

そして設定を規定します:


 <Plugin openvpn> StatusFile "/etc/openvpn/openvpn-status.log" ImprovedNamingSchema false CollectCompression true CollectIndividualUsers true CollectUserCount false </Plugin> 

設定を使用すると、あなたの裁量でプレイすることができます。


スワッププラグイン


システムでSWAP {target = "_ bank"}を使用している場合、このプラグインが最適です。


同じ構成ファイルで、次の行を追加します


 LoadPlugin swap 

そして設定を規定します:


 <Plugin swap> ReportByDevice false ReportBytes true </Plugin> 

Vmemプラグイン


同じ構成ファイルで、次の行を追加します


 LoadPlugin vmem 

そして設定を規定します:


 <Plugin vmem> Verbose false </Plugin> 

syslogプラグイン


同じ構成ファイルで、次の行を追加します


 LoadPlugin syslog 

そして設定を規定します:


 <Plugin syslog> LogLevel info </Plugin> 

集約プラグイン


私はまだこのプラグインを理解していませんが、コンテンツから判断すると、 CPUパラメーターを提供し、おそらく追加の設定があります。 デフォルト設定を使用します。


同じ構成ファイルで、次の行を追加します


 LoadPlugin aggregation 

そして設定を規定します:


 <Plugin "aggregation"> <Aggregation> #Host "unspecified" Plugin "cpu" PluginInstance "/[0,2,4,6,8]$/" Type "cpu" #TypeInstance "unspecified" SetPlugin "cpu" SetPluginInstance "even-%{aggregation}" GroupBy "Host" GroupBy "TypeInstance" CalculateNum false CalculateSum false CalculateAverage true CalculateMinimum false CalculateMaximum false CalculateStddev false </Aggregation> </Plugin> 

バインドプラグイン


サーバーにbind9 DNSサーバーがインストールされている場合、このプラグインを有効にします。


同じ構成ファイルで、次の行を追加します


 LoadPlugin bind 

そして設定を規定します:


 <Plugin "bind"> URL "http://localhost:8053/" ParseTime false OpCodes true QTypes true ServerStats true ZoneMaintStats true ResolverStats false MemoryStats true <View "_default"> QTypes true ResolverStats true CacheRRSets true Zone "your.domain.com/IN" #   ,     </View> <View "_default2"> #      </View> </Plugin> 

Dfプラグイン


dfすべてのマウントされたパーティションの空きスペースと占有スペースの表示。


同じ構成ファイルで、次の行を追加します


 LoadPlugin df 

そして設定を規定します:


 <Plugin df> Device "/dev/vda1" #       df -h MountPoint "/" #    FSType "ext4" #    FSType rootfs FSType sysfs FSType proc FSType devtmpfs FSType devpts FSType tmpfs FSType fusectl FSType cgroup IgnoreSelected true ReportByDevice false ReportReserved false ReportInodes false ValuesAbsolute true ValuesPercentage false </Plugin> 

ディスクプラグイン


上記のプラグインと同様に機能しますが、他のいくつかのメトリックを表示します


同じ構成ファイルで、次の行を追加します


 LoadPlugin disk 

そして設定を規定します:


 <Plugin disk> Disk "vda" #   Disk "/vda[1,2,3,4,5,6]/" #     IgnoreSelected false </Plugin> 

Pingプラグイン


特定のドメインからの可用性と応答時間を確認します


同じ構成ファイルで、次の行を追加します


 LoadPlugin ping 

そして設定を規定します:


 <Plugin ping> Host "www.google.com" Interval 1.0 Timeout 0.9 TTL 255 SourceAddress "8.8.8.8" Device "eth0" MaxMissed -1 </Plugin> 

Write_graphiteプラグイン


この記事が書かれている主なプラグイン。 Graphiteデータを送信しています。


同じ構成ファイルで、次の行を追加します


 LoadPlugin write_graphite 

そして設定を規定します:


 <Plugin write_graphite> <Node "Graphite"> #   Host "127.0.0.1" Port "2003" Protocol "tcp" LogSendErrors true Prefix "collectd." Postfix "collectd." StoreRates true AlwaysAppendDS true EscapeCharacter "-" </Node> </Plugin> 

詳細設定


同じ構成ファイルに行を追加します


 <Include "/etc/collectd/collectd.conf.d"> Filter "*.conf" </Include> 

これは、拡張子が/etc/collectd/collectd.conf.dディレクトリからの設定のインポートです。


collectdを実行


collectd実行


 sudo service collectd start 

そして、すべてがエラーなく実行された場合Grafanaに移動し、ダッシュボードを追加して、メトリックを処方します。


collectdからのすべてのメトリックは、次のように記述されます。


 collectd.MetrikaName.******** 

必要なグラフを作成し、美しいモニタリングをお楽しみください。


Grafanaで収集されたメトリックを設定する


プラグインの全リスト


collectdされたすぐに使用できるプラグインの完全なリストは、 ここで表示できます


あとがき


次の記事では、 GrafanaプラグインについてGrafanaます。


元の記事は私のブログに掲載されています。



Source: https://habr.com/ru/post/J302840/


All Articles