[Gluster-users] [Gluster-devel] new glusterfs logging framework

Niels de Vos
2013-08-06T15:18:58Z

On Tue, Jul 30, 2013 at 05:29:43AM -0400, Balamurugan Arumugam
wrote:
>
> Hi All,
>
> Recently new logging framework was introduced [1][2][3] in glusterfs
> master branch.  You could read more about this on doc/logging.txt.  In
> brief, current log target is moved to syslog and user has an option to
> this new logging at compile time (passing '--disable-syslog' to
> ./configure or '--without syslog' to rpmbuild) and run time (having
> a file /var/log/glusterd/logger.conf and restarting gluster services).
>
> As rsyslog is used as syslog server in Fedora and CentOS/RHEL and
> default configuration of rsyslog does not have any rule specific to
> gluster logs, you see all logs are in /var/log/messages in JSON
> format.

As the below does not function on RHEL-6 with its own rsyslog (no
rsyslog-mmjsonparse available), I am creating an empty
/var/lib/glusterd/logger.conf which (after a restart) makes glusterd and
friends to log to their standard files again.

Do you have some progress on the rsyslog-mmjsonparse for rhel5 and
rhel6?

Also, it would really be nice to include that
/etc/rsyslog.d/gluster.conf in the rpms and add a dependency on the
rsyslog-mmjsonparse package. Or, provide a /var/lib/glusterd/logger.conf
for the distributions that do not have rsyslog-mmjsonparse.

Thanks,
Niels

>
> Below is the way to make them neat and clean.
>
> For fedora users:
> 1. It requires to install rsyslog-mmjsonparse rpm (yum -y install
rsyslog-mmjsonparse)
> 2. Place below configuration under /etc/rsyslog.d/gluster.conf file.
>
> #$RepeatedMsgReduction on
>
> $ModLoad mmjsonparse
> *.* :mmjsonparse:
>
> template (name="GlusterLogFile" type="string"
string="/var/log/gluster/%app-name%.log")
> template (name="GlusterPidLogFile" type="string"
string="/var/log/gluster/%app-name%-%procid%.log")
>
> template(name="GLFS_template" type="list") {
>    property(name="$!mmcount")
>    constant(value="/")
>    property(name="syslogfacility-text"
caseConversion="upper")
>    constant(value="/")
>    property(name="syslogseverity-text"
caseConversion="upper")
>    constant(value=" ")
>    constant(value="[")
>    property(name="timereported" dateFormat="rfc3339")
>    constant(value="] ")
>    constant(value="[")
>    property(name="$!gf_code")
>    constant(value="] ")
>    constant(value="[")
>    property(name="$!gf_message")
>    constant(value="] ")
>    property(name="$!msg")
>    constant(value="\n")
> }
>
> if $app-name == 'gluster' or $app-name == 'glusterd' then {
>    action(type="omfile"
>           DynaFile="GlusterLogFile"
>           Template="GLFS_template")
>    stop
> }
>
> if $app-name contains 'gluster' then {
>    action(type="omfile"
>           DynaFile="GlusterPidLogFile"
>           Template="GLFS_template")
>    stop
> }
>
>
> 3. Restart rsyslog (service rsyslog restart)
> 4. Done. All gluster process specific logs are separated into
/var/log/gluster/ directory
>
>
> Note: Fedora 19 users
> There is a bug in rsyslog of fedora 19 [4], so its required to recompile
rsyslog source rpm downloaded from fedora repository ('rpmbuild --rebuild
rsyslog-7.2.6-1.fc19.src.rpm' works fine) and use generated rsyslog and
rsyslog-mmjsonparse binary rpms
>
> For CentOS/RHEL users:
> Current rsyslog available in CentOS/RHEL does not have json support.  I
have added the support which requires some testing.  I will update once done.
>
>
> TODO:
> 1. need to add volume:brick specific tag to logging so that those logs can
be separated out than pid.
> 2. enable gfapi to use this logging framework
>
>
> I would like to get feedback/suggestion about this logging framework
>
>
> Regards,
> Bala
>
>
> [1] http://review.gluster.org/4977
> [2] http://review.gluster.org/5002
> [3] http://review.gluster.org/4915
> [4] https://bugzilla.redhat.com/show_bug.cgi?id=989886
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at nongnu.org
> https://lists.nongnu.org/mailman/listinfo/gluster-devel

--
Niels de Vos
Sr. Software Maintenance Engineer
Support Engineering Group
Red Hat Global Support Services