#前置き
初投稿です、宜しくお願いします。
freeRADIUSのAccountingに関して、
あまり日本語の説明記事がなく調べるのに苦労したため備忘録がてらまとめました。
Accountingの概要やログメッセージの例については以下のサイトが大変参考になりました。
FreeRADIUSとdaloRADIUSのアカウンティング - デージーネット
#内容
以下について記載します。
使用機器はLinuxのCentOS7の想定です。
- Accountingログの場所
- Accountingログのファイル名、ディレクトリ名の設定
- logrotateの設定
#Accountingログの場所
デフォルトでは**/var/log/radius/radacct配下に各NASのIPアドレスごとにディレクトリが生成され、
その中にそれぞれ溜まっていきます。(radacctはradius-accountingの略だと思われる)
ファイル名はdetails-YYYYMMDD**という形で日ごとに別ファイルになっています。
# cd /var/log/radius/radacct
# ls -l
合計 10
drwx----- 2 radiusd radiusd 4096 11月 10 08:52 192.168.0.1
drwx----- 2 radiusd radiusd 4096 11月 10 08:20 192.168.10.99
drwx----- 2 radiusd radiusd 4096 11月 10 08:01 192.168.99.33
# cd 192.168.0.1
# ls -l
-rw------ 1 radiusd radiusd 12542 11月 1 23:03 details-20211101
-rw------ 1 radiusd radiusd 13675 11月 2 23:12 details-20211102
-rw------ 1 radiusd radiusd 19847 11月 3 23:54 details-20211103
-rw------ 1 radiusd radiusd 22456 11月 4 23:57 details-20211104
-rw------ 1 radiusd radiusd 12980 11月 5 23:59 details-20211105
(省略)
#Accountingログのファイル名、ディレクトリ名の設定
続いてこのログファイルのファイル名や格納場所を変える場合の設定です。
freeRADIUSは設定ファイルがたくさんあって分かりにくいです、、
今回変更が必要なファイルは以下です。
-/etc/raddb/mods-enabled/detail
(/etc/raddb/mods-available/detailのシンボリックリンクなのでそちらでも可)
33行目あたりに以下の記載があります。
filename = ${radacctdir}/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d
ここを変更することでファイル名や保存するディレクトリを変更できます。
変更後プロセスの再起動を実施すれば反映されます。
ちなみにradacctdirという変数はradiusd.confで定義されています。
localstatedir = /var
logdir = ${localstatedir}/log/radius
radacctdir = ${logdir}/radacct
そのため、ログが/var/log/radius/radacct配下に各NASのIPごとにディレクトリ分けされ、
日ごとにファイル分けされて溜められています。
#logrotateの設定
デフォルトではfreeRADIUS自体で簡易的に日ごとにAccountingログファイルを生成していました。
ただ、10世代だけ残しておきたい、月ごとにローテーションしたい、●時×分にローテーションしたい...
などの小回りは効きません。
細かくローテーションの設定をしたい場合は、logrotateを利用すると良いです。
freeRADIUSはインストールすると
/etc/logrotate.d/radiusdというlogrotate用の設定ファイルを生成してくれているので、
そちらを編集するのがおすすめです。
デフォルトでは以下のように対象ファイルを**/var/log/radius/radacct/*/detail**と記述しているため、
detail-YYYYMMDDとして生成されるAccountingログファイルは対象外となっており、
logrotateではローテーションされていません。
/var/log/radius/radacct/*/detail{
monthly
rotate 4
nocreate
missingok
compress
su radiusd radiusd
}
ローテーションの設定がしやすいように、
まずは**/etc/raddb/mods-enabled/detail**を編集してファイル名が動的に変化しないものにしたうえで、
組み立てていくと良いと思います。
参考サイト