LoginSignup
2
0

Dockerで建てたunboundにログの出力をさせてみる

Posted at

目的

前回構築したunboundで、ログの出力をしてほしいという要望があった。
今回はログを出力させる方法を紹介する。

構築

unbound.conf

以下を変更

    use-syslog: no
    log-queries: no

この様に変更する

        logfile: "/etc/unbound/log/unbound.log"
        use-syslog: no
        log-queries: yes
        log-time-ascii: yes

最終的に以下の様になった

server:
    # Send minimum amount of information to upstream servers to enhance
    # privacy. Only sends minimum required labels of the QNAME and sets
    # QTYPE to NS when possible.

    # See RFC 7816 "DNS Query Name Minimisation to Improve Privacy" for
    # details.

    # qname-minimisation: yes

    # allow local address
    access-control: 0.0.0.0/0 allow

    # listen interface
    interface: 0.0.0.0

    # hide version
    hide-version: yes
    hide-identity: yes


    logfile: "/etc/unbound/log/unbound.log"
    use-syslog: no
    log-queries: yes
    log-time-ascii: yes

    local-data: "www.tmcit.sho    IN A 172.24.20.25"
#    local-data: "fuga.example.com.    IN A 172.16.0.2"
#    local-data: "foo.example.com.     IN A 172.16.0.3"
#    local-data: "bar.example.com.     IN A 172.16.0.4"


#forward-zone:
#        name: "example.org."
#        forward-addr: 192.168.10.5

forward-zone:
        name: "."
        forward-addr: 8.8.8.8
        forward-addr: 8.8.4.4
        forward-addr: 172.24.2.51

Dockerfile

docker-logはlogのローテーション設定ファイル
ログ系のフォルダやファイルはunboundが所有者にならないといけないので権限調整を行う

FROM almalinux:latest
RUN yum -y update && yum -y install unbound
ADD unbound.conf /etc/unbound/
ENV TZ=Asia/Tokyo
ADD docker-log /etc/logrotate.d/

RUN mkdir -p /etc/unbound/log/
RUN chmod 777 /etc/unbound/log/ && \
chown unbound:unbound /etc/unbound/log/ && \
touch /etc/unbound/log/unbound.log && \
chmod 777 /etc/unbound/log/unbound.log && \
chown unbound:unbound /etc/unbound/log/unbound.log && \
chmod 644 /etc/logrotate.d/*

ENTRYPOINT ["/usr/sbin/unbound","-d","-c","/etc/unbound/unbound.conf"]

ログローテーション

docker-log

/etc/unbound/log/unbound.log { # 対象のログファイル
    ifempty            # ログファイルが空でもローテーションする
    dateformat .%Y%m%d # dateフォーマットを任意のものに変更する
    missingok          # ログファイルがなくてもエラーを出さない
    compress           # 圧縮する
    rotate 10          # 10世代分古いログを残す
    postrotate         # ローテート後にsyslogを再起動
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}

docker-compose.yml

今回は事前にdocker volume createコマンドを用いて、unboundボリュームを作成しているため、externalオプションをtrueにしている。ここを指定しなければdocker-composeが自動的にボリュームを作成する。

version: "3.9"
services:
  unbound:
    build: .
    image: unbound-alma:1.0.0
    container_name: unbound
    tty: true

    networks:
      vlan0:
        ipv4_address: 172.24.20.205
    volumes:
      - unbound:/etc/unbound/log/

networks:
  vlan0:
    name: vlan0
    driver: macvlan
    driver_opts:
      parent: enp1s0
    ipam:
      config:
        - subnet: 172.24.20.0/24
          gateway: 172.24.20.254

volumes:
  unbound:
    external: true

ホストから確認

dockerのvolumeは/var/lib/docker/volumes/以下に格納されている。

/var/lib/docker/volumes/unbound/_data/unbound.log

root@shoma:/home/shoma/dns# cat /var/lib/docker/volumes/unbound/_data/unbound.log
Jul 26 16:20:19 unbound[1:0] notice: init module 0: subnetcache
Jul 26 16:20:19 unbound[1:0] notice: init module 1: validator
Jul 26 16:20:19 unbound[1:0] notice: init module 2: iterator
Jul 26 16:20:19 unbound[1:0] info: start of service (unbound 1.16.2).
Jul 26 16:22:38 unbound[1:0] info: 172.24.20.16 205.20.24.172.in-addr.arpa. PTR IN
Jul 26 16:22:38 unbound[1:0] info: 172.24.20.16 google.com. A IN
Jul 26 16:22:40 unbound[1:0] info: 172.24.20.16 google.com. AAAA IN
Jul 26 16:22:52 unbound[1:0] info: 172.24.20.16 205.20.24.172.in-addr.arpa. PTR IN
Jul 26 16:22:52 unbound[1:0] info: 172.24.20.16 google.com. A IN
Jul 26 16:22:52 unbound[1:0] info: 172.24.20.16 google.com. AAAA IN
Jul 26 16:22:55 unbound[1:0] info: 172.24.20.16 205.20.24.172.in-addr.arpa. PTR IN
Jul 26 16:22:55 unbound[1:0] info: 172.24.20.16 www.tmcit.sho. A IN
Jul 26 16:22:56 unbound[1:0] info: 172.24.20.16 www.tmcit.sho. AAAA IN
Jul 26 16:22:56 unbound[1:0] info: 172.24.20.16 205.20.24.172.in-addr.arpa. PTR IN
Jul 26 16:22:56 unbound[1:0] info: 172.24.20.16 www.tmcit.sho. A IN
Jul 26 16:22:56 unbound[1:0] info: 172.24.20.16 www.tmcit.sho. AAAA IN
Jul 26 16:22:57 unbound[1:0] info: 172.24.20.16 205.20.24.172.in-addr.arpa. PTR IN
Jul 26 16:22:57 unbound[1:0] info: 172.24.20.16 www.tmcit.sho. A IN
Jul 26 16:22:57 unbound[1:0] info: 172.24.20.16 www.tmcit.sho. AAAA IN
2
0
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
2
0