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