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の設定方法

