我輩は雑記帖である。名はまだない。

Collectd + Graphite + Grafana をインスト-ルしてル-タ-のトラフィックをグラフ化する

CentOS 7.5 に Collectd、Graphite、Grafana をセットアップする。

 

ル-タ-のトラフィックをグラフ化するため Collectd、Graphiteで SNMP経由でメトリクスを取得して Grafana でグラフ表示する。

 

手順は下記の通り。

  1. Collectd  をインスト-ル 及び 設定
  2. Graphite をインスト-ル 及び 設定
  3. Grafana  をインスト-ル 及び 設定

 

1.Collectd  をインスト-ル 及び 設定

1.epel リポジトリインスト-ル

yum install epel-release

 

2.モジュ-ルインスト-ル

下記コマンドを実行して必要なモジュ-ルをインスト-ル

yum install collectd collectd-snmp net-snmp net-snmp-utils

 

3.『/etc/collectd.conf』を修正する。

190 行目付近

#LoadPlugin smart
LoadPlugin snmp
#LoadPlugin snmp_agent

213 行目付近

#LoadPlugin wireless
LoadPlugin write_graphite
#LoadPlugin write_http

1296 行目付近

<Plugin snmp>
   <Data "powerplus_voltge_input">
       Type "voltage"
       Table false
       Instance "input_line1"
       Values "SNMPv2-SMI::enterprises.6050.5.4.1.1.2.1"
   </Data>
   <Data "hr_users">
       Type "users"
       Table false
       Instance ""
       Values "HOST-RESOURCES-MIB::hrSystemNumUsers.0"
   </Data>
   <Data "std_traffic">
       Type "if_octets"
       Table true
       Instance "IF-MIB::ifDescr"
       Values "IF-MIB::ifInOctets" "IF-MIB::ifOutOctets"
   </Data>

   <Host "SNMP経由でメトリックスを取得する機器名">
       Address "SNMP経由でメトリックスを取得する機器の IPアドレス 又は ホスト名"
       Version 1
       Community "SNMPで読み取るコミュニティ名"
       Collect "std_traffic"
       Interval 30
       Timeout 10
       Retries 1
   </Host>
</Plugin>

1622 行目付近

<Plugin write_graphite>
  <Node "graphite">
    Host "localhost"
    Port "2003"
    Protocol "tcp"
    ReconnectInterval 0
    LogSendErrors true
    Prefix "collectd."
    Postfix ""
    StoreRates true
    AlwaysAppendDS false
    EscapeCharacter "_"
    SeparateInstances false
    PreserveSeparator false
    DropDuplicateFields false
  </Node>
</Plugin>

 

4.ポリシ-設定

以下のポリシ-をOnにする。

・nis_enabled
・collectd_tcp_network_connect

ポリシ-のパラメ-タ値を確認するコマンド

getsebool -a | grep キ-ワ-ド

ポリシ-のパラメ-タ値を設定するコマンド

setsebool -P ポリシ-名=on

 

5.SELinux にポリシ-を追加

下記コマンドでポリシ-追加。

vi collectd-rule.te

module collectd-rule 1.0;

require {
        type snmpd_var_lib_t;
        type collectd_t;
        class dir write;
}

#============= collectd_t ==============
allow collectd_t snmpd_var_lib_t:dir write;

checkmodule -m -M -o collectd-rule.mod collectd-rule.te
semodule_package --outfile collectd-rule.pp --module collectd-rule.mod
semodule -i collectd-rule.pp

 

6.サ-ビス起動 及び 自動起動設定

systemctl start collectd
systemctl enable collectd

 

2.Graphite をインスト-ル 及び 設定

1.モジュ-ルインスト-ル

下記コマンドを実行して必要なモジュ-ルをインスト-ル

yum install graphite-web python-carbon httpd

 

2.『/etc/carbon/carbon.conf』を修正する。

42 行目付近

# ENABLE_LOGROTATION = False
ENABLE_LOGROTATION = True

 

3.『/etc/carbon/storage-schemas.conf』を修正する。

13 行目付近

[carbon]
pattern = ^carbon\.
retentions = 60:90d

[collectd]
pattern = ^collectd*
retentions = 30:90d,300:365d

[default_1min_for_1day]
pattern = .*
retentions = 60s:1d

 

4.『/etc/graphite-web/local_settings.py』を修正する。

13 行目付近

#SECRET_KEY = 'UNSAFE_DEFAULT'
SECRET_KEY = '生成したランダム文字列'

24 行目付近

#TIME_ZONE = 'America/Los_Angeles'
TIME_ZONE = 'Asia/Tokyo'

 

5.『/etc/httpd/conf.d/graphite-web.conf』を修正する。

29 行目付近

           # Require local
           Require ip 接続を許可するネットワ-クセグメント/サブネットマスク

 

5.ポリシ-設定

以下のポリシ-をOnにする。

・httpd_can_network_connect

ポリシ-のパラメ-タ値を確認するコマンド

getsebool -a | grep キ-ワ-ド

ポリシ-のパラメ-タ値を設定するコマンド

setsebool -P ポリシ-名=on

 

6.デ-タベ-ス作成

下記コマンドを実行して DB を作成する。

graphite-manage syncdb

※対話ダイアログで 特権ユ-ザ-作成有無を問われる。

 

7.所有権設定

下記コマンドで DB の所有権を apache にする。

chown apache. /var/lib/graphite-web/graphite.db

 

8.サ-ビス起動 及び 自動起動設定

systemctl stop collectd
systemctl start carbon-cache
systemctl start httpd
systemctl start collectd
systemctl enable carbon-cache
systemctl enable httpd

 

9.パケットフィルタリング設定

firewall-cmd --permanent --add-service=http
firewall-cmd --reload

 

3.Grafana  をインスト-ル 及び 設定

1.『/etc/yum.repos.d/grafana.repo』を作成する。

[grafana]
name=grafana
baseurl=https://packagecloud.io/grafana/stable/el/7/$basearch
gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
enabled=1
gpgcheck=1

 

2.パッケ-ジアップデ-ト

下記コマンドを実行してパッケ-ジをアップデ-ト。

yum update

 

3.モジュ-ルインスト-ル

下記コマンドを実行して必要なモジュ-ルをインスト-ル

yum install grafana

 

4.サ-ビス起動 及び 自動起動設定

systemctl start grafana-server
systemctl enable grafana-server

5.パケットフィルタリング設定

firewall-cmd --add-port=3000/tcp --permanent
firewall-cmd --reload

 

6.Web ブラウザから初期設定をする。

Web ブラウザから『http://インスト-ルマシンの IPアドレス 又は ホスト名:3000』にアクセスしてログインする。

ユ-ザ- :admin
パスワ-ド:admin

 

Data Sourceに下記設定値を指定して追加する。

Type  :Graphite
URL   :http://インスト-ルマシンの IPアドレス 又は ホスト名
Access :Server(Default)

 

かなり試作したから記載ミスってる可能性大。

参考元を見てなんとか(ry

 

参考元

  1. Server World Graphite : インストール
  2. Server World Grafana : インストール
  3. ネットワークメトリクスを視覚化してみた(collectd + Graphite + Grafana)
  4. CentOS6でSNMPの設定をするとき最低限必要なもの
  5. Blue21
  6. collectdの設定方法

 

CentOS7で作るネットワークサーバ構築ガイド (Network server construction gu)
  • 価格:Check on Amazon
  • 製造元:サーバ構築研究会

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください