syslog-ng 与 logrotate

本文介绍了syslog-ng服务如何收集符合<sys/syslog.h>格式的日志信息,并详细解释了logrotate工具如何通过周期性地重命名与创建新的日志文件来实现日志轮换。

syslog-ng是一个系统服务,发送到Unix domain socket ( /dev/log) 或者UDP 514端口 或者 /etc/services中定义的syslog/udp 端口的信息都会被syslog-ng收到。这些信息要符合<sys/syslog.h>中定义的格式, syslog-ng的配置文件为 /etc/syslogng/syslog-ng.conf

 

 

 

logrotate 可以对指定的log文件进行转存,比如每周或者每天把xxx.log改名为 xxx.log.1 然后创建新的xxx.log文件,如果已经有xxx.log.1,那么就把老的xxx.log.1改名为 xxx.log.2 以此类推.

logrotate需要用cron服务来定期执行。

include $(TOPDIR)/rules.mk PKG_NAME:=syslog-ng PKG_VERSION:=4.7.1 PKG_RELEASE:=1 PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com> PKG_LICENSE:=LGPL-2.1-or-later GPL-2.0-or-later PKG_LICENSE_FILES:=COPYING LGPL.txt GPL.txt PKG_CPE_ID:=cpe:/a:balabit:syslog-ng PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/syslog-ng/syslog-ng/releases/download/$(PKG_NAME)-$(PKG_VERSION)/ PKG_HASH:=5477189a2d12325aa4faebfcf59f5bdd9084234732f0c3ec16dd253847dacf1c PKG_BUILD_PARALLEL:=1 PKG_INSTALL:=1 TARGET_LDFLAGS += -L$(STAGING_DIR)/usr/lib/ -liconv PKG_BUILD_DEPENDS:= \ HOST_OS_MACOS:fakeuname/host \ PKG_CONFIG_DEPENDS:= \ CONFIG_IPV6 \ CONFIG_LIBCURL_ZLIB include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/nls.mk ifeq ($(CONFIG_HOST_OS_MACOS),y) include ../../utils/fakeuname/fakeuname.mk endif define Package/syslog-ng SECTION:=admin CATEGORY:=Administration TITLE:=A powerful syslog daemon URL:=https://www.syslog-ng.com/products/open-source-log-management/ DEPENDS:=+libpcre2 +glib2 +libopenssl +libpthread +librt +libdbi +libjson-c +libcurl +libuuid +SYSLOGNG_LOGROTATE:logrotate +LIBCURL_ZLIB:zlib endef define Package/syslog-ng/description syslog-ng reads and logs messages to the system console, log files, other machines and/or users as specified by its configuration file. endef define Package/syslog-ng/conffiles /etc/syslog-ng.conf /etc/syslog-ng.d/ /etc/scl.conf endef define Package/syslog-ng/config config SYSLOGNG_LOGROTATE bool "Logrotate support" depends on PACKAGE_syslog-ng default n help It adds support for logrotate functionality. config SYSLOGNG_LOGROTATE_MAXSIZE string "Maximum size of /var/log/messages log file" depends on SYSLOGNG_LOGROTATE default "1M" help Log files are rotated when they grow bigger than defined size bytes. config SYSLOGNG_LOGROTATE_ROTATE_COUNT int "Maximum rotation count for /var/log/messages log file" depends on SYSLOGNG_LOGROTATE default 1 help Log files are rotated count times before being removed or mailed to the address specified in a mail directive. If count is 0, old versions are removed rather than rotated. endef define Build/Configure $(SED) 's,-I/usr/include,,' $(PKG_BUILD_DIR)/configure $(Build/Configure/Default) endef LOGROTATE_MAXSIZE:=$(call qstrip,$(CONFIG_SYSLOGNG_LOGROTATE_MAXSIZE)) LOGROTATE_ROTATE:=$(call qstrip,$(CONFIG_SYSLOGNG_LOGROTATE_ROTATE_COUNT)) CONFIGURE_ARGS += \ --disable-afsnmp \ $(call autoconf_bool,CONFIG_IPV6,ipv6) \ --disable-tcp-wrapper \ --disable-spoof-source \ --disable-sql \ --disable-linux-caps \ --with-jsonc=system \ --enable-cpp=no \ --enable-json=yes \ $(if $(CONFIG_LIBCURL_ZLIB),--enable-http=yes,--enable-http=no) \ --disable-smtp \ --disable-mqtt \ --disable-redis \ --disable-dependency-tracking \ --disable-python \ --disable-geoip2 \ --disable-java \ --disable-java-modules \ --with-librabbitmq-client=no \ --with-mongoc=no CONFIGURE_VARS += \ $(if $(CONFIG_HOST_OS_MACOS),PATH=$(FAKEUNAME_PATH):$(PATH)) \ LIBDBI_CFLAGS="-I$(STAGING_DIR)/usr/include" define Package/syslog-ng/install cd $(PKG_BUILD_DIR); make DESTDIR=$(1) install $(call libtool_remove_files,$(1)) # This removes .la files in folder (including subfolders) /usr/lib rm -rf $(1)/usr/lib/pkgconfig \ $(1)/usr/lib/*.a \ $(1)/usr/include \ $(1)/var $(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_BIN) ./files/syslog-ng.init $(1)/etc/init.d/syslog-ng $(INSTALL_DIR) $(1)/etc/syslog-ng.d $(INSTALL_DATA) ./files/syslog-ng.conf $(1)/etc touch $(1)/etc/syslog-ng.d/.keep $(INSTALL_DIR) $(1)/sbin $(INSTALL_BIN) ./files/logread $(1)/sbin $(INSTALL_DIR) $(1)/usr/share/syslog-ng/include/ $(CP) -r ./files/scl $(1)/usr/share/syslog-ng/include/ ifneq ($(strip $(CONFIG_SYSLOGNG_LOGROTATE)),) $(INSTALL_DIR) $(1)/etc/logrotate.d sed \ -e 's#@MAXSIZE@#$(LOGROTATE_MAXSIZE)#g' \ -e 's#@ROTATE@#$(LOGROTATE_ROTATE)#g' \ ./files/syslog-ng.logrotate > $(1)/etc/logrotate.d/syslog-ng.conf endif endef define Package/syslog-ng/postinst #!/bin/sh [ -n "$$IPKG_INSTROOT" ] || { /etc/init.d/syslog-ng enable /etc/init.d/syslog-ng restart } endef define Package/syslog-ng/prerm #!/bin/sh [ -n "$$IPKG_INSTROOT" ] || { /etc/init.d/syslog-ng disable /etc/init.d/syslog-ng stop } endef $(eval $(call BuildPackage,syslog-ng))
最新发布
11-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值