collectdの設定方法

##　__はじめに__
+ サーバのシステム情報収集に関するオープンソースソフトウェア「[collectd](https://collectd.org/)」の設定方法のまとめ。
+ collectdは多数のプラグイン(公式に90個以上)を活用することで、ハードウェア監視、システム監視、サービス監視など様々な用途に利用可能。
+ ライセンスは、collectdのデーモンそのものは「[MIT License](https://ja.wikipedia.org/wiki/MIT_License)」、プラグインは各々異なるが多くは「[MIT License](https://ja.wikipedia.org/wiki/MIT_License)」または「[GNU General Public License](https://ja.wikipedia.org/wiki/GNU_General_Public_License)」。各プラグインのソースコード内に記載あり。
+ 公式サイトの日本語簡易翻訳を作成したので、宜しければ[こちら](http://qiita.com/tomo_n/items/639f38aa37a0407da92b)をご参考までに。
+ 本記事では、collectdのインストール方法を記載。

## collectdのインストール
### CentOS7
○ yumを利用した方法：

+ EPEL(エンタープライズ Linux 用の拡張パッケージ)リポジトリをCentOSに追加する。

```:
# yum install epel-release
```

+ collectdをインストールする。

```:
# yum install collectd
```

+ 下記必要に応じてインストール

```vim:
collectd-amqp
collectd-apache
collectd-ascent
collectd-bind
collectd-ceph
collectd-curl
collectd-curl_json
collectd-curl_xml
collectd-dbi
collectd-dns
collectd-drbd
collectd-email
collectd-generic-jmx
collectd-gmond
collectd-ipmi
collectd-iptables
collectd-ipvs
collectd-java
collectd-lvm
collectd-modbus
collectd-mysql
collectd-netlink
collectd-nginx
collectd-notify_desktop
collectd-notify_email
collectd-nut
collectd-openldap
collectd-pinba
collectd-ping
collectd-postgresql
collectd-redis
collectd-rrdcached
collectd-rrdtool
collectd-sensors
collectd-smart
collectd-snmp
collectd-turbostat
collectd-varnish
collectd-virt
collectd-web
collectd-write_redis
collectd-write_riemann
collectd-write_sensu
collectd-write_tsdb
collectd-zookeeper
```

## collectdの設定ファイル
+ collectdが何をどう収集するかの動作を定義するファイル。
+ 特に重要なオプションはLoadPluginでどのプラグインを使用するかを設定する。
+ 以下はversion collectd-5.5.1-3におけるデフォルトの設定ファイル。

```vim:/etc/collectd.conf
#
# Config file for collectd(1).
# Please read collectd.conf(5) for a list of options.
# http://collectd.org/
#

##############################################################################
# Global                                                                     #
#----------------------------------------------------------------------------#
# Global settings for the daemon.                                            #
##############################################################################

#---ホスト名を明示的に指定。未定義ならgethostnameシステムコールにより自動的に取得。
#Hostname    "localhost"
#---ホスト名が自動的に取得される場合に、FQDN解決を実施するかどうか。デフォルトではtrue。
#FQDNLookup   true
#---ベースとなるディレクトリ。ファイルの出力先やデーモン起動場所として利用。
#BaseDir     "/var/lib/collectd"
#---プロセスIDファイルの出力先。プログラム管理に使用。
#PIDFile     "/var/run/collectd.pid"
#---プラグインパス。
#PluginDir   "/usr/lib64/collectd"
#---データ型を定義するデータベース参照先。
TypesDB     "/usr/share/collectd/types.db" "/root/collectd/mod_types.db"

#----------------------------------------------------------------------------#
# When enabled, plugins are loaded automatically with the default options    #
# when an appropriate <Plugin ...> block is encountered.                     #
# Disabled by default.                                                       #
#----------------------------------------------------------------------------#
#---<Plugin...>記述があれば自動でプラグインを読み込む。
#---デフォルトではfalseで、明示的にLoadPluginを指定する必要がある。
#AutoLoadPlugin false

#----------------------------------------------------------------------------#
# When enabled, internal statistics are collected, using "collectd" as the   #
# plugin name.                                                               #
# Disabled by default.                                                       #
#----------------------------------------------------------------------------#
#---collectdデーモン自身の情報を収集するかどうか。デフォルトではfalse。
#---write_queueとcacheプラグインに関連あり。
#CollectInternalStats false

#----------------------------------------------------------------------------#
# Interval at which to query values. This may be overwritten on a per-plugin #
# base by using the 'Interval' option of the LoadPlugin block:               #
#   <LoadPlugin foo>                                                         #
#       Interval 60                                                          #
#   </LoadPlugin>                                                            #
#----------------------------------------------------------------------------#
#---プラグインを実行する間隔(秒)。変更するした場合はRRDファイルの初期化が必要。
#Interval     10

#---データの収集に失敗すると、再取得間隔を2倍にしていく。最大実効間隔。デフォルトは86400。
#MaxReadInterval 86400
#---プラグイン（が保持する情報）の更新がないと判断する試行回数（たぶん）。デフォルトでは2回。
#Timeout         2
#---プラグインの読み込みを実施するスレッド数。デフォルトは5。
#---プラグインを6以上利用する場合は変更した方がよいことも。
#ReadThreads     5
#---取得データをプラグインに書き込むスレッド数。デフォルトは5。
#---プラグインを6以上利用する場合は変更した方がよいことも。
#WriteThreads    5

# Limit the size of the write queue. Default is no limit. Setting up a limit is
# recommended for servers handling a high volume of traffic.
#---書き込みキューサイズ。デフォルトでは無制限。
#---'LimitHigh'よりキューサイズが大きければ、基本的には新規受付は全て破棄。
#---'LimitLow'よりキューサイズが小さければ、基本的には新規受付は全て許容。
#---'LimitHigh'と'LimitLow'の間なら、新規受付を残許容量に応じて許容。
#WriteQueueLimitHigh 1000000
#WriteQueueLimitLow   800000

##############################################################################
# Logging                                                                    #
#----------------------------------------------------------------------------#
# Plugins which provide logging functions should be loaded first, so log     #
# messages generated when loading or configuring other plugins can be        #
# accessed.                                                                  #
##############################################################################

#---ロギングに関するプラグイン

#---Syslog
#LoadPlugin syslog
#---ログファイル or 標準(エラー)出力
LoadPlugin logfile
#---ログのJSONフォーマットとしてイベント出力
#LoadPlugin log_logstash

<Plugin logfile>
       #---ログレベル（debug|info|notice|warning|err）
       LogLevel info
       #---出力先(ファイル名|stdout|stderr)
       File "/var/log/collectd.log"
       #---タイムラインを記述するか(true|false)
       Timestamp true
       #---ログレベルを記述するか(true|false)
       PrintSeverity true
</Plugin>

#<Plugin log_logstash>
#       #---ログレベル（debug|info|notice|warning|err）
#       LogLevel info
#       #---出力先(ファイル名|stdout|stderr)
#       File "/var/log/collectd.json.log"
#</Plugin>

#<Plugin syslog>
#       #---ログレベル（debug|info|notice|warning|err）
#       LogLevel info
#       #---[追記] Syslogへの通知レベル(OKAY|WARNING|FAILURE)
#       NotifyLevel OKAY
#</Plugin>

##############################################################################
# LoadPlugin section                                                         #
#----------------------------------------------------------------------------#
# Lines beginning with a single `#' belong to plugins which have been built  #
# but are disabled by default.                                               #
#                                                                            #
# Lines begnning with `##' belong to plugins which have not been built due   #
# to missing dependencies or because they have been deactivated explicitly.  #
##############################################################################

#---個人的に使いそうなもののみコメントを記述。時間のあるときに徐々に記述を追加予定
#---【重要】は個人的に有用だと思うプラグイン。なので気にしないでください。

# ---取得値のグルーピングに利用。
#LoadPlugin aggregation 
# ---他のcollectdやAMQPメッセージを利用する他のアプリケーションとの連携に利用。
#LoadPlugin amqp
# ---【重要】httpdサーバ情報を取得。(Byte/s、Requests/s、Processes)
LoadPlugin apache
# ---UPS情報を取得。
#LoadPlugin apcups
## ---アップルPCのハードウェア情報を取得。
##LoadPlugin apple_sensors
## ---Aquaero5のハードウェア情報を取得。
##LoadPlugin aquaero
# ---ゲームサーバの情報を取得。
#LoadPlugin ascent
# ---気圧情報を取得。
##LoadPlugin barometer
#---充電池情報を取得。
#LoadPlugin battery
#---BIND情報を取得。
#LoadPlugin bind
#---ceph情報を取得。
#LoadPlugin ceph
#---cgroupにおけるCPU時間情報を取得。
#LoadPlugin cgroups
#---【重要】コネクション情報を取得。(Entities)
LoadPlugin conntrack
#---【重要】コンテキストスイッチ情報を取得。(回数)
LoadPlugin contextswitch
#---【重要】CPU時間情報を取得。(Jiffies)
LoadPlugin cpu
#---CPU周波数情報(主にモバイル)を取得。
#LoadPlugin cpufreq
#---【重要】CSV出力
#LoadPlugin csv
#---HTTP GET(またはftpやssh)のパフォーマンス測定。
#LoadPlugin curl
#---JSONデータのクエリパフォーマンス測定。
#LoadPlugin curl_json
#---XMLデータのクエリパフォーマンス測定。
#LoadPlugin curl_xml
#---【重要】DB(MySQLやSQLite3など)へのSQL接続。
#LoadPlugin dbi
#---ファイルシステム情報の取得。
#LoadPlugin df
#---【重要】ディスク情報の取得。(Read/Write、Merged operatons、Byte/s、Operations/s、Average time/operation、Time、Requests)
LoadPlugin disk
#---DNS情報の取得。
#LoadPlugin dns
#---?
#LoadPlugin drbd
#---メール送受信情報を取得。
#LoadPlugin email
#---エントロピー情報を取得。
#LoadPlugin entropy
#---【重要】NIC情報を取得。
#LoadPlugin ethstat
#---【重要】スクリプト実行。
#LoadPlugin exec
#---【重要】ファイルハンドラ情報を取得。
LoadPlugin fhcount
#---ファイル数を取得。
#LoadPlugin filecount
#---【重要】ファイルシステムキャッシュ情報を取得。
LoadPlugin fscache
#---gmondと連携してデータを取得。
#LoadPlugin gmond
#---【重要】SMARTと連携してディスク温度情報を取得。(smartmontoolsが必要)
#LoadPlugin hddtemp
#---【重要】トラフィック情報を取得。(b/s、packets/s、errors/s)
LoadPlugin interface
#---?
#LoadPlugin ipc
#---【重要】IPMI経由でハードウェアセンサ情報を取得。(openipmiが必要)
#LoadPlugin ipmi
#---【重要】ファイアーウォール情報を取得。
#LoadPlugin iptables
#---IPVS(トランスポートレイヤのLB)情報を取得。
#LoadPlugin ipvs
#---【重要】割り込み処理数の取得。
#LoadPlugin irq
#---Javaアプリ実行。
#LoadPlugin java
#---【重要】システム負荷平均値を取得。
LoadPlugin load
#---IBM POWER CPU技術による論理パーティション情報を取得。
##LoadPlugin lpar
#---論理ボリューム/グループ情報を取得。
#LoadPlugin lvm
#---theros wireless LAN chipsets情報を取得。
#LoadPlugin madwifi
#---mbmonと連携してマザーボードセンサ情報を取得。
#LoadPlugin mbmon
#---【重要】ソフトウェアレイド情報を取得。
#LoadPlugin md
#---memcachedサーバに接続し、情報を取得。
##LoadPlugin memcachec
#---【重要】memcachedデーモン情報を取得。
#LoadPlugin memcached
#---【重要】物理メモリ情報を取得。
LoadPlugin memory
#---Intel Many Integrated Coreシステム情報を取得。
##LoadPlugin mic
#---Modbus情報を取得。
#LoadPlugin modbus
#---Multimeter情報を取得。
#LoadPlugin multimeter
#---【重要】Mysql情報を取得。
LoadPlugin mysql
#---NetAppストレージシステム情報を取得。
##LoadPlugin netapp
#---ネットリンクソケット情報(Interfaceプラグインで取得できる情報+α)を取得。
#LoadPlugin netlink
#---他collectdとの通信。
#LoadPlugin network
#---ネットワークファイルシステム情報を取得。
#LoadPlugin nfs
#---Nginx情報を取得。
#LoadPlugin nginx
#---ディスプレイ通知。
#LoadPlugin notify_desktop
#---メール通知。
#LoadPlugin notify_email
#---NTPd情報の取得。
#LoadPlugin ntpd
#---Non-Uniform Memory Access情報を取得。
#LoadPlugin numa
#---Network UPS Toolsと連携して、UPS情報を取得。
#LoadPlugin nut
#---Optimized Link State Routingデーモンと連携して、ネットワーク情報を取得。
#LoadPlugin olsrd
#---OneWire busと連携して、センサ情報を取得。
##LoadPlugin onewire
#---OpenLDAP情報を取得。
#LoadPlugin openldap
#---OpenVPN情報を取得。
#LoadPlugin openvpn
#---Oracle call interfaceからデータベース情報を取得。
##LoadPlugin oracle
#---Perfアプリ実行。
#LoadPlugin perl
#---Pinbaと連携して、PHP情報を取得。
#LoadPlugin pinba
#---【重要】pingを実行してネットワーク情報を取得。
#LoadPlugin ping
#---Postgresql情報を取得。
#LoadPlugin postgresql
#---PowerDNS情報を取得。
#LoadPlugin powerdns
#---【重要】プロセス情報を取得。
#LoadPlugin processes
#---【重要】ネットワークプロトコル情報を取得。
LoadPlugin protocols
#---Pythonアプリ実行。
#LoadPlugin python
#---【重要】Redis情報を取得。
#LoadPlugin redis
#---RouterOS情報を取得。
##LoadPlugin routeros
#---rrdtoolプラグインをベースにrrd情報を取得。
#LoadPlugin rrdcached
#---【重要】rrdを利用。
#LoadPlugin rrdtool
#---【重要】lm_sensorと連携してハードウェア情報を取得。
#LoadPlugin sensors
#---シリアルインターフェースのトラフィック情報を取得。
#LoadPlugin serial
#---オシロスコープなどのシグナル解析情報を取得。
##LoadPlugin sigrok
#---【重要】SMARTと連携して、ディスク情報を取得。(smartmomtoolsが必要)
#LoadPlugin smart
#---【重要】Net-SNMPと連携して、MIB情報を取得。(net-snmpが必要)
LoadPlugin snmp
#---StatsDと連携して、イベント情報を取得。
#LoadPlugin statsd
#---【重要】Swap情報を収集。
#LoadPlugin swap
#---テーブル構造のテキストファイルから値を取得。
#LoadPlugin table
#---ログから値を取得。
#LoadPlugin tail
#---csvファイルから値を取得。
#LoadPlugin tail_csv
#---テープ・ドライブ情報を取得。
##LoadPlugin tape
#---【重要】TCP情報を取得。
#LoadPlugin tcpconns
#---teamspeak2と連携して、通信情報を取得。
#LoadPlugin teamspeak2
#---TED(The Energy Detective)と連携して、電源情報を取得。
#LoadPlugin ted
#---ACPI温度情報を取得。
#LoadPlugin thermal
#---Tokyo Tyrantサーバ情報を取得。
##LoadPlugin tokyotyrant
#---CPU情報を取得。
#LoadPlugin turbostat
#---Unixソケット情報を取得。
#LoadPlugin unixsock
#---システム起動時間を取得。
#LoadPlugin uptime
#---ログインユーザ数を取得。
#LoadPlugin users
#---UUIDを制御。
#LoadPlugin uuid
#---Vanish(HTTP Accelerator)情報を取得。
#LoadPlugin varnish
#---【重要】libvirtと連携して、仮想マシン情報を取得。
#LoadPlugin virt
#---【重要】仮想メモリ情報を取得。
#LoadPlugin vmem
#---Linux-Vserverと連携して、仮想サーバ情報を取得。
#LoadPlugin vserver
#---無線LAN情報を取得。
#LoadPlugin wireless
#---Carbonにデータを格納し、Graphiteによる図示。
#LoadPlugin write_graphite
#---収集データをHTTP PUT。
#LoadPlugin write_http
#---収集データをkafkaに送信。
##LoadPlugin write_kafka
#---？
#LoadPlugin write_log
#---収集データをMongoDBに格納。
##LoadPlugin write_mongodb
#---収集データをRedisに格納。
#LoadPlugin write_redis
#---収集データをRiemannに格納。
#LoadPlugin write_riemann
#---収集データをSensu Coreに送信。
#LoadPlugin write_sensu
#---収集データをOpenTSDBに格納
#LoadPlugin write_tsdb
#---XMMS Music Player情報を取得。
##LoadPlugin xmms
#---ZFS情報を取得。
##LoadPlugin zfs_arc
#---Zookeeperサーバ情報を取得。
#LoadPlugin zookeeper

##############################################################################
# Plugin configuration                                                       #
#----------------------------------------------------------------------------#
# In this section configuration stubs for each plugin are provided. A desc-  #
# ription of those options is available in the collectd.conf(5) manual page. #
##############################################################################

#<Plugin aggregation>
#  <Aggregation>
#    #Host "unspecified"
#    Plugin "cpu"
#    #PluginInstance "unspecified"
#    Type "cpu"
#    #TypeInstance "unspecified"
#
#    GroupBy "Host"
#    GroupBy "TypeInstance"
#
#    CalculateNum false
#    CalculateSum false
#    CalculateAverage true
#    CalculateMinimum false
#    CalculateMaximum false
#    CalculateStddev false
#  </Aggregation>
#</Plugin>

#<Plugin amqp>
#  <Publish "name">
#    Host "localhost"
#    Port "5672"
#    VHost "/"
#    User "guest"
#    Password "guest"
#    Exchange "amq.fanout"
#    RoutingKey "collectd"
#    Persistent false
#    StoreRates false
#    ConnectionRetryDelay 0
#  </Publish>
#</Plugin>


<Plugin apache>
  # インスタンス名
  <Instance "local">
    # mod_status出力先URL
    URL "http://localhost/status?auto"
#    # 認証が必要な場合のユーザ名
#    User "www-user"
#    # 認証が必要な場合のパスワード
#    Password "secret"
#    # CAファイルの場所
#    CACert "/etc/ssl/ca.crt"
  </Instance>
</Plugin>

#<Plugin apcups>
#       @@@ ホスト名。デフォルトはlocalhost。
#       Host "localhost"
#       @@@ tcpポート番号。デフォルトは3551。
#       Port "3551"
#       @@@ 残時間を秒で通知するか。デフォルトはfalseで分。
#       ReportSeconds true
#</Plugin>

#<Plugin aquaero>
#       Device ""
#</Plugin>

#<Plugin ascent>
#       URL "http://localhost/ascent/status/"
#       User "www-user"
#       Password "secret"
#       CACert "/etc/ssl/ca.crt"
#</Plugin>

#<Plugin "barometer">
#   Device            "/dev/i2c-0";
#   Oversampling      512
#   PressureOffset    0.0
#   TemperatureOffset 0.0
#   Normalization     2
#   Altitude          238.0
#   TemperatureSensor "myserver/onewire-F10FCA000800/temperature"
#</Plugin>

#<Plugin "battery">
#  ValuesPercentage false
#  ReportDegraded false
#</Plugin>

#<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 "127.in-addr.arpa/IN"
#  </View>
#</Plugin>

#<Plugin ceph>
#  LongRunAvgLatency false
#  ConvertSpecialMetricTypes true
#  <Daemon "osd.0">
#    SocketPath "/var/run/ceph/ceph-osd.0.asok"
#  </Daemon>
#  <Daemon "osd.1">
#    SocketPath "/var/run/ceph/ceph-osd.1.asok"
#  </Daemon>
#  <Daemon "mon.a">
#    SocketPath "/var/run/ceph/ceph-mon.ceph1.asok"
#  </Daemon>
#  <Daemon "mds.a">
#    SocketPath "/var/run/ceph/ceph-mds.ceph1.asok"
#  </Daemon>
#</Plugin>

#<Plugin cgroups>
#  CGroup "libvirt"
#  IgnoreSelected false
#</Plugin>

<Plugin cpu>
  #---trueならステート毎、falseならステートの和を出力
  ReportByCpu true
  #---trueなコア毎、falseなら合計を出力
  ReportByState true
  #--- 上記2オプションがtrueの場合に有効。trueなら%、falseならjiffies
  ValuesPercentage false
</Plugin>

<Plugin csv>
       #---出力ディレクトリ。デフォルトはBaseDir
       DataDir "/var/lib/collectd/csv"
       #---trueならcounterをrateに変換
       StoreRates false
</Plugin>

#<Plugin curl>
#  <Page "stock_quotes">
#    URL "http://finance.google.com/finance?q=NYSE%3AAMD"
#    User "foo"
#    Password "bar"
#    Digest false
#    VerifyPeer true
#    VerifyHost true
#    CACert "/path/to/ca.crt"
#    Header "X-Custom-Header: foobar"
#    Post "foo=bar"
#
#    MeasureResponseTime false
#    MeasureResponseCode false
#    <Match>
#      Regex "<span +class=\"pr\"[^>]*> *([0-9]*\\.[0-9]+) *</span>"
#      DSType "GaugeAverage"
#      Type "stock_value"
#      Instance "AMD"
#    </Match>
#  </Page>
#</Plugin>

#<Plugin curl_json>
#  <URL "http://localhost:80/test.json">
#    Instance "test_http_json"
#    <Key "testArray/0">
#      Type "gauge"
#      # Expect: 1
#    </Key>
#    <Key "testArray/1">
#      Type "gauge"
#      # Expect: 2
#    </Key>
#    <Key "testArrayInbetween/0/blarg">
#      Type "gauge"
#      # Expect: 3
#    </Key>
#    <Key "testArrayInbetween/1/blub">
#      Type "gauge"
#      # Expect: 4
#    </Key>
#    <Key "testDirectHit">
#      Type "gauge"
#      # Expect: 5
#    </Key>
#    <Key "testSubLevelHit/oneMoreLevel">
#      Type "gauge"
#      # Expect: 6
#    </Key>
#  </URL>
# put this as test.json on your webserver, the above config demonstraces
# how to match them.
# {
#  "testArray":[1,2],
#  "testArrayInbetween":[{"blarg":3},{"blub":4}],
#  "testDirectHit":5,
#  "testSubLevelHit":{"oneMoreLevel":6}
# }
## See: http://wiki.apache.org/couchdb/Runtime_Statistics
#  <URL "http://localhost:5984/_stats">
#    Instance "httpd"
#    <Key "httpd/requests/count">
#      Type "http_requests"
#    </Key>
#
#    <Key "httpd_request_methods/*/count">
#      Type "http_request_methods"
#    </Key>
#
#    <Key "httpd_status_codes/*/count">
#      Type "http_response_codes"
#    </Key>
#  </URL>
## Database status metrics:
#  <URL "http://localhost:5984/_all_dbs">
#    Instance "dbs"
#    <Key "*/doc_count">
#      Type "gauge"
#    </Key>
#    <Key "*/doc_del_count">
#      Type "counter"
#    </Key>
#    <Key "*/disk_size">
#      Type "bytes"
#    </Key>
#  </URL>
#</Plugin>

#<Plugin curl_xml>
#  <URL "http://localhost/stats.xml">
#    Host "my_host"
#    Instance "some_instance"
#    User "collectd"
#    Password "thaiNg0I"
#    Digest false
#    VerifyPeer true
#    VerifyHost true
#    CACert "/path/to/ca.crt"
#    Header "X-Custom-Header: foobar"
#    Post "foo=bar"
#
#    <XPath "table[@id=\"magic_level\"]/tr">
#      Type "magic_level"
#      #InstancePrefix "prefix-"
#      InstanceFrom "td[1]"
#      ValuesFrom "td[2]/span[@class=\"level\"]"
#    </XPath>
#  </URL>
#</Plugin>

#<Plugin dbi>
#       <Query "num_of_customers">
#               Statement "SELECT 'customers' AS c_key, COUNT(*) AS c_value FROM customers_tbl"
#               <Result>
#                       Type "gauge"
#                       InstancesFrom "c_key"
#                       ValuesFrom "c_value"
#               </Result>
#       </Query>
#       <Database "customers_db">
#               Driver "mysql"
#               DriverOption "host" "localhost"
#               DriverOption "username" "collectd"
#               DriverOption "password" "AeXohy0O"
#               DriverOption "dbname" "custdb0"
#               #SelectDB "custdb0"
#               Query "num_of_customers"
#               #Query "..."
#               #Host "..."
#       </Database>
#</Plugin>

#<Plugin df>
#       Device "/dev/hda1"
#       Device "192.168.0.2:/mnt/nfs"
#       MountPoint "/home"
#       FSType "ext3"
#       IgnoreSelected false
#       ReportByDevice false
#       ReportInodes false
#       ValuesAbsolute true
#       ValuesPercentage false
#</Plugin>

<Plugin disk>
       #---ディスク名
       Disk "/^[hs]d[a-f][0-9]?$/"
       #---trueならDiskオプションにマッチしたディスクを除く
       IgnoreSelected false
       #---BSD名を使用するかどうか
       UseBSDName false
       #---ディスクインスタンス名をudevにより上書き
       UdevNameAttr "DEVNAME"
</Plugin>

#<Plugin dns>
#       Interface "eth0"
#       IgnoreSource "192.168.0.1"
#       SelectNumericQueryTypes true
#</Plugin>

#<Plugin email>
#       SocketFile "/var/run/collectd-email"
#       SocketGroup "collectd"
#       SocketPerms "0770"
#       MaxConns 5
#</Plugin>

<Plugin ethstat>
#       #---インターフェース名
#       Interface "eth0"
#       #---Name Type (TypeInstance)の明示的指定
#       Map "rx_csum_offload_errors" "if_rx_errors" "checksum_offload"
#       Map "multicast" "if_multicast"
       #---trueならば上記Mapオプションで指定されたデータのみ収集
       MappedOnly false
</Plugin>

#<Plugin exec>
#       # user:group 実行スクリプト 引数 引数...
#       Exec "user:group" "/path/to/exec"
#       NotificationExec "user:group" "/path/to/exec"
#</Plugin>

<Plugin fhcount>
       #---ファイルハンドラ利用状況を絶対値で取得。
       ValuesAbsolute true
       #---ファイルハンドラ利用状況を％で取得。
       ValuesPercentage false
</Plugin>

#<Plugin filecount>
#       <Directory "/path/to/dir">
#               Instance "foodir"
#               Name "*.conf"
#               MTime "-5m"
#               Size "+10k"
#               Recursive true
#               IncludeHidden false
#       </Directory>
#</Plugin>

#<Plugin gmond>
#  MCReceiveFrom "239.2.11.71" "8649"
#  <Metric "swap_total">
#    Type "swap"
#    TypeInstance "total"
#    DataSource "value"
#  </Metric>
#  <Metric "swap_free">
#    Type "swap"
#    TypeInstance "free"
#    DataSource "value"
#  </Metric>
#</Plugin>

<Plugin hddtemp>
  #---ホスト
  Host "127.0.0.1"
  #---TCPポート
  Port "7634"
</Plugin>

<Plugin interface>
       #---インターフェース名
       Interface "lo"
       #---trueなら上記インターフェースを収集しない
       IgnoreSelected true
</Plugin>

<Plugin ipmi>
#       #---取得センサー名
#       Sensor "some_sensor"
#       Sensor "another_one"
       #---trueなら上記センサーを収集しない。
       IgnoreSelected true
       #---初期化後にセンサーが認識されたら反映
       NotifySensorAdd false
       #---センサーが認識されなくなったら反映
       NotifySensorRemove 
       #---冗長系(電源)が片系になったら通知
       NotifySensorNotPresent false
</Plugin>

#<Plugin iptables>
#       Chain table chain
#       Chain6 table chain
#</Plugin>

#<Plugin irq>
#       #---IRQ番号
#       Irq 7
#       Irq 8
#       Irq 9
#       #---trueなら上記IRQ以外を取得。
#       IgnoreSelected true
#</Plugin>

#<Plugin java>
#       JVMArg "-verbose:jni"
#       JVMArg "-Djava.class.path=/usr/share/collectd/java/collectd-api.jar"
#
#       LoadPlugin "org.collectd.java.Foobar"
#       <Plugin "org.collectd.java.Foobar">
#         # To be parsed by the plugin
#       </Plugin>
#</Plugin>

<Plugin load>
       #---trueであればコア毎に1/5/15min平均値を出力
        ReportRelative true
</Plugin>

#<Plugin lpar>
#       CpuPoolStats   false
#       ReportBySerial false
#</Plugin>

#<Plugin madwifi>
#       Interface "wlan0"
#       IgnoreSelected false
#       Source "SysFS"
#       WatchSet "None"
#       WatchAdd "node_octets"
#       WatchAdd "node_rssi"
#       WatchAdd "is_rx_acl"
#       WatchAdd "is_scan_active"
#</Plugin>

#<Plugin mbmon>
#       Host "127.0.0.1"
#       Port "411"
#</Plugin>

#<Plugin md>
#       #---デバイス名
#       Device "/dev/md0"
#       #---trueなら上記デバイス以外の情報を取得。
#       IgnoreSelected false
#</Plugin>

#<Plugin memcachec>
#       <Page "plugin_instance">
#               Server "localhost"
#               Key "page_key"
#               <Match>
#                       Regex "(\\d+) bytes sent"
#                       ExcludeRegex "<lines to be excluded>"
#                       DSType CounterAdd
#                       Type "ipt_octets"
#                       Instance "type_instance"
#               </Match>
#       </Page>
#</Plugin>

<Plugin memcached>
       #---インスタンス名
       <Instance "local">
               #---ホスト
               Host "127.0.0.1"
               #---TCPポート
               Port "11211"
       </Instance>
</Plugin>

<Plugin memory>
       #---絶対値表示
       ValuesAbsolute true
       #---%表示
       ValuesPercentage false
</Plugin>

#<Plugin modbus>
#       <Data "data_name">
#               RegisterBase 1234
#               RegisterCmd ReadHolding
#               RegisterType float
#               Type gauge
#               Instance "..."
#       </Data>
#
#       <Host "name">
#               Address "addr"
#               Port "1234"
#               Interval 60
#
#               <Slave 1>
#                       Instance "foobar" # optional
#                       Collect "data_name"
#               </Slave>
#       </Host>
#</Plugin>

<Plugin mysql>
       #---データベースコネクション名
       <Database mysql>
               #---ホスト
               Host "localhost"
               #---ユーザ名
               User "root"
               #---パスワード
               Password "password"
#               #---データベース名。明示する必要がなければデフォルト(未記述)推奨。
#               Database "db_name"
#               #---Masterかどうか。デフォルトはfalse。
#               MasterStats true
               #---タイムアウト秒
               ConnectTimeout 10
#               #---InnoDBからの情報も収集。デフォルトはfalse。
#               InnodbStats true
       </Database>
#
#       <Database db_name2>
#               #---エイリアス
#               Alias "squeeze"
#               #---ホスト
#               Host "localhost"
#               #---ソケット名
#               Socket "/var/run/mysql/mysqld.sock"
#               #---Slaveかどうか。デフォルトはfalse。
#               SlaveStats true
#               #---Slaveに不具合があれば通知するかどうか。デフォルトはfalse。
#               SlaveNotifications true
#       </Database>
</Plugin>

#<Plugin netapp>
#       <Host "netapp1.example.com">
#               Protocol      "https"
#               Address       "10.0.0.1"
#               Port          443
#               User          "username"
#               Password      "aef4Aebe"
#               Interval      30
#
#               <WAFL>
#                       Interval 30
#                       GetNameCache   true
#                       GetDirCache    true
#                       GetBufferCache true
#                       GetInodeCache  true
#               </WAFL>
#
#               <Disks>
#                       Interval 30
#                       GetBusy true
#               </Disks>
#
#               <VolumePerf>
#
#               <VolumeUsage>
#                       Interval 30
#                       GetCapacity "vol0"
#                       GetCapacity "vol1"
#                       IgnoreSelectedCapacity false
#                       GetSnapshot "vol1"
#                       GetSnapshot "vol3"
#                       IgnoreSelectedSnapshot false
#               </VolumeUsage>
#
#               <System>
#                       Interval 30
#                       GetCPULoad     true
#                       GetInterfaces  true
#                       GetDiskOps     true
#                       GetDiskIO      true
#               </System>
#       </Host>
#</Plugin>

#<Plugin netlink>
#       Interface "All"
#       VerboseInterface "All"
#       QDisc "eth0" "pfifo_fast-1:0"
#       Class "ppp0" "htb-1:10"
#       Filter "ppp0" "u32-1:0"
#       IgnoreSelected false
#</Plugin>

#<Plugin network>
#       # client setup:
#       Server "ff18::efc0:4a42" "25826"
#       <Server "239.192.74.66" "25826">
#               SecurityLevel Encrypt
#               Username "user"
#               Password "secret"
#               Interface "eth0"
#               ResolveInterval 14400
#       </Server>
#       TimeToLive 128
#
#       # server setup:
#       Listen "ff18::efc0:4a42" "25826"
#       <Listen "239.192.74.66" "25826">
#               SecurityLevel Sign
#               AuthFile "/etc/collectd/passwd"
#               Interface "eth0"
#       </Listen>
#       MaxPacketSize 1452
#
#       # proxy setup (client and server as above):
#       Forward true
#
#       # statistics about the network plugin itself
#       ReportStats false
#
#       # "garbage collection"
#       CacheFlush 1800
#</Plugin>

#<Plugin nginx>
#       URL "http://localhost/status?auto"
#       User "www-user"
#       Password "secret"
#       CACert "/etc/ssl/ca.crt"
#</Plugin>

#<Plugin notify_desktop>
#       OkayTimeout 1000
#       WarningTimeout 5000
#       FailureTimeout 0
#</Plugin>

#<Plugin notify_email>
#       SMTPServer "localhost"
#       SMTPPort 25
#       SMTPUser "my-username"
#       SMTPPassword "my-password"
#       From "collectd@main0server.com"
#       # <WARNING/FAILURE/OK> on <hostname>. beware! do not use not more than two %s in this string!!!
#       Subject "Aaaaaa!! %s on %s!!!!!"
#       Recipient "email1@domain1.net"
#       Recipient "email2@domain2.com"
#</Plugin>

#<Plugin ntpd>
#       Host "localhost"
#       Port 123
#       ReverseLookups false
#       IncludeUnitID true
#</Plugin>

#<Plugin nut>
#       UPS "upsname@hostname:port"
#</Plugin>

#<Plugin olsrd>
#       Host "127.0.0.1"
#       Port "2006"
#       CollectLinks "Summary"
#       CollectRoutes "Summary"
#       CollectTopology "Summary"
#</Plugin>

#<Plugin onewire>
#       Device "-s localhost:4304"
#       Sensor "F10FCA000800"
#       IgnoreSelected false
#</Plugin>

#<Plugin openldap>
#  <Instance "localhost">
#    URL "ldap://localhost:389"
#    StartTLS false
#    VerifyHost true
#    CACert "/path/to/ca.crt"
#    Timeout -1
#    Version 3
#  </Instance>
#</Plugin>

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

#<Plugin oracle>
#  <Query "out_of_stock">
#    Statement "SELECT category, COUNT(*) AS value FROM products WHERE in_stock = 0 GROUP BY category"
#    <Result>
#      Type "gauge"
#      InstancesFrom "category"
#      ValuesFrom "value"
#    </Result>
#  </Query>
#  <Database "product_information">
#    ConnectID "db01"
#    Username "oracle"
#    Password "secret"
#    Query "out_of_stock"
#  </Database>
#</Plugin>

#<Plugin perl>
#       IncludeDir "/my/include/path"
#       BaseName "Collectd::Plugins"
#       EnableDebugger ""
#       LoadPlugin Monitorus
#       LoadPlugin OpenVZ
#
#       <Plugin foo>
#               Foo "Bar"
#               Qux "Baz"
#       </Plugin>
#</Plugin>

#<Plugin pinba>
#       Address "::0"
#       Port "30002"
#       <View "name">
#               Host "host name"
#               Server "server name"
#               Script "script name"
#       </View>
#</Plugin>

#<Plugin ping>
#       #---ターゲット
#       Host "host.foo.bar"
#       #---送信間隔秒
#       Interval 1.0
#       #---タイムアウト秒
#       Timeout 0.9
#       #---TTL
#       TTL 255
#       #---
#       SourceAddress "1.2.3.4"
#       #---送信NIC
#       Device "eth0"
#       #---名前解決を試行するタイミング
#       MaxMissed -1
#</Plugin>

#<Plugin postgresql>
#       <Query magic>
#               Statement "SELECT magic FROM wizard WHERE host = $1;"
#               Param hostname
#               <Result>
#                       Type gauge
#                       InstancePrefix "magic"
#                       ValuesFrom magic
#               </Result>
#       </Query>
#       <Query rt36_tickets>
#               Statement "SELECT COUNT(type) AS count, type \
#                                 FROM (SELECT CASE \
#                                              WHEN resolved = 'epoch' THEN 'open' \
#                                              ELSE 'resolved' END AS type \
#                                              FROM tickets) type \
#                                 GROUP BY type;"
#               <Result>
#                       Type counter
#                       InstancePrefix "rt36_tickets"
#                       InstancesFrom "type"
#                       ValuesFrom "count"
#               </Result>
#       </Query>
#       <Writer sqlstore>
#               # See contrib/postgresql/collectd_insert.sql for details
#               Statement "SELECT collectd_insert($1, $2, $3, $4, $5, $6, $7, $8, $9);"
#               StoreRates true
#       </Writer>
#       <Database foo>
#               Host "hostname"
#               Port "5432"
#               User "username"
#               Password "secret"
#               SSLMode "prefer"
#               KRBSrvName "kerberos_service_name"
#               Query magic
#       </Database>
#       <Database bar>
#               Interval 60
#               Service "service_name"
#               Query backend # predefined
#               Query rt36_tickets
#       </Database>
#       <Database qux>
#               Service "collectd_store"
#               Writer sqlstore
#               # see collectd.conf(5) for details
#               CommitInterval 30
#       </Database>
#</Plugin>

#<Plugin powerdns>
#  <Server "server_name">
#    Collect "latency"
#    Collect "udp-answers" "udp-queries"
#    Socket "/var/run/pdns.controlsocket"
#  </Server>
#  <Recursor "recursor_name">
#    Collect "questions"
#    Collect "cache-hits" "cache-misses"
#    Socket "/var/run/pdns_recursor.controlsocket"
#  </Recursor>
#  LocalSocket "/opt/collectd/var/run/collectd-powerdns"
#</Plugin>

#<Plugin processes>
#       #---プロセス名を指定し、より詳細な情報を取得。
#       Process "name"
#       #---正規表現に該当するプロセスの情報を取得。
#       ProcessMatch "name regex"
#</Plugin>

#<Plugin protocols>
#       #---対応プロトコル。
#       Value "/^Tcp:/"
#       #---trueなら上記プロトコル以外を取得。
#       IgnoreSelected false
#</Plugin>

#<Plugin python>
#       ModulePath "/path/to/your/python/modules"
#       LogTraces true
#       Interactive true
#       Import "spam"
#
#       <Module spam>
#               spam "wonderful" "lovely"
#       </Module>
#</Plugin>

#<Plugin redis>
#   #---ノード名
#   <Node example>
#      #---ホスト
#      Host "redis.example.com"
#      #---TCPポート番号
#      Port "6379"
#      #---パスワード
#      Password "password"
#      #---タイムアウト秒
#      Timeout 2000
#      #---クエリ
#      <Query "LLEN myqueue">
#        #---タイプ
#        Type "queue_length"
#        #---インスタンス名
#        Instance "myqueue"
#      <Query>
#   </Node>
#</Plugin>

#<Plugin routeros>
#       <Router>
#               Host "router.example.com"
#               Port "8728"
#               User "admin"
#               Password "dozaiTh4"
#               CollectInterface true
#               CollectRegistrationTable true
#               CollectCPULoad true
#               CollectMemory true
#               CollectDF true
#               CollectDisk true
#       </Router>
#</Plugin>

#<Plugin rrdcached>
#       #---rrdデーモンアドレス
#       DaemonAddress "unix:/tmp/rrdcached.sock"
#       #---出力先
#       DataDir "/var/lib/collectd/rrd"
#       #---ファイルを生成するかどうか
#       CreateFiles true
#       #---rrdを非同期動作させるかどうか
#       CreateFilesAsync false
#       #---rrd情報を取得するかどうか
#       CollectStatistics false 
#       # PDPs/CDP = RRATimespan / (StepSize(Interval) * RRARows)
#       # 下記例は180日分のデータを保持
#       #--- レコード数
#       RRARows 1555200
#       #---データ保存する時間
#       RRATimespan 15552000
#</Plugin>

#<Plugin rrdtool>
#       #---出力先ディレクトリ
#       DataDir "/root/collectd/rrd"
#       #---rrdを非同期動作させるかどうか
#       CreateFilesAsync false
#       #---キャッシュ利用。タイムアウト秒
#       CacheTimeout 120
#       #---キャッシュ利用。フラッシュ秒
#       CacheFlush   900
#       #---書き込み時間
#       WritesPerSecond 50
#       # PDPs/CDP = RRATimespan / (StepSize(Interval) * RRARows)
#       # 下記例は30日分のデータを保持
#       #--- レコード数
#       RRARows 259200
#       #---データ保存する時間
#       RRATimespan 2592000
#</Plugin>

#<Plugin sensors>
#       #---設定ファイル
#       SensorConfigFile "/etc/sensors.conf"
#       #---センサー名
#       Sensor "it8712-isa-0290/temperature-temp1"
#       Sensor "it8712-isa-0290/fanspeed-fan3"
#       Sensor "it8712-isa-0290/voltage-in8"
#       #---trueなら上記センサー以外の情報を取得
#       IgnoreSelected false
#</Plugin>

#<Plugin sigrok>
#  LogLevel 3
#  <Device "AC Voltage">
#    Driver "fluke-dmm"
#    MinimumInterval 10
#    Conn "/dev/ttyUSB2"
#  </Device>
#  <Device "Sound Level">
#    Driver "cem-dt-885x"
#    Conn "/dev/ttyUSB1"
#  </Device>
#</Plugin>

#<Plugin smart>
#  #---ディスク名
#  Disk "/^[hs]d[a-f][0-9]?$/"
#  #---trueなら上記ディスク以外の情報を取得。
#  IgnoreSelected false
#</Plugin>

#<Plugin snmp>
#   #---データブロック
#   <Data "powerplus_voltge_input">
#       #---データ型
#       Type "voltage"
#       #---true:SNMPGetNext、false:SNMPGet(.0)
#       Table false
#       #---Tableがtrueなら、InstanceはSNMPのプレフィックスとして利用。
#       #---TableがtrueかつInstanceが未記述なら、SUBIDがInstanceとして利用。
#       #---Tableがfalseなら、Instanceはそのままvalue-listがコピーされる。つまり空。
#       Instance "input_line1"
#       #---OIDs
#       Values "SNMPv2-SMI::enterprises.6050.5.4.1.1.2.1"
#   </Data>
#//////////////////////////////////////////////////////////////////
# 個人的設定
   #--- CPU ---
   <Data "hrProcessorLoad">
       Type "hrProcessorLoad"
       Table true
       Values "1.3.6.1.2.1.25.3.3.1.2"
   </Data>
   <Data "ssCpuRawUser">
       Type "ssCpuRawUser"
       Table false
       Values "1.3.6.1.4.1.2021.11.50.0"
   </Data>
   <Data "ssCpuRawNice">
       Type "ssCpuRawNice"
       Table false
       Values "1.3.6.1.4.1.2021.11.51.0"
   </Data>
   <Data "ssCpuRawSystem">
       Type "ssCpuRawSystem"
       Table false
       Values "1.3.6.1.4.1.2021.11.52.0"
   </Data>
   <Data "ssCpuRawIdle">
       Type "ssCpuRawIdle"
       Table false
       Values "1.3.6.1.4.1.2021.11.53.0"
   </Data>
   <Data "ssCpuRawWait">
       Type "ssCpuRawWait"
       Table false
       Values "1.3.6.1.4.1.2021.11.54.0"
   </Data>
   <Data "ssCpuRawKernel">
       Type "ssCpuRawKernel"
       Table false
       Values "1.3.6.1.4.1.2021.11.55.0"
   </Data>
   <Data "ssCpuRawInterrupt">
       Type "ssCpuRawInterrupt"
       Table false
       Values "1.3.6.1.4.1.2021.11.56.0"
   </Data>
   <Data "ssRawInterrupts">
       Type "ssRawInterrupts"
       Table false
       Values "1.3.6.1.4.1.2021.11.59.0"
   </Data>
   <Data "ssRawContexts">
       Type "ssRawContexts"
       Table false
       Values "1.3.6.1.4.1.2021.11.60.0"
   </Data>
   <Data "ssCpuRawSoftIRQ">
       Type "ssCpuRawSoftIRQ"
       Table false
       Values "1.3.6.1.4.1.2021.11.61.0"
   </Data>

   #--- Memory ---
   <Data "memAvailSwap">
       Type "memAvailSwap"
       Table false
       Values "1.3.6.1.4.1.2021.4.4.0"
   </Data>
   <Data "memAvailReal">
       Type "memAvailReal"
       Table false
       Values "1.3.6.1.4.1.2021.4.6.0"
   </Data>
   <Data "memTotalFree">
       Type "memTotalFree"
       Table false
       Values "1.3.6.1.4.1.2021.4.11.0"
   </Data>
   <Data "memShared">
       Type "memShared"
       Table false
       Values "1.3.6.1.4.1.2021.4.13.0"
   </Data>
   <Data "memBuffer">
       Type "memBuffer"
       Table false
       Values "1.3.6.1.4.1.2021.4.14.0"
   </Data>
   <Data "memCached">
       Type "memCached"
       Table false
       Values "1.3.6.1.4.1.2021.4.15.0"
   </Data>

   #--- Disk ---
   <Data "ssSwapIn">
       Type "ssSwapIn"
       Table false
       Values "1.3.6.1.4.1.2021.11.3.0"
   </Data>
   <Data "ssSwapOut">
       Type "ssSwapOut"
       Table false
       Values "1.3.6.1.4.1.2021.11.4.0"
   </Data>
   <Data "ssIORawSent">
       Type "ssIORawSent"
       Table false
       Values "1.3.6.1.4.1.2021.11.57.0"
   </Data>
   <Data "ssIORawReceived">
       Type "ssIORawReceived"
       Table false
       Values "1.3.6.1.4.1.2021.11.58.0"
   </Data>
   <Data "ssRawSwapIn">
       Type "ssRawSwapIn"
       Table false
       Values "1.3.6.1.4.1.2021.11.62.0"
   </Data>
   <Data "ssRawSwapOut">
       Type "ssRawSwapOut"
       Table false
       Values "1.3.6.1.4.1.2021.11.63.0"
   </Data>
   <Data "diskIONRead">
       Type "diskIONRead"
       Table true
       Instance "1.3.6.1.4.1.2021.13.15.1.1.2"
       Values "1.3.6.1.4.1.2021.13.15.1.1.3"
   </Data>
   <Data "diskIONWritten">
       Type "diskIONWritten"
       Table true
       Instance "1.3.6.1.4.1.2021.13.15.1.1.2"
       Values "1.3.6.1.4.1.2021.13.15.1.1.4"
   </Data>
   <Data "diskIOReads">
       Type "diskIOReads"
       Table true
       Instance "1.3.6.1.4.1.2021.13.15.1.1.2"
       Values "1.3.6.1.4.1.2021.13.15.1.1.5"
   </Data>
   <Data "diskIOWrites">
       Type "diskIOWrites"
       Table true
       Instance "1.3.6.1.4.1.2021.13.15.1.1.2"
       Values "1.3.6.1.4.1.2021.13.15.1.1.6"
   </Data>

   #--- Network ---
   <Data "ifHCInOctets">
       Type "ifHCInOctets"
       Table true
       Instance "1.3.6.1.2.1.2.2.1.2"
       Values "1.3.6.1.2.1.31.1.1.1.6"
   </Data>
   <Data "ifHCInUcastPkts">
       Type "ifHCInUcastPkts"
       Table true
       Instance "1.3.6.1.2.1.2.2.1.2"
       Values "1.3.6.1.2.1.31.1.1.1.7"
   </Data>
   <Data "ifHCInMulticastPkts">
       Type "ifHCInMulticastPkts"
       Table true
       Instance "1.3.6.1.2.1.2.2.1.2"
       Values "1.3.6.1.2.1.31.1.1.1.8"
   </Data>
   <Data "ifHCInBroadcastPkts">
       Type "ifHCInBroadcastPkts"
       Table true
       Instance "1.3.6.1.2.1.2.2.1.2"
       Values "1.3.6.1.2.1.31.1.1.1.9"
   </Data>
   <Data "ifHCOutOctets">
       Type "ifHCOutOctets"
       Table true
       Instance "1.3.6.1.2.1.2.2.1.2"
       Values "1.3.6.1.2.1.31.1.1.1.10"
   </Data>
   <Data "ifHCOutUcastPkts">
       Type "ifHCOutUcastPkts"
       Table true
       Instance "1.3.6.1.2.1.2.2.1.2"
       Values "1.3.6.1.2.1.31.1.1.1.11"
   </Data>
   <Data "ifHCOutMulticastPkts">
       Type "ifHCOutMulticastPkts"
       Table true
       Instance "1.3.6.1.2.1.2.2.1.2"
       Values "1.3.6.1.2.1.31.1.1.1.12"
   </Data>
   <Data "ifHCOutBroadcastPkts">
       Type "ifHCOutBroadcastPkts"
       Table true
       Instance "1.3.6.1.2.1.2.2.1.2"
       Values "1.3.6.1.2.1.31.1.1.1.13"
   </Data>
   <Data "ifInDiscards">
       Type "ifInDiscards"
       Table true
       Instance "1.3.6.1.2.1.2.2.1.2"
       Values "1.3.6.1.2.1.2.2.1.13"
   </Data>
   <Data "ifInErrors">
       Type "ifInErrors"
       Table true
       Instance "1.3.6.1.2.1.2.2.1.2"
       Values "1.3.6.1.2.1.2.2.1.14"
   </Data>
   <Data "ifOutDiscards">
       Type "ifOutDiscards"
       Table true
       Instance "1.3.6.1.2.1.2.2.1.2"
       Values "1.3.6.1.2.1.2.2.1.19"
   </Data>
   <Data "ifOutErrors">
       Type "ifOutErrors"
       Table true
       Instance "1.3.6.1.2.1.2.2.1.2"
       Values "1.3.6.1.2.1.2.2.1.20"
   </Data>

   # Host
   <Host "localhost">
       Address "localhost"
       Version 2
       Community "public"
       Collect "hrProcessorLoad" "ssCpuRawUser" "ssCpuRawNice" "ssCpuRawSystem" "ssCpuRawIdle" "ssCpuRawWait" "ssCpuRawKernel" "ssCpuRawInterrupt" "ssRawInterrupts" "ssRawContexts" "ssCpuRawSoftIRQ" "memAvailSwap" "memAvailReal" "memTotalFree" "memShared" "memBuffer" "memCached" "ssSwapIn" "ssSwapOut" "ssIORawSent" "ssIORawReceived" "ssRawSwapIn" "ssRawSwapOut" "diskIONRead" "diskIONWritten" "diskIOReads" "diskIOWrites" "ifHCInOctets" "ifHCInUcastPkts" "ifHCInMulticastPkts" "ifHCInBroadcastPkts" "ifHCOutOctets" "ifHCOutUcastPkts" "ifHCOutMulticastPkts" "ifHCOutBroadcastPkts" "ifInDiscards" "ifInErrors" "ifOutDiscards" "ifOutErrors"
       Interval 10
   </Host>

</Plugin>

#<Plugin statsd>
#  Host "::"
#  Port "8125"
#  DeleteCounters false
#  DeleteTimers   false
#  DeleteGauges   false
#  DeleteSets     false
#  TimerPercentile 90.0
#  TimerPercentile 95.0
#  TimerPercentile 99.0
#  TimerLower     false
#  TimerUpper     false
#  TimerSum       false
#  TimerCount     false
#</Plugin>

<Plugin swap>
       #---true:デバイス毎、false: 全デバイス
       ReportByDevice false
       #---Swap I/O情報
       ReportBytes true
       #---絶対値
       ValuesAbsolute true
       #---%
       ValuesPercentage false
</Plugin>

#<Plugin table>
#       <Table "/proc/slabinfo">
#               Instance "slabinfo"
#               Separator " "
#               <Result>
#                       Type gauge
#                       InstancePrefix "active_objs"
#                       InstancesFrom 0
#                       ValuesFrom 1
#               </Result>
#               <Result>
#                       Type gauge
#                       InstancePrefix "objperslab"
#                       InstancesFrom 0
#                       ValuesFrom 4
#               </Result>
#       </Table>
#</Plugin>

#<Plugin tail>
#  <File "/var/log/exim4/mainlog">
#    Instance "exim"
#    Interval 60
#    <Match>
#      Regex "S=([1-9][0-9]*)"
#      DSType "CounterAdd"
#      Type "ipt_bytes"
#      Instance "total"
#    </Match>
#    <Match>
#      Regex "\\<R=local_user\\>"
#      ExcludeRegex "\\<R=local_user\\>.*mail_spool defer"
#      DSType "CounterInc"
#      Type "counter"
#      Instance "local_user"
#    </Match>
#  </File>
#</Plugin>

#<Plugin tail_csv>
#   <Metric "dropped">
#       Type "percent"
#       Instance "dropped"
#       ValueFrom 1
#   </Metric>
#   <Metric "mbps">
#       Type "bytes"
#       Instance "wire-realtime"
#       ValueFrom 2
#   </Metric>
#   <Metric "alerts">
#       Type "alerts_per_second"
#       ValueFrom 3
#   </Metric>
#   <Metric "kpps">
#       Type "kpackets_wire_per_sec.realtime"
#       ValueFrom 4
#   </Metric>
#   <File "/var/log/snort/snort.stats">
#       Instance "snort-eth0"
#       Interval 600
#       Collect "dropped" "mbps" "alerts" "kpps"
#       TimeFrom 0
#   </File>
#</Plugin>

#<Plugin tcpconns>
#       #---true: Listning Port情報を収集、false:選択ポート情報を収集。
#       ListeningPorts false
#       #---全ポート情報
#       AllPortsSummary false
#       #---ローカルポート
#       LocalPort "25"
#       #---リモートポート
#       RemotePort "25"
#</Plugin>

#<Plugin teamspeak2>
#       Host "127.0.0.1"
#       Port "51234"
#       Server "8767"
#</Plugin>

#<Plugin ted>
#       Device "/dev/ttyUSB0"
#       Retries 0
#</Plugin>

#<Plugin thermal>
#       ForceUseProcfs false
#       Device "THRM"
#       IgnoreSelected false
#</Plugin>

#<Plugin tokyotyrant>
#       Host "localhost"
#       Port "1978"
#</Plugin>

#<Plugin turbostat>
##      None of the following option should be set manually
##      This plugin automatically detect most optimal options
##      Only set values here if:
##      - The module ask you to
##      - You want to disable the collection of some data
##      - Your (intel) CPU is not supported (yet) by the module
##      - The module generate a lot of errors 'MSR offset 0x... read failed'
##      In the last two cases, please open a bug request
#
#       TCCActivationTemp "100"
#       CoreCstates "392"
#       PackageCstates "396"
#       SystemManagementInterrupt true
#       DigitalTemperatureSensor true
#       PackageThermalManagement true
#       RunningAveragePowerLimit "7"    
#</Plugin>

#<Plugin unixsock>
#       SocketFile "/usr/var/run/collectd-unixsock"
#       SocketGroup "collectd"
#       SocketPerms "0660"
#       DeleteSocket false
#</Plugin>

#<Plugin uuid>
#       UUIDFile "/etc/uuid"
#</Plugin>

#<Plugin mic>
#   ShowCPU true
#   ShowCPUCores true
#   ShowMemory true
#   ShowTemperatures true
##  Temperature Sensors can be ignored/shown by repeated #Temperature lines, and
##  then inverted with a IgnoreSelectedTemperature.
##  Known Temperature sensors: die, devmem, fin, fout, vccp, vddg, vddq
#   Temperature vddg
#   IgnoreSelectedTemperature true
#   ShowPower true
##  Power Sensors can be ignored/shown by repeated #Power lines, and
##  then inverted with a IgnoreSelectedTemperature.
##  Known Temperature sensors: total0, total1, inst, imax, pci3, c2x3, c2x4, vccp, vddg, vddq
#   Power total1
#   IgnoreSelectedPower true
#</Plugin>

#<Plugin varnish>
#   This tag support an argument if you want to
#   monitor the local instance just use </Instance>
#   If you prefer defining another instance you can do
#   so by using <Instance "myinstance">
#   <Instance>
#      CollectBackend true
#      CollectBan false           # Varnish 3 and above
#      CollectCache true
#      CollectConnections true
#      CollectDirectorDNS false   # Varnish 3 only
#      CollectESI false
#      CollectFetch false
#      CollectHCB false
#      CollectObjects false
#      CollectPurge false         # Varnish 2 only
#      CollectSession false
#      CollectSHM true
#      CollectSMA false           # Varnish 2 only
#      CollectSMS false
#      CollectSM false            # Varnish 2 only
#      CollectStruct false
#      CollectTotals false
#      CollectUptime false        # Varnish 3 and above
#      CollectVCL false
#      CollectVSM false           # Varnish 4 only
#      CollectWorkers false
#   </Instance>
#</Plugin>

#<Plugin virt>
#       #---ハイパーバイザへの接続
#       Connection "qemu:///system"
#       #---ドメインリフレッシュ間隔
#       RefreshInterval 60
#       #---ドメイン名
#       Domain "name"
#       #---ブロックデバイス名
#       BlockDevice "name:device"
#       #---インターフェースデバイス名
#       InterfaceDevice "name:device"
#       #---trueなら上記ドメイン/デバイス以外を取得。
#       IgnoreSelected false
#       #---ゲスト識別。name/uuid/name/hostnameの組み合わせも可
#       HostnameFormat hostname name
#       #---インターフェース識別。name/address
#       InterfaceFormat name
#       #---plugin識別。name/uuid
#       PluginInstanceFormat name
#</Plugin>

#<Plugin vmem>
#       #詳細情報を取得するか。
#       Verbose false
#</Plugin>

#<Plugin write_graphite>
#  <Node "example">
#    Host "localhost"
#    Port "2003"
#    Protocol "tcp"
#    LogSendErrors true
#    Prefix "collectd"
#    Postfix "collectd"
#    StoreRates true
#    AlwaysAppendDS false
#    EscapeCharacter "_"
#  </Node>
#</Plugin>

#<Plugin write_http>
#       <Node "example">
#               URL "http://example.com/collectd-post"
#               User "collectd"
#               Password "weCh3ik0"
#               VerifyPeer true
#               VerifyHost true
#               CACert "/etc/ssl/ca.crt"
#               CAPath "/etc/ssl/certs/"
#               ClientKey "/etc/ssl/client.pem"
#               ClientCert "/etc/ssl/client.crt"
#               ClientKeyPass "secret"
#               SSLVersion "TLSv1"
#               Format "Command"
#               StoreRates false
#               BufferSize 4096
#               LowSpeedLimit 0
#               Timeout 0
#       </Node>
#</Plugin>

#<Plugin write_kafka>
#  Property "metadata.broker.list" "localhost:9092"
#  <Topic "collectd">
#    Format JSON
#  </Topic>
#</Plugin>

#<Plugin write_mongodb>
#       <Node "example">
#               Host "localhost"
#               Port "27017"
#               Timeout 1000
#               StoreRates false
#               Database "auth_db"
#               User "auth_user"
#               Password "auth_passwd"
#       </Node>
#</Plugin>

#<Plugin write_redis>
#       <Node "example">
#               Host "localhost"
#               Port "6379"
#               Timeout 1000
#       </Node>
#</Plugin>

#<Plugin write_riemann>
#       <Node "example">
#               Host "localhost"
#               Port 5555
#               Protocol TCP
#               Batch true
#               BatchMaxSize 8192
#               StoreRates true
#               AlwaysAppendDS false
#               TTLFactor 2.0
#               Notifications true
#               CheckThresholds false
#               EventServicePrefix ""
#       </Node>
#       Tag "foobar"
#       Attribute "foo" "bar"
#</Plugin>

#<Plugin write_sensu>
#       <Node "example">
#               Host "localhost"
#               Port 3030
#               StoreRates true
#               AlwaysAppendDS false
#               Notifications true
#               Metrics true
#               EventServicePrefix ""
#               MetricHandler "influx"
#               MetricHandler "default"
#               NotificationHandler "flapjack"
#               NotificationHandler "howling_monkey"
#       </Node>
#       Tag "foobar"
#       Attribute "foo" "bar"
#</Plugin>

#<Plugin write_tsdb>
#       <Node>
#               Host "localhost"
#               Port "4242"
#               HostTags "status=production"
#               StoreRates false
#               AlwaysAppendDS false
#       </Node>
#</Plugin>

#<Plugin zookeeper>
#    Host "localhost"
#    Port "2181"
#</Plugin>

##############################################################################
# Filter configuration                                                       #
#----------------------------------------------------------------------------#
# The following configures collectd's filtering mechanism. Before changing   #
# anything in this section, please read the `FILTER CONFIGURATION' section   #
# in the collectd.conf(5) manual page.                                       #
##############################################################################

# Load required matches:
#LoadPlugin match_empty_counter
#LoadPlugin match_hashed
#LoadPlugin match_regex
#LoadPlugin match_value
#LoadPlugin match_timediff

# Load required targets:
#LoadPlugin target_notification
#LoadPlugin target_replace
#LoadPlugin target_scale
#LoadPlugin target_set
#LoadPlugin target_v5upgrade

#----------------------------------------------------------------------------#
# The following block demonstrates the default behavior if no filtering is   #
# configured at all: All values will be sent to all available write plugins. #
#----------------------------------------------------------------------------#

#<Chain "PostCache">
#  Target "write"
#</Chain>

##############################################################################
# Threshold configuration                                                    #
#----------------------------------------------------------------------------#
# The following outlines how to configure collectd's threshold checking      #
# plugin. The plugin and possible configuration options are documented in    #
# the collectd-threshold(5) manual page.                                     #
##############################################################################

#---閾値監視
#LoadPlugin "threshold"
#<Plugin threshold>
#  <Type "foo">
#    WarningMin    0.00
#    WarningMax 1000.00
#    FailureMin    0.00
#    FailureMax 1200.00
#    Invert false
#    Instance "bar"
#  </Type>
#
#  <Plugin "interface">
#    Instance "eth0"
#    <Type "if_octets">
#      FailureMax 10000000
#      DataSource "rx"
#    </Type>
#  </Plugin>
#
#  <Host "hostname">
#    <Type "cpu">
#      Instance "idle"
#      FailureMin 10
#    </Type>
#
#    <Plugin "memory">
#      <Type "memory">
#        Instance "cached"
#        WarningMin 100000000
#      </Type>
#    </Plugin>
#
#    <Type "load">
#       DataSource "midterm"
#       FailureMax 4
#       Hits 3
#       Hysteresis 3
#    </Type>
#  </Host>
#</Plugin>
#
#---指定ファイル、もしくは指定ディレクトリ配下のファイルを読み込む。
#Include "/etc/collectd.d"
```

+ SNMPプラグイン個人用設定のためのtypes.db設定
    + ds-name:ds-type:min:max
    + ds-type(基本的にはGUAGEとDERIVEだけでいい):
        + GAUGE: そのままの取得値
        + DERIVE: rate = (value_new - value_old) / (time_new - time_old)
        + ABSOLUTE: よくわからない。読み込みの度に初期化されるカウンタ値が対象。ほぼGUAGEと同じ。
        + COUNTER: DERIVEにおいてvalue_old > value_newとなるオーバーフローに対応。

```vim:/root/collectd/mod_types.db
# for SNMP plugins
# CPU
hrProcessorLoad         value:GAUGE:0:U
ssCpuRawUser            value:DERIVE:0:U
ssCpuRawNice            value:DERIVE:0:U
ssCpuRawSystem          value:DERIVE:0:U
ssCpuRawIdle            value:DERIVE:0:U
ssCpuRawWait            value:DERIVE:0:U
ssCpuRawKernel          value:DERIVE:0:U
ssCpuRawInterrupt       value:DERIVE:0:U
ssCpuRawSoftIRQ         value:DERIVE:0:U
ssCpuRawSteal           value:DERIVE:0:U
ssCpuRawGuest           value:DERIVE:0:U
ssCpuRawGuestNic        value:DERIVE:0:U
ssRawInterrupts         value:GAUGE:0:U
ssRawContexts           value:GAUGE:0:U

# Memory
memTotalFree            value:GAUGE:0:U
memAvailReal            value:GAUGE:0:U
memAvailSwap            value:GAUGE:0:U
memShared               value:GAUGE:0:U
memBuffer               value:GAUGE:0:U
memCached               value:GAUGE:0:U

# Disk
ssIORawSent             value:DERIVE:0:U
ssIORawReceived         value:DERIVE:0:U
ssSwapIn                value:GAUGE:0:U
ssSwapOut               value:GAUGE:0:U
ssRawSwapIn             value:DERIVE:0:U
ssRawSwapOut            value:DERIVE:0:U

# Network
ifHCInOctets            value:DERIVE:0:U
ifHCOutOctets           value:DERIVE:0:U
ifHCInUcastPkts         value:DERIVE:0:U
ifHCInMulticastPkts     value:DERIVE:0:U
ifHCInBroadcastPkts     value:DERIVE:0:U
ifHCOutUcastPkts        value:DERIVE:0:U
ifHCOutMulticastPkts    value:DERIVE:0:U
ifHCOutBroadcastPkts    value:DERIVE:0:U
ifInDiscards            value:DERIVE:0:U
ifInErrors              value:DERIVE:0:U
ifOutDiscards           value:DERIVE:0:U
ifOutErrors             value:DERIVE:0:U
```