はじめに
本ドキュメントで紹介する内容は CVIM 4.2.0 および 4.2.1 に基づいています。その他のバージョンでは内容が異なる場合があります。
OpenStack Neutron ではテナント内でのDHCPサーバーとして dnsmasq が動作しています。本ドキュメントでは CVIM 上の neutron docker コンテナ内の dnsmasq の動作を確認するためのログ出力の方法をご紹介します。尚、dnsmasq が出力したログは fluentd で管理されていませんので、継続的に使用するとログファイルのサイズが肥大化する可能性があります。そのためここで紹介している方法はあくまでも検証や確認のために一時的に有効にすることを前提としており、継続した使用は推奨しておりません。確認後は必ずログ出力を停止してください。
dnsmasqのログ出力を有効にする方法
1. Controllerノードにログインし、rootユーザーで neutron_dhcp_agent コンテナに入ります。
[root@jcvim-aio1 ~]# podman exec -it --user root neutron_dhcp_agent_31259 /bin/bash
[root@jcvim-aio1 neutron]#
2. コンテナに入った後、エディタで /etc/neutron/dhcp_agent.ini ファイルを開き、 [DEFAULT] に次の一文を追記します。
dnsmasq_base_log_dir = /var/log/neutron
[root@jcvim-aio1 neutron]# vi /etc/neutron/dhcp_agent.ini
[DEFAULT]
verbose = True
debug = True
resync_interval = 30
metadata_proxy_socket = /tmp/proxy_sockets/proxy.sock
enable_isolated_metadata = True
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
dhcp_delete_namespaces = True
# Enable dnsmasq logging and log file will be created in /var/log/neutron
dnsmasq_base_log_dir = /var/log/neutron
3. 編集後、/etc/neutron/dhcp_agent.iniファイルを保存して、neutron_dhcp_agent コンテナから抜けます。
4. 次に systemctl コマンドで neutron_dhcp_agent コンテナを再起動します。
[root@jcvim-aio1 ~]# systemctl restart docker-neutrondhcp.service
[root@jcvim-aio1 ~]#
5. 再起動後、/var/log/neutron にdnsmasqのログファイルが作成されていることを確認します。
[root@jcvim-aio1 ~]# ls /var/log/neutron/63eb329e-30eb-49ae-85b0-a16933d64699/*
/var/log/neutron/63eb329e-30eb-49ae-85b0-a16933d64699/dhcp_dns_log
[root@jcvim-aio1 ~]#
6. ログの確認が終わったら、元の状態に戻すために再び neutron_dhcp_agent コンテナに入り、/etc/neutron/dhcp_agent.ini ファイルに追加した dnsmasq_base_log_dir の行を削除して、ファイルを保存します。ファイルを保存後、neutron_dhcp_agentコンテナから出て、neutron_dhcp_agent コンテナを再起動します。再起動後、dnsmasqのログファイルを確認して、ロギングが止まっていることを確認してください。