mackerel-plugin-postgresをPostgreSQL9.4 on CentOS6.9という環境で動かしてみた
以前書いた「CentOS 6にMackerelエージェントを入れてみた」という記事の続きのような内容です。
表題の通りMackerelのPostgreSQL用のプラグイン「mackerel-plugin-postgres」というものがあることを知ったので、今回の作業環境にインストールされていたPostgreSQL9.4という結構古いバージョンで動かすとどうなるのか試してみました。
前提
- Mackerelエージェント自体のインストールは済んでいるものとします。(まだの場合は「CentOS 6にMackerelエージェントを入れてみた」を参考にしてみてください)
- OSのバージョンが古くyumコマンドが使えないのでmkrの導入ができないため、今回はMackerelプラグインのインストールにmkrコマンドは使いません。
- 環境はCentOS6.9, インストールされているPostgreSQLのバージョンは9.4です。
- 上記環境は検証用の環境であり、上記環境で運用することを推奨する記事ではありません。
やったこと
プラグインをダウンロード
https://github.com/mackerelio/mackerel-agent-plugins/releases
にアクセスして最新版のAssetsをダウンロードします。
今回は「mackerel-agent-plugins-0.86.0-1.el7.centos.x86_64.rpm」にしました。
(ここは各々の環境に合わせて選択してください)
導入
先ほどダウンロードしたrpmファイルをサーバーにアップロードします。
私の場合、mackerel-agent
というディレクトリを作成して、そこでMackerelエージェントを導入していたので、そこに配置しました。
(mackerel-agent.conf
があるディレクトリにrpmファイルを配置しました。)
配置したら以下のコマンドを実行してインストールします。
sudo rpm -ivh mackerel-agent-plugins-0.85.0-1.el7.centos.x86_64.rpm
インストールしてもディレクトリ内に特に変化はないです。
次にMackerelの設定ファイルを編集します。
vim mackerel-agent.conf
以下の2行を追加します。
[plugin.metrics.postgres]
command = "/usr/bin/mackerel-plugin-postgres -user 【ユーザー名】 -password 【パスワード】 -database postgres"
※ -databaseはデフォルト値がpostgresだから明示的に指定しなくてもいいかも。
メトリクスはデフォルトではpostgresにあるのでpostgresを指定することで取得できるようになります。
この辺の詳細は公式のドキュメントを読むと詳細が書いてあると思います。
ここまでできたらエージェントを再起動します。
私の環境ではmackerel-agent-conf
があるディレクトリでコマンドを実行します。
まずは標準出力も見たいので、nohupせずに普通に以下を実行します。
sudo ./mackerel-agent --conf=./mackerel-agent.conf
startした旨のメッセージのあとに「xxx does not exist」といったメッセージが出力されました。
やはり使用しているPostgreSQLのバージョンが9.4と古いので、MackerelのPostgreSQLプラグインが取得しようとしたメトリクスをPostgreSQLが持っておらずそのようなメッセージが表示されているっぽいですね。
とりあえず大きな問題はなさそうなので、一度エージェントをkillコマンドで終了して、今度はnohupコマンド付きで実行してバックグラウンドで起動し続けるようにします。
(killするための起動中のMackerelエージェントのプロセスは以下で確認します。実行したコマンドのプロセスidを確認してそれをkillします。)
ps aux | grep mackerel
nohup付きで実行するコマンドは以下のような感じです。
sudo nohup ./mackerel-agent --conf=./mackerel-agent.conf > /dev/null 2>&1 &
Mackerelで確認する
しばらく待ってMackerelの管理画面で確認してみます。
「ホスト」で確認してみると、「カスタムメトリック」の欄が追加され表示されていました。
ちなみにMackerelエージェント実行時に「xxx does not exist」となっていたメトリクスは項目が表示されているが値が常に0になったりしてました。
以上です。
余談
プラグインで取得できるメトリクスは公式の「監視できるメトリック」で確認できます。
PostgreSQLのどのバージョンでどのようなメトリクスが存在しているかは、
PostgreSQL日本語ドキュメント
でドキュメントを開き、「データベース活動状況の監視
」の章を開くと「統計情報コレクタ」や「累積統計システム」みたいなタイトルのページがあるのでそこで確認できます。
Share this post