NewBe syslog-ng and fedora core 5 64+bit
Hi This is the first time I'm using syslog-ng and I'm trying to log all data to a mysql database ... when I start the service I get the following errors .. [root@greg syslog-ng]# service syslog-ng restart Stopping syslog-ng: [FAILED] Starting syslog-ng: Warning: No source refers to internal messages, they'll go to /dev/null unresolved reference: inputs Error initializing configuration, exiting. [FAILED] [root@greg syslog-ng]# this is my config file # syslog-ng central log host configuration file # # # ##################################################################### # General options options { check_hostname(yes); keep_hostname(yes); chain_hostnames(no); }; # Other important general options # use_fqdn(yes); # sync(0); # keep_hostname(yes); # chain_hostnames(no); # create_dirs(yes); ##################################################################### # Define syslog input stream # This is specific to Solaris 9 #source inputs { internal(); # sun-streams("/dev/log" door("/var/run/syslog_door")); # tcp(max_connections(1000)); }; # For newer versions of Linux (Debian GNU/Linux woody, # and RedHat Linux post 7.0) # source stdlog { unix-dgram("/dev/log"); }; <<<<<<<<<<<<<<<< How should this be defined for fedora core ? ##################################################################### # Define filters # Level Filters filter f_emerg { level (emerg); }; filter f_alert { level (alert .. emerg); }; filter f_crit { level (crit .. emerg); }; filter f_err { level (err .. emerg); }; filter f_warning { level (warning .. emerg); }; filter f_notice { level (notice .. emerg); }; filter f_info { level (info .. emerg); }; filter f_debug { level (debug .. emerg); }; # Facility Filters filter f_kern { facility (kern); }; filter f_user { facility (user); }; filter f_mail { facility (mail); }; filter f_daemon { facility (daemon); }; filter f_auth { facility (auth); }; filter f_syslog { facility (syslog); }; filter f_lpr { facility (lpr); }; filter f_news { facility (news); }; filter f_uucp { facility (uucp); }; filter f_cron { facility (cron); }; filter f_local0 { facility (local0); }; filter f_local1 { facility (local1); }; filter f_local2 { facility (local2); }; filter f_local3 { facility (local3); }; filter f_local4 { facility (local4); }; filter f_local5 { facility (local5); }; filter f_local6 { facility (local6); }; filter f_local7 { facility (local7); }; # syslog-ng stats filter filter f_n_stats { not match("STATS: dropped 0"); }; # syslog-ng "connect from filter filter f_n_connected { not match("AF_INET client connected from"); }; ##################################################################### # Define where the logs can be stored # Log log files destination logpile { file("/var/syslog-ng/$HOST/$YEAR/$MONTH/$FACILITY.$YEAR$MONTH$DAY" owner(root) group(root) perm(0600) create_dirs(yes) dir_perm(0700)); }; # Console log destination console { file("/dev/sysmsg"); }; # Linux Console # destination console { file("/dev/console"); }; # MySQL Database destination d_mysql { pipe("/var/run/mysql.pipe" template("INSERT INTO logs (host, facility, priority, level, tag, date, time, program, msg) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL','$TAG', '$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$PROGRAM', '$MSG' );\n") template-escape(yes)); }; ##################################################################### # Define logging # Local log log { source(inputs); filter(f_n_stats); filter(f_notice); filter(f_n_connected); destination(logpile); }; # Console log { source(inputs); filter(f_n_stats); filter(f_err); filter(f_n_connected); destination(console); }; # MySQL Database log { source(inputs); filter(f_n_stats); filter(f_notice); filter(f_n_connected); destination(d_mysql); }; -- Gregory Machin gregory.machin@gmail.com www.linuxpro.co.za
ok ... I have it logging to file ... But still not to mysql ... this is the back script used to create the pipe #!/bin/bash # # Script to create a named pipe so syslog-ng messages # can be sent to a MySQL database # if [ -p /var/run/mysql.pipe ]; then /usr/bin/mysql -u syslog_ng --password=syslog_ng syslog_ng < /var/run/mysql.pipe & else mkfifo /var/run/mysql.pipe fi this is the config file ... # syslog-ng configuration file. # # This should behave pretty much like the original syslog on RedHat. But # it could be configured a lot smarter. # # See syslog-ng(8) and syslog-ng.conf(5) for more information. # # 20000925 gb@sysfive.com # # Updated by Frank Crawford (<Frank.Crawford@ac3.com.au>) - 10 Aug 2002 # - for Red Hat 7.3 # - totally do away with klogd # - add message "kernel:" as is done with klogd. # # Updated by Frank Crawford (<Frank.Crawford@ac3.com.au>) - 22 Aug 2002 # - use the log_prefix option as per Balazs Scheidler's email # # Updated by Jose Pedro Oliveira (<jpo at di.uminho.pt>) - 05 Apr 2003 # - corrected filters 'f_filter2' and 'f_filter6' # these filters were only allowing messages of one specific # priority level; they should be allowing messages from that # priority and upper levels. # # Updated by Jose Pedro Oliveira (<jpo at di.uminho.pt>) - 25 Jan 2005 # - Don't sync the d_mail destination # # Updated by Jose Pedro Oliveira (<jpo at di.uminho.pt>) - 01 Feb 2005 # - /proc/kmsg is a file not a pipe. # ( https://lists.balabit.hu/pipermail/syslog-ng/2005-February/006963.html) # options { # sync (0); # time_reopen (10); # log_fifo_size (1000); # long_hostnames (off); # use_dns (no); # use_fqdn (no); # create_dirs (no); chain_hostnames(no); check_hostname(yes); keep_hostname (yes); }; source s_sys { file ("/proc/kmsg" log_prefix("kernel: ")); unix-stream ("/dev/log"); internal(); # udp(ip(0.0.0.0) port(514)); }; destination d_cons { file("/dev/console"); }; destination d_mesg { file("/var/syslog-ng/messages"); }; destination d_auth { file("/var/syslog-ng/secure"); }; destination d_mail { file("/var/syslog-ng/maillog" sync(10)); }; destination d_spol { file("/var/syslog-ng/spooler"); }; destination d_boot { file("/var/syslog-ng/boot.log"); }; destination d_cron { file("/var/syslog-ng/cron"); }; destination d_mlal { usertty("*"); }; destination d_mysql { pipe("/var/run/mysql.pipe" template("INSERT INTO logs (host, facility, priority, level, tag, date, time, program, msg) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL','$TAG', '$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$PROGRAM', '$MSG' );\n") template-escape(yes)); }; filter f_filter1 { facility(kern); }; filter f_filter2 { level(info..emerg) and not facility(mail,authpriv,cron); }; filter f_filter3 { facility(authpriv); }; filter f_filter4 { facility(mail); }; filter f_filter5 { level(emerg); }; filter f_filter6 { facility(uucp) or (facility(news) and level(crit..emerg)); }; filter f_filter7 { facility(local7); }; filter f_filter8 { facility(cron); }; log { source(s_sys); filter(f_filter1); destination(d_cons); }; log { source(s_sys); filter(f_filter2); destination(d_mesg); }; log { source(s_sys); filter(f_filter3); destination(d_auth); }; log { source(s_sys); filter(f_filter4); destination(d_mail); }; log { source(s_sys); filter(f_filter5); destination(d_mlal); }; log { source(s_sys); filter(f_filter6); destination(d_spol); }; log { source(s_sys); filter(f_filter7); destination(d_boot); }; log { source(s_sys); filter(f_filter8); destination(d_cron); }; # MySQL Database log { source(s_sys); filter(f_filter1); filter(f_filter2); filter(f_filter3); filter(f_filter4); filter(f_filter5); filter(f_filter6); filter(f_filter7); filter(f_filter8); destination(d_mysql); }; Any ideas on what I have missed ? Many Thanks
Gregory Machin wrote:
# MySQL Database
log { source(s_sys); filter(f_filter1); filter(f_filter2); filter(f_filter3); filter(f_filter4); filter(f_filter5); filter(f_filter6); filter(f_filter7); filter(f_filter8); destination(d_mysql); };
These filters guarantee that nothing will be logged to the mysql server: ALL of the filters must MATCH on the log to get to the destination. You have several different facilities in the filters, and one log message has only one facility. -- Sandor Geller wildy@balabit.hu
Oops .. misread the docs .. thanks for clearing it up ... working grate ... On 9/21/06, Sandor Geller <wildy@balabit.hu> wrote:
Gregory Machin wrote:
# MySQL Database
log { source(s_sys); filter(f_filter1); filter(f_filter2); filter(f_filter3); filter(f_filter4); filter(f_filter5); filter(f_filter6); filter(f_filter7); filter(f_filter8); destination(d_mysql); };
These filters guarantee that nothing will be logged to the mysql server: ALL of the filters must MATCH on the log to get to the destination. You have several different facilities in the filters, and one log message has only one facility.
-- Sandor Geller wildy@balabit.hu _______________________________________________ syslog-ng maillist - syslog-ng@lists.balabit.hu https://lists.balabit.hu/mailman/listinfo/syslog-ng Frequently asked questions at http://www.campin.net/syslog-ng/faq.html
-- Gregory Machin gregory.machin@gmail.com www.linuxpro.co.za
This is the first time I'm using syslog-ng and I'm trying to log all data to a mysql database ... when I start the service I get the following errors ..
[root@greg syslog-ng]# service syslog-ng restart Stopping syslog-ng: [FAILED] Starting syslog-ng: Warning: No source refers to internal messages, they'll go to /dev/null unresolved reference: inputs
You set a reference to inputs, which is not defined in your configuration file.
# syslog-ng central log host configuration file # # # ##################################################################### # General options
options { check_hostname(yes); keep_hostname(yes); chain_hostnames(no); };
# Other important general options
# use_fqdn(yes); # sync(0); # keep_hostname(yes); # chain_hostnames(no); # create_dirs(yes);
##################################################################### # Define syslog input stream # This is specific to Solaris 9
#source inputs { internal(); # sun-streams("/dev/log" door("/var/run/syslog_door")); # tcp(max_connections(1000)); };
Since this is commented out (for obvious reasons)
# For newer versions of Linux (Debian GNU/Linux woody, # and RedHat Linux post 7.0) # source stdlog { unix-dgram("/dev/log"); }; <<<<<<<<<<<<<<<< How should this be defined for fedora core ?
Try following: source inputs { internal(); unix-dgram("/dev/log"); };
##################################################################### # Define filters
# Level Filters filter f_emerg { level (emerg); }; filter f_alert { level (alert .. emerg); }; filter f_crit { level (crit .. emerg); }; filter f_err { level (err .. emerg); }; filter f_warning { level (warning .. emerg); }; filter f_notice { level (notice .. emerg); }; filter f_info { level (info .. emerg); }; filter f_debug { level (debug .. emerg); };
# Facility Filters filter f_kern { facility (kern); }; filter f_user { facility (user); }; filter f_mail { facility (mail); }; filter f_daemon { facility (daemon); }; filter f_auth { facility (auth); }; filter f_syslog { facility (syslog); }; filter f_lpr { facility (lpr); }; filter f_news { facility (news); }; filter f_uucp { facility (uucp); }; filter f_cron { facility (cron); }; filter f_local0 { facility (local0); }; filter f_local1 { facility (local1); }; filter f_local2 { facility (local2); }; filter f_local3 { facility (local3); }; filter f_local4 { facility (local4); }; filter f_local5 { facility (local5); }; filter f_local6 { facility (local6); }; filter f_local7 { facility (local7); };
# syslog-ng stats filter filter f_n_stats { not match("STATS: dropped 0"); };
# syslog-ng "connect from filter filter f_n_connected { not match("AF_INET client connected from"); };
##################################################################### # Define where the logs can be stored
# Log log files destination logpile { file("/var/syslog-ng/$HOST/$YEAR/$MONTH/$FACILITY.$YEAR$MONTH$DAY" owner(root) group(root) perm(0600) create_dirs(yes) dir_perm(0700)); };
# Console log destination console { file("/dev/sysmsg"); };
# Linux Console # destination console { file("/dev/console"); };
# MySQL Database destination d_mysql { pipe("/var/run/mysql.pipe" template("INSERT INTO logs (host, facility, priority, level, tag, date, time, program, msg) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL','$TAG', '$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$PROGRAM', '$MSG' );\n") template-escape(yes)); };
Why not insert the date and time as MySQL timestamp or date field?
##################################################################### # Define logging
# Local log log { source(inputs);
"inputs" is not defined in the source section of the configuration
filter(f_n_stats); filter(f_notice); filter(f_n_connected); destination(logpile); };
# Console log { source(inputs);
"inputs" is not defined in the source section of the configuration
filter(f_n_stats); filter(f_err); filter(f_n_connected); destination(console); };
# MySQL Database log { source(inputs);
"inputs" is not defined in the source section of the configuration
filter(f_n_stats); filter(f_notice); filter(f_n_connected); destination(d_mysql); };
Best regards, Roberto Nibali, ratz -- echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq' | dc
participants (3)
-
Gregory Machin
-
Roberto Nibali
-
Sandor Geller