summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchangqing.li@windriver.com <changqing.li@windriver.com>2018-06-19 17:46:58 +0800
committerKhem Raj <raj.khem@gmail.com>2018-06-20 10:01:28 -0700
commit6457b3d77dde964a01833c6904a42092150edea5 (patch)
treea0f8cc349ae3c813fb95f880e4f2f4facbe5c861
parenta2f02d1d7b05942592b1c3b2036537629cda2565 (diff)
downloadmeta-openembedded-6457b3d77dde964a01833c6904a42092150edea5.tar.gz
syslog-ng: fix syslog-ng startup problem with systemd
1. Fix syslog-ng service cannot startup after upgrade to 3.15.1 1) Align path of syslog-ng.conf between syslog-ng@default and do_install in syslog-ng.inc 2) create a default instance for syslog-ng 3) Install default parameter file to /etc/default according to https://github.com/balabit/syslog-ng/commit /649d1151e79033cc2b81b3353917507266814436 2. Fix "Failed to acquire /run/systemd/journal/syslog socket, disabling systemd-syslog source;" accordint to below content from syslog-ng admin guide. 1) for linux, If the host is running under systemd, syslog-ng OSE reads directly from the systemd journal file using the systemd-journal() source. 2) If possible, use the more reliable systemd-journal() driver instead. 3) The socket activation of systemd is buggy, causing some log messages to get lost during syst Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd155
-rw-r--r--meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit (renamed from meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf)0
-rw-r--r--meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch3
-rw-r--r--meta-oe/recipes-support/syslog-ng/syslog-ng.inc23
4 files changed, 172 insertions, 9 deletions
diff --git a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
new file mode 100644
index 000000000..9e910caa1
--- /dev/null
+++ b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
@@ -0,0 +1,155 @@
1@version: 3.15
2#
3# Syslog-ng configuration file, compatible with default Debian syslogd
4# installation. Originally written by anonymous (I can't find his name)
5# Revised, and rewrited by me (SZALAY Attila <sasa@debian.org>)
6
7# First, set some global options.
8options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
9 owner("root"); group("adm"); perm(0640); stats_freq(0);
10 bad_hostname("^gconfd$");
11};
12
13########################
14# Sources
15########################
16# This is the default behavior of sysklogd package
17# Logs may come from unix stream, but not from another machine.
18#
19source s_src { systemd_journal(); internal();
20 file("/proc/kmsg" program_override("kernel"));
21};
22
23# If you wish to get logs from remote machine you should uncomment
24# this and comment the above source line.
25#
26#source s_net { tcp(ip(127.0.0.1) port(1000) authentication(required) encrypt(allow)); };
27
28########################
29# Destinations
30########################
31# First some standard logfile
32#
33destination d_auth { file("/var/log/auth.log"); };
34destination d_cron { file("/var/log/cron.log"); };
35destination d_daemon { file("/var/log/daemon.log"); };
36destination d_kern { file("/var/log/kern.log"); };
37destination d_lpr { file("/var/log/lpr.log"); };
38destination d_mail { file("/var/log/mail.log"); };
39destination d_syslog { file("/var/log/syslog"); };
40destination d_user { file("/var/log/user.log"); };
41destination d_uucp { file("/var/log/uucp.log"); };
42
43# This files are the log come from the mail subsystem.
44#
45destination d_mailinfo { file("/var/log/mail/mail.info"); };
46destination d_mailwarn { file("/var/log/mail/mail.warn"); };
47destination d_mailerr { file("/var/log/mail/mail.err"); };
48
49# Logging for INN news system
50#
51destination d_newscrit { file("/var/log/news/news.crit"); };
52destination d_newserr { file("/var/log/news/news.err"); };
53destination d_newsnotice { file("/var/log/news/news.notice"); };
54
55# Some 'catch-all' logfiles.
56#
57destination d_debug { file("/var/log/debug"); };
58destination d_error { file("/var/log/error"); };
59destination d_messages { file("/var/log/messages"); };
60
61# The root's console.
62#
63destination d_console { usertty("root"); };
64
65# Virtual console.
66#
67destination d_console_all { file("/dev/tty10"); };
68
69# The named pipe /dev/xconsole is for the nsole' utility. To use it,
70# you must invoke nsole' with the -file' option:
71#
72# $ xconsole -file /dev/xconsole [...]
73#
74destination d_xconsole { pipe("/dev/xconsole"); };
75
76# Send the messages to an other host
77#
78#destination d_net { tcp("127.0.0.1" port(1000) authentication(on) encrypt(on) log_fifo_size(1000)); };
79
80# Debian only
81destination d_ppp { file("/var/log/ppp.log"); };
82
83########################
84# Filters
85########################
86# Here's come the filter options. With this rules, we can set which
87# message go where.
88
89filter f_dbg { level(debug); };
90filter f_info { level(info); };
91filter f_notice { level(notice); };
92filter f_warn { level(warn); };
93filter f_err { level(err); };
94filter f_crit { level(crit .. emerg); };
95
96filter f_debug { level(debug) and not facility(auth, authpriv, news, mail); };
97filter f_error { level(err .. emerg) ; };
98filter f_messages { level(info,notice,warn) and
99 not facility(auth,authpriv,cron,daemon,mail,news); };
100
101filter f_auth { facility(auth, authpriv) and not filter(f_debug); };
102filter f_cron { facility(cron) and not filter(f_debug); };
103filter f_daemon { facility(daemon) and not filter(f_debug); };
104filter f_kern { facility(kern) and not filter(f_debug); };
105filter f_lpr { facility(lpr) and not filter(f_debug); };
106filter f_local { facility(local0, local1, local3, local4, local5,
107 local6, local7) and not filter(f_debug); };
108filter f_mail { facility(mail) and not filter(f_debug); };
109filter f_news { facility(news) and not filter(f_debug); };
110filter f_syslog3 { not facility(auth, authpriv, mail) and not filter(f_debug); };
111filter f_user { facility(user) and not filter(f_debug); };
112filter f_uucp { facility(uucp) and not filter(f_debug); };
113
114filter f_cnews { level(notice, err, crit) and facility(news); };
115filter f_cother { level(debug, info, notice, warn) or facility(daemon, mail); };
116
117filter f_ppp { facility(local2) and not filter(f_debug); };
118filter f_console { level(warn .. emerg); };
119
120########################
121# Log paths
122########################
123log { source(s_src); filter(f_auth); destination(d_auth); };
124log { source(s_src); filter(f_cron); destination(d_cron); };
125log { source(s_src); filter(f_daemon); destination(d_daemon); };
126log { source(s_src); filter(f_kern); destination(d_kern); };
127log { source(s_src); filter(f_lpr); destination(d_lpr); };
128log { source(s_src); filter(f_syslog3); destination(d_syslog); };
129log { source(s_src); filter(f_user); destination(d_user); };
130log { source(s_src); filter(f_uucp); destination(d_uucp); };
131
132log { source(s_src); filter(f_mail); destination(d_mail); };
133#log { source(s_src); filter(f_mail); filter(f_info); destination(d_mailinfo); };
134#log { source(s_src); filter(f_mail); filter(f_warn); destination(d_mailwarn); };
135#log { source(s_src); filter(f_mail); filter(f_err); destination(d_mailerr); };
136
137log { source(s_src); filter(f_news); filter(f_crit); destination(d_newscrit); };
138log { source(s_src); filter(f_news); filter(f_err); destination(d_newserr); };
139log { source(s_src); filter(f_news); filter(f_notice); destination(d_newsnotice); };
140#log { source(s_src); filter(f_cnews); destination(d_console_all); };
141#log { source(s_src); filter(f_cother); destination(d_console_all); };
142
143#log { source(s_src); filter(f_ppp); destination(d_ppp); };
144
145log { source(s_src); filter(f_debug); destination(d_debug); };
146log { source(s_src); filter(f_error); destination(d_error); };
147log { source(s_src); filter(f_messages); destination(d_messages); };
148
149log { source(s_src); filter(f_console); destination(d_console_all);
150 destination(d_xconsole); };
151log { source(s_src); filter(f_crit); destination(d_console); };
152
153# All messages send to a remote site
154#
155#log { source(s_src); destination(d_net); };
diff --git a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
index fb183ee17..fb183ee17 100644
--- a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf
+++ b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
diff --git a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
index dc2ba167a..39c3f59ce 100644
--- a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
+++ b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
@@ -32,10 +32,11 @@ index 02da288..3a8215d 100644
32--- a/contrib/systemd/syslog-ng@default 32--- a/contrib/systemd/syslog-ng@default
33+++ b/contrib/systemd/syslog-ng@default 33+++ b/contrib/systemd/syslog-ng@default
34@@ -1,5 +1,5 @@ 34@@ -1,5 +1,5 @@
35 CONFIG_FILE=/etc/syslog-ng.conf 35-CONFIG_FILE=/etc/syslog-ng.conf
36-PERSIST_FILE=/var/lib/syslog-ng/syslog-ng.persist 36-PERSIST_FILE=/var/lib/syslog-ng/syslog-ng.persist
37-CONTROL_FILE=/var/lib/syslog-ng/syslog-ng.ctl 37-CONTROL_FILE=/var/lib/syslog-ng/syslog-ng.ctl
38-PID_FILE=/var/run/syslog-ng.pid 38-PID_FILE=/var/run/syslog-ng.pid
39+CONFIG_FILE=/etc/syslog-ng/syslog-ng.conf
39+PERSIST_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.persist 40+PERSIST_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.persist
40+CONTROL_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.ctl 41+CONTROL_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.ctl
41+PID_FILE=@LOCALSTATEDIR@/run/syslog-ng.pid 42+PID_FILE=@LOCALSTATEDIR@/run/syslog-ng.pid
diff --git a/meta-oe/recipes-support/syslog-ng/syslog-ng.inc b/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
index cf6a3de49..09c2f5124 100644
--- a/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
+++ b/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
@@ -16,7 +16,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=24c0c5cb2c83d9f2ab725481e4df5240"
16DEPENDS = "libpcre flex glib-2.0 openssl util-linux" 16DEPENDS = "libpcre flex glib-2.0 openssl util-linux"
17 17
18SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \ 18SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \
19 file://syslog-ng.conf \ 19 file://syslog-ng.conf.systemd \
20 file://syslog-ng.conf.sysvinit \
20 file://initscript \ 21 file://initscript \
21 file://volatiles.03_syslog-ng \ 22 file://volatiles.03_syslog-ng \
22 file://configure.ac-add-option-enable-thread-tls-to-manage-.patch \ 23 file://configure.ac-add-option-enable-thread-tls-to-manage-.patch \
@@ -71,7 +72,6 @@ do_configure_prepend() {
71 72
72do_install_append() { 73do_install_append() {
73 install -d ${D}/${sysconfdir}/${BPN} 74 install -d ${D}/${sysconfdir}/${BPN}
74 install ${WORKDIR}/syslog-ng.conf ${D}${sysconfdir}/${BPN}/${BPN}.conf
75 install -d ${D}/${sysconfdir}/init.d 75 install -d ${D}/${sysconfdir}/init.d
76 install -m 755 ${WORKDIR}/initscript ${D}/${sysconfdir}/init.d/syslog 76 install -m 755 ${WORKDIR}/initscript ${D}/${sysconfdir}/init.d/syslog
77 install -d ${D}/${sysconfdir}/default/volatiles/ 77 install -d ${D}/${sysconfdir}/default/volatiles/
@@ -82,17 +82,24 @@ do_install_append() {
82 82
83 # support for systemd 83 # support for systemd
84 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then 84 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
85 install ${WORKDIR}/syslog-ng.conf.systemd ${D}${sysconfdir}/${BPN}/${BPN}.conf
86
85 install -d ${D}${systemd_unitdir}/system/ 87 install -d ${D}${systemd_unitdir}/system/
86 install -m 0644 ${S}/contrib/systemd/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@.service 88 install -m 0644 ${S}/contrib/systemd/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@.service
87 install -m 0644 ${S}/contrib/systemd/${BPN}@default ${D}${systemd_unitdir}/system/${BPN}@default 89 install -m 0644 ${S}/contrib/systemd/${BPN}@default ${D}${sysconfdir}/default/${BPN}@default
90
91 sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
92 sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
93 sed -i -e 's,@BASEBINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
88 94
89 sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@default 95 install -d ${D}${systemd_unitdir}/system/multi-user.target.wants
90 sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@default 96 ln -sf ../${BPN}@.service ${D}${systemd_unitdir}/system/multi-user.target.wants/${BPN}@default.service
91 sed -i -e 's,@BASEBINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@default 97 else
98 install ${WORKDIR}/syslog-ng.conf.sysvinit ${D}${sysconfdir}/${BPN}/${BPN}.conf
92 fi 99 fi
93} 100}
94 101
95FILES_${PN} += "${datadir}/include/scl/ ${datadir}/xsd ${datadir}/tools" 102FILES_${PN} += "${datadir}/include/scl/ ${datadir}/xsd ${datadir}/tools ${systemd_unitdir}/system/multi-user.target.wants/*"
96RDEPENDS_${PN} += "gawk ${@bb.utils.contains('PACKAGECONFIG','json','${PN}-jconf','',d)}" 103RDEPENDS_${PN} += "gawk ${@bb.utils.contains('PACKAGECONFIG','json','${PN}-jconf','',d)}"
97 104
98FILES_${PN}-jconf += " \ 105FILES_${PN}-jconf += " \
@@ -124,7 +131,7 @@ RCONFLICTS_${PN} = "busybox-syslog sysklogd rsyslog"
124RPROVIDES_${PN} += "${PN}-systemd" 131RPROVIDES_${PN} += "${PN}-systemd"
125RREPLACES_${PN} += "${PN}-systemd" 132RREPLACES_${PN} += "${PN}-systemd"
126RCONFLICTS_${PN} += "${PN}-systemd" 133RCONFLICTS_${PN} += "${PN}-systemd"
127SYSTEMD_SERVICE_${PN} = "${BPN}@default ${BPN}@.service" 134SYSTEMD_SERVICE_${PN} = "${BPN}@.service"
128 135
129INITSCRIPT_NAME = "syslog" 136INITSCRIPT_NAME = "syslog"
130INITSCRIPT_PARAMS = "start 20 2 3 4 5 . stop 90 0 1 6 ." 137INITSCRIPT_PARAMS = "start 20 2 3 4 5 . stop 90 0 1 6 ."