おれさまラボ

実際に手を動かして理解を深めるブログ。

Squid のアクセスログを rsyslog サーバーへ転送する

■ 環境
OS は CentOS 7.4 を利用します。
[root@proxy1 ~]# cat /etc/*release
CentOS Linux release 7.4.1708 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
BUG_REPORT_URL="https://bugs.centos.org/"
 
 
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
 
 
CentOS Linux release 7.4.1708 (Core)
CentOS Linux release 7.4.1708 (Core)
 
Squid は 3.5.20 を利用します。
[root@proxy1 ~]# squid -v
Squid Cache: Version 3.5.20
Service Name: squid
configure options:  '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--disable-strict-error-checking' '--exec_prefix=/usr' '--libexecdir=/usr/lib64/squid' '--localstatedir=/var' '--datadir=/usr/share/squid' '--sysconfdir=/etc/squid' '--with-logdir=$(localstatedir)/log/squid' '--with-pidfile=$(localstatedir)/run/squid.pid' '--disable-dependency-tracking' '--enable-eui' '--enable-follow-x-forwarded-for' '--enable-auth' '--enable-auth-basic=DB,LDAP,MSNT-multi-domain,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB,SMB_LM,getpwnam' '--enable-auth-ntlm=smb_lm,fake' '--enable-auth-digest=file,LDAP,eDirectory' '--enable-auth-negotiate=kerberos' '--enable-external-acl-helpers=file_userip,LDAP_group,time_quota,session,unix_group,wbinfo_group,kerberos_ldap_group' '--enable-cache-digests' '--enable-cachemgr-hostname=localhost' '--enable-delay-pools' '--enable-epoll' '--enable-ident-lookups' '--enable-linux-netfilter' '--enable-removal-policies=heap,lru' '--enable-snmp' '--enable-ssl-crtd' '--enable-storeio=aufs,diskd,rock,ufs' '--enable-wccpv2' '--enable-esi' '--enable-ecap' '--with-aio' '--with-default-user=squid' '--with-dl' '--with-openssl' '--with-pthreads' '--disable-arch-native' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -fpie' 'LDFLAGS=-Wl,-z,relro  -pie -Wl,-z,relro -Wl,-z,now' 'CXXFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -fpie' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'
 
squid.conf の編集
$ cp -ip /etc/squid/squid.conf /etc/squid/squid.conf.20190222.bef
$ vi /etc/squid/squid.conf
$ diff /etc/squid/squid.conf /etc/squid/squid.conf.20190222.bef
34d33
< access_log syslog:local0.info combined
 
squid の再起動
$ systemctl status squid
$ systemctl restart squid
$ systemctl status squid
 
■ rsyslog.conf の編集(送信側:squid サーバー)
$ cp -ip  /etc/rsyslog.conf /etc/rsyslog.conf.20190222.bef
$ vi /etc/rsyslog.conf
$ diff /etc/rsyslog.conf /etc/rsyslog.conf.20190222.bef
75,76d74
< # Save squid access log
< local0.*                                              /var/log/squid/access.log
92c90
< local0.* @192.168.1.116:514
---
> *.* @192.168.1.116:514
 
■ rsyslog の再起動(送信側:squid サーバー)
$ systemctl status rsyslog
$ systemctl restart rsyslog
$ systemctl status rsyslog
 
■ ログ保存フォルダの作成(受信側:rsyslog サーバー)
$ mkdir /var/log/192.168.1.124
 
■ rsyslog.conf の編集(受信側:rsyslog サーバー)
$ cp -ip  /etc/rsyslog.conf /etc/rsyslog.conf.20190222.bef
$ vi /etc/rsyslog.conf
 
# 以下の内容を追記する。
---
# proxy1
$template proxy,"/var/log/192.168.1.124/accesslog_%$year%%$month%%$day%".log
:fromhost-ip, isequal, "192.168.1.124" ?proxy
&stop
 
■ rsyslog の再起動(受信側:rsyslog サーバー)
$ systemctl status rsyslog
$ systemctl restart rsyslog
$ systemctl status rsyslog
 
■ 動作確認
プロキシサーバー経由でWEBアクセスを行うと、受信側:rsyslog サーバーの所定のフォルダへアクセスログが記録されます。
 
以上です。