LoginSignup
1
2

More than 5 years have passed since last update.

【Docker × Mackerel】mackerel-plugin-accesslog でアクセスログを簡単に監視する

Last updated at Posted at 2017-11-25

概要

Docker Compose を利用し、web-server コンテナと mackerel-agent コンテナを立ち上げた上で、mackerel-plugin-accesslog を利用して web-server のアクセスログをメトリックとして投稿し、モニタリングしてみる。

前準備

以下の導入に関しては本記事では割愛します。

  • docker-compose コマンド叩ける環境
  • httpd インストール済みイメージ(今回は Apache/2.4.6)
  • Mackerel アカウント

docker-compose

準備した docker-compose.yml はこんな感じ。

docker-compose.yml
version: '2'

services:
  web-server:
    image: web-server
    ports:
      - "80:80"
    volumes:
      - web-server-log:/var/log/httpd

  mackerel-agent:
    image: mackerel/mackerel-agent
    hostname: web-server-monitor
    environment:
      - apikey=your_apikey
      - enable_docker_plugin=true
      - include=/etc/mackerel-agent/conf.d/*.conf
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /var/lib/mackerel-agent/:/var/lib/mackerel-agent/
      - ./mackerel_conf:/etc/mackerel-agent/conf.d
      - web-server-log:/web_server_log
    depends_on:
      - web-server

volumes:
  web-server-log:

web-server イメージには、予め httpd がインストール済みで、起動時のコマンドで httpd が start する。
web-sever コンテナ内の /var/log/httpd を volume 用コンテナ web-server-log を経由させ、mackerel-agent コンテナ内で参照できるようにしている。

mackerel-agent environment で、include=/etc/mackerel-agent/conf.d/*.conf とすることで、コンテナ内の /etc/mackerel-agent/conf.d ディレクトリ下の .conf ファイル内の設定を、コンテナ起動時に読み込む。
今回はホスト側 docker-compose.yml ファイルと同じ階層に mackerel_conf ディレクトリを作成し、これをコンテナ内 /etc/mackerel-agent/conf.d にマウントする。

設定ファイル

https://github.com/mackerelio/mackerel-agent-plugins/tree/master/mackerel-plugin-accesslog
README にある通り、mackerel-agent の設定ファイルに2行程追加するだけの簡単なお仕事。

今回の/path/to/access.log は、web-server-log から mackerel-agent コンテナ内にマウントされている /web_server_log ディレクトリ内の access_log ファイルにあたる。

ホスト側の mackerel-agent 設定ファイル用ディレクトリ mackerel_conf 下に、以下の内容で設定ファイルを作成する。ファイル名は末尾が.confなら何でも良い。

accesslog.conf
[plugin.metrics.accesslog]
command = "mackerel-plugin-accesslog /web_server_log/access_log"

起動

おもむろに docker-compose up

$ docker-compose up -d

コンテナが立ち上がった頃に、Mackerel の管理画面からメトリック一覧を見てみると・・・

204.PNG

きてます!

まとめ

  • Docker × Mackerel の相性◎
  • HTTPステータスコードに応じて監視ルールを設定することができる
  • 他にも多くの便利な agent plugin あります
  • mackerel-plugin-apache2 を使えば、apache のメトリックも簡単に取得できるので、またの機会に
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2