CentOS 7.5 に Collectd、Graphite、Grafana をセットアップする。
ル-タ-のトラフィックをグラフ化するため Collectd、Graphiteで SNMP経由でメトリクスを取得して Grafana でグラフ表示する。
手順は下記の通り。
- Collectd をインスト-ル 及び 設定
- Graphite をインスト-ル 及び 設定
- 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 接続を許可するネットワ-クセグメント/サブネットマスク
6.ポリシ-設定
以下のポリシ-をOnにする。
・httpd_can_network_connect
ポリシ-のパラメ-タ値を確認するコマンド
getsebool -a | grep キ-ワ-ド
ポリシ-のパラメ-タ値を設定するコマンド
setsebool -P ポリシ-名=on
7.デ-タベ-ス作成
下記コマンドを実行して DB を作成する。
graphite-manage syncdb
*
対話ダイアログで 特権ユ-ザ-作成有無を問われる。
8.所有権設定
下記コマンドで DB の所有権を apache にする。
chown apache. /var/lib/graphite-web/graphite.db
9.サ-ビス起動 及び 自動起動設定
systemctl stop collectd systemctl start carbon-cache systemctl start httpd systemctl start collectd systemctl enable carbon-cache systemctl enable httpd
10.パケットフィルタリング設定
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
参考元
- Server World Graphite : インストール
- Server World Grafana : インストール
- ネットワークメトリクスを視覚化してみた(collectd + Graphite + Grafana)
- CentOS6でSNMPの設定をするとき最低限必要なもの
- Blue21
- collectdの設定方法