DatadogでOpenLDAPのメトリクスを収集

Thu, Dec 17, 2015

OpenLDAP と仲間たち Advent Calendar 2015 17日目。

Datadogは手軽にサービスのメトリクスを監視できるサービスです。

このDatadogでOpenLDAPのメトリクスを収集するagentプラグインを作りましたので使い方を紹介します。

DatadogでOpenLDAPの利用状況を可視化するとこんなグラフができます。

OpenLDAPの負荷分析で重要なのはコネクション数と、スレッド数(起動数・最大数)あたりでしょう。 今後必要があればその他の情報も取れるようにしますので要望があればgithubのissueでお知らせください。

グラフ

Monitor DBの有効化

RHEL7/CentOS7では規定でmonitorデータベースが有効になっています。古いOpenLDAPでもslapd.confに

database monitor

と設定されていればMonitor DBは有効化されています。

ここではRHEL7/CnetOS7のでmonitorデータベースの利用方法を説明します。

まず、/etc/openldap/slapd.d/cn\=config/olcDatabase\={1}monitor.ldif を参照してみてください。 規定ではcn=Manager,dc=my-domain,dc=comでMonitor DBにアクセスする権限が与えられているはずです。

ですので、cn=Manager,dc=my-domain,dc=comというエントリーを投入するか、 configデータベースを変更して別ユーザーに対して権限を与えてください。

ここでは以下の管理者用エントリが投入されているとします。

dn: cn=Manager,dc=my-domain,dc=com
objectClass: person
cn: Manager
sn: Manager
userPassword: password

アクセス権が設定されていれば以下のコマンドでMonitor DBを参照できるはずです。

$ ldapsearch -x -D 'cn=Manager,dc=my-domain,dc=com' -w password -b cn=Monitor '+'

Datadog Agentのインストール

こちらのインストール手順を参照してインストールしてくささい。

Datadog Agent Checkプラグインのインストール

Datadog Agent Checkを動作させるにはpythonのldap3ライブラリが必要なのでインストールします。

# /opt/datadog-agent/embedded/bin/pip install ldap3

続いて、Datadog Agent Checkプラグインをインストールします。 ソースコードはこちらです。

# cd /etc/dd-agent/checks.d/
# wget https://github.com/hamano/dd-agent-openldap/raw/master/checks.d/openldap.py
# cd /etc/dd-agent/conf.d/
# wget https://github.com/hamano/dd-agent-openldap/raw/master/conf.d/openldap.yaml
# chown dd-agent openldap.yaml
# chmod 600 openldap.yaml

設定ファイル(openldap.yaml)にMonitor DBにアクセス可能なユーザーとパスワードを記述します。

init_config:
  verbose: False

instances:
  - url: 'ldap://127.0.0.1:389'
    user: cn=Manager,dc=my-domain,dc=com
    password: password

dd-agentを再起動すると、メトリクスが収集されるようになります。

# service datadog-agent restart