Diary of a Perpetual Student

Perpetual Student: A person who remains at university far beyond the normal period

IPsec VPN実装であるLibreswanの状態を監視できるMackerelプラグイン

IPsec VPN実装であるLibreswanの状態をメトリックとして見られるようにするMackerelプラグインを作りました。

github.com

strongSwanのものは先人が作っていましたが、Libreswanのものがなかったので自作した形です。

nonylene.hatenablog.jp

何が見られるか

Libreswanで作ったVPNサーバの状態が見られます。

  • IPsec Connectionの合計(active/loaded)
  • IPsecのSecurity Associations(total/authenticated/anonymous)
  • IKEのSecurity Associations(total/open/half-open/authenticated/anonymous)

インストール

mkr installに対応した形式で配布しています。

sudo mkr plugin install Arthur1/mackerel-plugin-libreswan

でインストールして

[plugin.metrics.libreswan]
command = ["/opt/mackerel-agent/plugins/bin/mackerel-plugin-libreswan"]

と書けば動きます。

Docker上で動かしているLibreswanにも対応

以下のようにVPNサーバをDockerで動かしている例もあるでしょう。

github.com

ipsecコマンドが実行できるコンテナ向けにこのプラグインを実行したければ、-docker-execオプションを活用できます。例えば、

$ docker exec -it ipsec-vpn-server ipsec version
Libreswan 5.0

のようにしてipsecコマンドを実行できる環境の場合には、

[plugin.metrics.libreswan]
command = ["/opt/mackerel-agent/plugins/bin/mackerel-plugin-libreswan", "-docker-exec", "ipsec-vpn-server"]

のように、-docker-execオプションとしてコンテナ名を渡してあげると動きます。