Перейти к содержанию

Рекомендуемые сообщения

Опубликовано
2 часа назад, PASPARTU сказал:


Вроде можно ещё фильтры прикрутить.


Отправлено с моего iPhone используя Tapatalk

275912746_.png.d5a9ca1a525a7cbf05ce2dff04c6cac4.png шото не хотит

  • Ответов 187
  • Создана
  • Последний ответ

Топ авторов темы

Опубликовано

Что то у вас там неправильно:

нужно лишь вставить строку

destination messages {
        file("/opt/var/log/messages_${SOURCEIP}");

};

Вместо 

destination messages {
        file("/opt/var/log/messages;

};

 

Опубликовано
2 минуты назад, Roman_Petrov сказал:

Что то у вас там неправильно:

нужно лишь вставить строку

destination messages {
        file("/opt/var/log/messages_${SOURCEIP}");

};

Вместо 

destination messages {
        file("/opt/var/log/messages;

};

 

Дык, а что я делаю не так?

Опубликовано
5 минут назад, PASPARTU сказал:

Дык, а что я делаю не так?

Вам нужно изменить только одну строчку, которая отвечает за расположение файла лога, как выше написано. Это вы выше оставили скрин файла конфигурации? Если нет, то скопируйте содержимое сюда для осмотра

Опубликовано
Вам нужно изменить только одну строчку, которая отвечает за расположение файла лога, как выше написано. Это вы выше оставили скрин файла конфигурации? Если нет, то скопируйте содержимое сюда для осмотра

Да это скрин конфига


Отправлено с моего iPhone используя Tapatalk
Опубликовано
Только что, Roman_Petrov сказал:

Там неправильно тогда, меняйте только одну единственную строчку на другую, как я выше написал. Должно так быть

@version:3.9

options {
        chain_hostnames(no);
        create_dirs(yes);
        flush_lines(0);
        keep_hostname(yes);
        log_fifo_size(256);
        log_msg_size(1024);
        stats_freq(0);
        flush_lines(0);
        use_fqdn(no);
};

source net {
        udp(ip(192.16.200.200) port(514));
         udp(ip(192.16.200.201) port(514));
};

source kernel {
        file("/proc/kmsg" program_override("kernel"));
};

 destination messages {
        file("/opt/var/log/messages_${SOURCEIP}");

};

log {
#        source(src);
        source(net);
        source(kernel);
        destination(messages);
};

# put any customization files in this directory

 

 

Так?

Опубликовано
5 минут назад, PASPARTU сказал:

@version:3.9

options {
        chain_hostnames(no);
        create_dirs(yes);
        flush_lines(0);
        keep_hostname(yes);
        log_fifo_size(256);
        log_msg_size(1024);
        stats_freq(0);
        flush_lines(0);
        use_fqdn(no);
};

source net {
        udp(ip(192.16.200.200) port(514));
         udp(ip(192.16.200.201) port(514));
};

source kernel {
        file("/proc/kmsg" program_override("kernel"));
};

destination messages {    file("/opt/var/log/messages_${SOURCEIP}");

};

log {
#        source(src);
        source(net);
        source(kernel);
        destination(messages);
};

# put any customization files in this directory

 

 

Так?

Да, вроде все правильно, только пробелы лишние надо убрать, выше поправил 

Опубликовано
3 минуты назад, Roman_Petrov сказал:

Да, вроде все правильно, только пробелы лишние надо убрать, выше поправил 

вообще перестал писать лог

Опубликовано (изменено)

Это в файле конфигурации с синтаксисом проблемы. Где то что то осталось. По сути должно работать все, если вы аккуратно замените строку 

file("/opt/var/log/messages;");

На 

file("/opt/var/log/messages_${SOURCEIP}");

 

Не внося больше пробелов и прочих неточностей.

Изменено пользователем Roman_Petrov
Опубликовано
1 минуту назад, Roman_Petrov сказал:

Гарантировать на 100% я тоже не могу, пока сам не попробовал. Пока времени нет, скорее всего только на выходных получиться.

походу что то сломалось,буду курить маны на английском

Опубликовано
2 минуты назад, PASPARTU сказал:

походу что то сломалось,буду курить маны на английском

Попробуйте или снесите и по новой поставтье просто

Опубликовано
В 17.08.2020 в 20:24, Roman_Petrov сказал:

Попробуйте или снесите и по новой поставтье просто

Проблема решилась вот так,

};
source net {
        udp(ip(192.168.11.1) port(514)); (роутер с внешним HDD куда все логи пишутся)
};
source kernel {
        file("/proc/kmsg" program_override("kernel"));
};
destination messages {
        file("/opt/var/log//messages_${SOURCEIP}"); ( кому не понятно, сюда IP адресса писать не нужно, просто "messages_"${SOURCEIP");"

 

Потом как время будет попробую разобраться с фильтрами что бы был лог

не messages_IP а LogHOME.LogIrinaRouter.Log OpenVPN.logL2TP. и тд и тп.

если афтор топика сможет сам сделать ман как это привести к более рабочему виду , я буду примного благодарен. в текущем виде это не куда не годится годится. Логи с сервисов и разных игрушек собирать так не удобно.

Опубликовано
В 19.08.2020 в 18:16, PASPARTU сказал:

Проблема решилась вот так,

};
source net {
        udp(ip(192.168.11.1) port(514)); (роутер с внешним HDD куда все логи пишутся)
};
source kernel {
        file("/proc/kmsg" program_override("kernel"));
};
destination messages {
        file("/opt/var/log//messages_${SOURCEIP}"); ( кому не понятно, сюда IP адресса писать не нужно, просто "messages_"${SOURCEIP");"

Извините за поздний ответ, чтобы мне было легче попробовать и понять, выложите пожалуйста целиком свой файл конфигурации (просто copy-paste), потому что на первый взгляд мне не совсем понятно, что отличается от мною предложенного варианта. Сколько у вас устройств в локальной/публичной сетях, откуда собираются логи и открывали ли вы порт 514 в межсетьевом экране, если есть устройства в публичной сети, как я предлагал в описании. 

Опубликовано
В 21.08.2020 в 01:18, Roman_Petrov сказал:

Извините за поздний ответ, чтобы мне было легче попробовать и понять, выложите пожалуйста целиком свой файл конфигурации (просто copy-paste), потому что на первый взгляд мне не совсем понятно, что отличается от мною предложенного варианта. Сколько у вас устройств в локальной/публичной сетях, откуда собираются логи и открывали ли вы порт 514 в межсетьевом экране, если есть устройства в публичной сети, как я предлагал в описании. 

@version:3.9
options {
        chain_hostnames(no);
        create_dirs(yes);
        flush_lines(0);
        keep_hostname(yes);
        log_fifo_size(256);
        log_msg_size(1024);
        stats_freq(0);
        flush_lines(0);
        use_fqdn(no);
};
source src {
        internal();
        unix-dgram("/dev/log");
};
source net {
        udp(ip(192.168.11.1) port(514));
};
source kernel {
        file("/proc/kmsg" program_override("kernel"));
};
destination messages {
        file("/opt/var/log//logFile_${SOURCEIP}");
};
log {
        source(src);
        source(net);
        source(kernel);
        destination(messages);
};
# put any customization files in this directory
# @include "/opt/etc/syslog-ng.d/"

 

 

в новой версии как я понял новый синтаксис, об этом говорить сам syslog-ng при запуске

 

  • 1 год спустя...
  • 7 месяцев спустя...
Опубликовано (изменено)

Что-то я запутался в рассуждениях ТС:

В 27.07.2016 в 20:23, Roman_Petrov сказал:

пробуйте такой вариант (фрагмент конфига, где в разделе src убрана строка unix-stream("/dev/log"); ), как предложил @gvan

@gvan вроде как предложил как раз-таки строку НЕ УБИРАТЬ:

В 02.08.2016 в 16:48, gvan сказал:

Объединил предложенную запись с системным логгерами:

source src { udp(ip(192.168.1.1) port(514)); internal(); unix-stream("/dev/log"); };

Так как в итоге правильно?

Мой конфиг (хочу класть логи в корень флешки):

#############################################################################
# OpenWrt syslog-ng.conf specific file
# which collects all local logs into a single file called /var/log/messages.
# More details about these settings can be found here:
# https://www.syslog-ng.com/technical-documents/list/syslog-ng-open-source-edition

@version: 3.36
# @include "scl.conf"

options {
        chain_hostnames(no); # Enable or disable the chained hostname format.
        create_dirs(yes);
        keep_hostname(yes); # Enable or disable hostname rewriting.
        log_fifo_size(256); # The number of messages that the output queue can store.
        log_msg_size(1024); # Maximum length of a message in bytes.
        stats_freq(0); # The period between two STATS messages (sent by syslog-ng, containing statistics about dropped logs) in seconds.
        flush_lines(0); # How many lines are flushed to a destination at a time.
        use_fqdn(no); # Add Fully Qualified Domain Name instead of short hostname.
};

# syslog-ng gets messages from syslog-ng (internal) and from /dev/log

source src {
        udp(ip(192.168.0.1) port(514));
        internal();
        unix-dgram("/dev/log");
};

source net {
        udp(ip(192.168.0.1) port(514));
};

# source s_network {
#       default-network-drivers(
                # NOTE: TLS support
                #
                # the default-network-drivers() source driver opens the TLS
                # enabled ports as well, however without an actual key/cert
                # pair they will not operate and syslog-ng would display a
                # warning at startup.
                #
                #tls(key-file("/path/to/ssl-private-key") cert-file("/path/to/ssl-cert"))
#       );
# };

source kernel {
        file("/proc/kmsg" program_override("kernel"));
};

destination messages {
        file("/opt/messages");
};

log {
        source(src);
        source(net);
        source(kernel);
        destination(messages);

        # uncomment this line to open port 514 to receive messages
        #source(s_network);
};

#
# Finally, include any user settings last so that s/he can override or
# supplement all "canned" settings inherited from the distribution.
#
#@include "/opt/etc/syslog-ng.d/" # Put any customization files in this directory

Создал в /opt файл messages, дал ему права 777. Syslog стартанул, в роутере адрес указал, но сам файл /opt/messages остается быть пустым. Что может быть не так, подскажите, пожалуйста?

Пробовал указывать:

destination messages {
        file("/opt/var/log//logFile_${SOURCEIP}");
}

- также ничего не пишется.

---------

UPD: Со старой версией (3.9) типа в режиме совместимости заработало. Похоже, что для новых версий (в моем случае выше конфиг версии 3.36) надо что-то ещё указывать, чтобы работало... Буду признателен, если кто-то подскажет решение.

Изменено пользователем The_Immortal
  • 2 недели спустя...
Опубликовано

Здравствуйте,

----

Что может быть не так, подскажите... Буду признателен, если кто-то подскажет решение....

Вам нужно пашагово все сделать так как написано в шапке сообщения и будет вам счастье. Версия 3.9 точно будет работать. В описании также есть пометка, которую стоит прочесть, если вы обновляетесь с более ранних версий. В конце концов, иногда все легче снести и поставить по новой по описанию, чем разбираться что случилось... Опять же не забудьте про то что у вас должна быть установлена правильная версия OPKG, у многих это бывает истинной проблемой, почему все не работает. 

---

Пробовал указывать:

destination messages {
        file("/opt/var/log//logFile_${SOURCEIP}");
}

Это нужно только для ротации логов, т.е. если вы будете собирать логи с разных устройств и писать их в разные файлы, этой темой подробно занимался и описывал @gvan

 

 

  • 2 года спустя...
Опубликовано

Все работает.лог пишется. Но никак не могу настроить чтобы писал лог на ругой раздел диска где нет entware. Как прописать правильно в конфиге на отдельный раздел.  Раздел: /log такой записью не выходит

Опубликовано (изменено)
2 часа назад, vitslayer сказал:

Но никак не могу настроить чтобы писал лог на ругой раздел диска где нет entware.

destination messages {
        file("/opt/var/log/messages");
};

вместо /opt/var/log/messages указать другой путь вида /tmp/mnt/xxxx/папка_с_логами/файл_с_логами

разделы диска монтируются в /tmp/mnt/xxxx

можно в консоли выполнить команду

mount

и посмотреть, как при монтированы разделы и в конфиге указать путь.

Изменено пользователем project_fcc
  • 7 месяцев спустя...
Опубликовано

Никто не в курсе, как получить source аналогичный "ndmc -c show log" ?

Настраиваю в текущей версии syslog-ng (4.7). В ней, вроде, в этом плане больше возможностей.

По документации отсюда

Пока так 

# Collect all local logs into a single file /var/log/messages.
# See https://www.syslog-ng.com/technical-documents/list/syslog-ng-open-source-edition
# See https://github.com/balabit/syslog-ng-ose-guides

@version: 4.7
@include "scl.conf"

# cat /opt/etc/syslog-ng.conf | nocomments
###############################################################################
# /opt/etc/init.d/S01syslog-ng stop
# /opt/etc/init.d/S01syslog-ng start
# /opt/etc/init.d/S01syslog-ng restart
###############################################################################

options {
	chain_hostnames(no); # Enable or disable the chained hostname format.
	create_dirs(yes);
	keep_hostname(yes); # Enable or disable hostname rewriting.
	log_fifo_size(256); # The number of messages that the output queue can store.
	log_msg_size(1024); # Maximum length of a message in bytes.
	stats(freq(0)); # The period between two STATS messages (sent by syslog-ng, containing statistics about dropped logs) in seconds.
	flush_lines(1); # How many lines are flushed to a destination at a time.
	use_fqdn(no); # Add Fully Qualified Domain Name instead of short hostname.
	ts-format(iso);
};

source kernel {
	file("/proc/kmsg" program_override("kernel"));
};

source syslog {
	syslog();	# logger write
};

source ndm {
	program("/bin/ndm");
};

source src {
	internal();
	unix-stream("/dev/log");
#	unix-dgram("/dev/log");
};

source net {
	udp(ip(172.27.172.1) port(514));
	udp(ip(0.0.0.0) port(514));
};

filter f_ni_irm		{ not ( match("Information-request message" value("MESSAGE")) ); };
filter f_ni_sr		{ not ( match("Sending Reply" value("MESSAGE")) ); };

destination messages {
	file("/opt/var/log/messages" template("${ISODATE} (${PRIORITY}) ${MESSAGE}\n") time_zone("Europe/Moscow"));
};

destination debug {
	file("/opt/var/log/debuglog");
};

log {
	source(syslog);
	source(src);
	source(net);
	source(kernel);
	filter(f_ni_irm);
	filter(f_ni_sr);
	destination(messages);
};

log {
	source(syslog);
	source(src);
	source(net);
	source(kernel);
#	source(ndm);
	destination(debug);
};

# put any customization files in this directory
@include "/opt/etc/syslog-ng.d/"

 

Опубликовано (изменено)

Классная идея.

Всё получилось.
 

# Collect all local logs into a single file /var/log/messages.
# See https://www.syslog-ng.com/technical-documents/list/syslog-ng-open-source-edition
# See https://github.com/balabit/syslog-ng-ose-guides

@version: 4.7
@include "scl.conf"

# cat /opt/etc/syslog-ng.conf | nocomments
###############################################################################
# /opt/etc/init.d/S01syslog-ng stop
# /opt/etc/init.d/S01syslog-ng start
# /opt/etc/init.d/S01syslog-ng restart
###############################################################################

options {
	chain_hostnames(no); # Enable or disable the chained hostname format.
	create_dirs(yes);
	keep_hostname(yes); # Enable or disable hostname rewriting.
	log_fifo_size(256); # The number of messages that the output queue can store.
	log_msg_size(1024); # Maximum length of a message in bytes.
	stats(freq(0)); # The period between two STATS messages (sent by syslog-ng, containing statistics about dropped logs) in seconds.
	flush_lines(0); # How many lines are flushed to a destination at a time.
	use_fqdn(no); # Add Fully Qualified Domain Name instead of short hostname.
	ts-format(iso);
};

# syslog-ng gets messages from syslog-ng (internal) and from /dev/log

source src {
	internal();
	unix-dgram("/dev/log");
};

source net {
	#network_localhost();
	udp(ip(127.0.0.1) port(3127));
};

source kernel {
	file("/proc/kmsg" program_override("kernel"));
};

source syslog {
	syslog();	# logger write
};

source ndmc {
	file(
	    "/opt/var/log/ndmc.log"
#	    hook-commands(
#		startup("ndmc -c show log > /opt/var/log/ndmc.log")
#		shutdown(": > /opt/var/log/ndmc.log")
#	    )
	);
};

source ndm {
        program("/bin/ndm");
};


destination messages {
    file("/opt/var/log/messages" template("${ISODATE} (${PRIORITY}) ${MESSAGE}\n") time_zone("Europe/Moscow"));
};

destination debug {
    file("/opt/var/log/debuglog");
};


filter f_ni_irm		{ not ( match("Information-request message" value("MESSAGE")) ); };
filter f_ni_sr		{ not ( match("Sending Reply" value("MESSAGE")) ); };


log {
	source(src);
	source(net);
	source(kernel);
	source(syslog);
	filter(f_ni_irm);
	filter(f_ni_sr);
	destination(messages);
	# uncomment this line to open port 514 to receive messages
	#source(s_network);
};

log {
	source(src);
	source(net);
	source(kernel);
	source(syslog);
	source(ndmc);
#	source(ndm);
	destination(debug);
};


# Include any user settings last so that s/he can override or
# supplement all "canned" settings inherited from the distribution.
@include "/opt/etc/syslog-ng.d/" # Put any customization files in this directory

 

Пришлось поправить /opt/etc/init.d/S01syslog-ng
 

#!/bin/sh

ENABLED=yes
PROCS=syslog-ng
ARGS=""
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

ACTION=$1
BASENAME="$(basename $0)"
FLAGFILE="/opt/var/syslog-ng.flag"	# reboot flag
NDMCFILE="/opt/var/log/ndmc.log"

start() {
    rm $FLAGFILE 2>/dev/null
    return 0
}
stop() {
    echo -n "" > $FLAGFILE
    echo -n "" > $NDMCFILE
    return 0
}

case $ACTION in
start)
    if [ -f $FLAGFILE ]; then
	echo "===== soft reboot =====" > /dev/null
    else
	echo "===== hard reboot =====" | logger -p emerg -t syslog-ng
	ndmc -c system log server 127.0.0.1:3127
	ndmc -c show log > $NDMCFILE
    fi
    start
    ;;
stop|kill)
    stop
    ;;
restart)
    stop
    start
    ;;
*)
    echo "ACTION=unknown" | logger -p emerg -t syslog-ng
    ;;
esac

. /opt/etc/init.d/rc.func

Осталось только причесать.

Для начала подобрать template для source ndmc, чтобы дату отрезать. И с timezone разобраться.

Ну это уже надолго. Примеров в интернете мало.
 

Изменено пользователем _alex_
Опубликовано

А как-то можно повлиять на line wrap в команде "show log" ?

Приводит к line wrap в выводе команды

ndmc -c show log > /opt/var/log/ndmc.log

при запуске opkg

KeeneticOS version 4.02.C.5.0-0, copyright (c) 2010-2024 Keenetic Ltd.

This software is a subject of Keenetic Ltd. end-user licence agreement. By using it you agree on terms and conditions hereof. For more information
please check https://keenetic.com/legal

(config)> show log
=======================================================================================================================================================
  Time              Message
=======================================================================================================================================================
I [Jan  1 00:00:02] kernel: Booting Linux on physical CPU 0x0
I [Jan  1 00:00:02] kernel: Linux version 4.9-ndm-5 (developers@keenetic.com) (gcc version 13.2.0 (crosstool-NG 1.24.0-rc2-ndm-31-1 - NDMS Toolkit
                    1.0.0) ) #0 SMP Wed Dec 18 19:28:06 2024
I [Jan  1 00:00:02] kernel: Boot CPU: AArch64 Processor [410fd034]
I [Jan  1 00:00:02] kernel: Machine model: Keenetic KN-3812

 

Опубликовано
1 час назад, _alex_ сказал:

А как-то можно повлиять на line wrap в команде "show log" ?

Если есть stty, можно так

stty cols 512; ndmc -c show log > /opt/var/log/ndmc.log

 

Опубликовано (изменено)

При рестарте по питанию stty cols 512; хоть и не генерит ошибок, но не отрабатывает

в /opt/etc/init.d/S01syslog-ng

line wrap срабатывает на 63 символа

#!/bin/sh

ENABLED=yes
PROCS=syslog-ng
ARGS=""
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ACTION=$1
BASENAME="$(basename $0)"
FLAGFILE="/opt/var/syslog-ng.flag"	# reboot flag
NDMCFILE="/tmp/mnt/USB/log/ndmc.log"
PARTLINE="$(echo `yes =|head -50`|tr -d ' ')"
FIRSTLINE="kernel: ${PARTLINE} hard reboot ${PARTLINE}"

start() {
    rm $FLAGFILE 2>/dev/null
    return 0
}
stop() {
    echo -n "" > $FLAGFILE
    echo -n "" > $NDMCFILE
    return 0
}

case $ACTION in
start)
    if [ -f $FLAGFILE ]; then
        echo "${PARTLINE} soft reboot ${PARTLINE}" | logger -p emerg -t kernel
    else
        sleep 120
        
        # IETF log format message
        stty cols 200; ndmc -c show log | sed '1,/kernel: Booting Linux/ {/kernel: Booting Linux/!d}' | cut -c 21- | sed "1 i\\${FIRSTLINE}" | head -n 500 | awk -F CGG '/^>/ {print; next} {for (i=1; i<=NF; ++i) {printf "%s %s%s", length($i), $i, (i==NF)?"\n":" "}}' | sed '$ d' > ${NDMCFILE}
    fi
    start
stop|kill)
    stop
restart)
    stop
    start
*)
    echo "ACTION=unknown" | logger -p emerg -t kernel
esac
. /opt/etc/init.d/rc.func

Думал, что sleep может помочь. Но не помогло.

Изменено пользователем _alex_
Опубликовано

Хотя при тесте всё нормально

# test hard reboot
/opt/etc/init.d/S01syslog-ng stop
ps|grep syslog-ng
rm /opt/var/syslog-ng.flag
rm /tmp/mnt/USB/log/ndmc.log
rm /tmp/mnt/USB/log/messages
rm /tmp/mnt/USB/log/debuglog
rm /opt/var/syslog-ng.persist
ls -lah /tmp/mnt/USB/log/
/opt/etc/init.d/S01syslog-ng start
ps|grep syslog-ng
ls -lah /tmp/mnt/USB/log/
head -n20 /tmp/mnt/USB/log/ndmc.log
sleep 5
head -n20 /tmp/mnt/USB/log/messages
#ndmc -c show log | tail
#tail /tmp/mnt/USB/log/debuglog
#cat /tmp/mnt/USB/log/messages
#cat /tmp/mnt/USB/log/debuglog | grep -v "ndm:\|kernel:"
#cat /tmp/mnt/USB/log/ndmc.log | grep -v "ndm:\|kernel:"
#cat /opt/etc/syslog-ng.conf | nocomments
#mcedit /opt/etc/syslog-ng.conf

/opt/etc/syslog-ng.conf:

# Collect all local logs into a single file /var/log/messages.
# See https://www.syslog-ng.com/technical-documents/list/syslog-ng-open-source-edition
# See https://github.com/balabit/syslog-ng-ose-guides

@version: 4.7
@include "scl.conf"

# cat /opt/etc/syslog-ng.conf | nocomments
###############################################################################
# /opt/etc/init.d/S01syslog-ng stop
# /opt/etc/init.d/S01syslog-ng start
# /opt/etc/init.d/S01syslog-ng restart
###############################################################################

options {
  chain_hostnames(no); # Enable or disable the chained hostname format.
  create_dirs(yes);
  keep_hostname(yes); # Enable or disable hostname rewriting.
  log_fifo_size(10000); # The number of messages that the output queue can store.
  log_msg_size(200); # Maximum length of a message in bytes.
  stats(freq(0)); # The period between two STATS messages (sent by syslog-ng, containing statistics about dropped logs) in seconds.
  flush_lines(0); # How many lines are flushed to a destination at a time.
  trim-large-messages(yes); # trims the incoming log message to the size set in log-msg-size()
  use_fqdn(no); # Add Fully Qualified Domain Name instead of short hostname.
  ts-format(iso);
};

# syslog-ng gets messages from syslog-ng (internal) and from /dev/log

source src {
  internal();
  unix-dgram("/dev/log");
#  unix-stream("/dev/log");
};

source net {
#  network_localhost();
#  udp(ip(127.0.0.1) port(3127));
  udp(ip(127.0.0.1) port(3127) keep-timestamp(no));
};

source kernel {
  file("/proc/kmsg" program_override("kernel"));
};

source syslog {
  syslog();      # logger write
};

source ndm {
  program("/bin/ndm");
};

source ndmc {
#    file( "/opt/var/log/ndmc.log" flags(no-parse) );
#  file( "/tmp/mnt/USB/log/ndmc.log" flags(no-parse) );
  file( "/tmp/mnt/USB/log/ndmc.log" );
};

destination messages {
#    file("/opt/var/log/messages" template("${ISODATE} (${PRIORITY}) ${MESSAGE}\n") time_zone("Europe/Moscow"));
  file("/tmp/mnt/USB/log/messages" template("${ISODATE} (${PRIORITY}) ${PROGRAM}: ${MESSAGE}\n") time_zone("Europe/Moscow"));
};

destination debug {
#    file("/opt/var/log/debuglog");
  file("/tmp/mnt/USB/log/debuglog");
};

filter f_ni_kernel   { not program(kernel) or (program(kernel) and match ("reboot|error|Linux|Memory|Boot CPU|Machine|Found.*storage" value("MESSAGE"))); };
filter f_ni_ndm      { not program(ndm) or (program(ndm) and match("Network Device Manager|Ntp" value("MESSAGE"))); };
filter f_ni_cron     { not program(cron) or (program(cron) and match("started|stopped|Hello" value("MESSAGE")) ); };
#filter f_ni_opkg     { not program(opkg) or (program(opkg) and match("" value("MESSAGE")) ); };

log {
  source(src);
  source(net);
  source(kernel);
  source(syslog);
  source(ndmc);
  filter(f_ni_kernel);
  filter(f_ni_ndm);
  filter(f_ni_cron);
  destination(messages);
};

log {
  source(src);
  source(net);
  source(kernel);
  source(syslog);
  source(ndmc);
#  source(ndm);
  destination(debug);
};


# Include any user settings last so that s/he can override or
# supplement all "canned" settings inherited from the distribution.
@include "/opt/etc/syslog-ng.d/" # Put any customization files in this directory

/tmp/mnt/USB/log/messages

2025-02-15T16:39:41+03:00 (notice) syslog-ng: syslog-ng starting up; version='4.7.1'
2025-02-15T16:39:41+03:00 (notice) kernel: ================================================== hard reboot ==================================================
2025-02-15T16:39:41+03:00 (notice) kernel: Booting Linux on physical CPU 0x0
2025-02-15T16:39:41+03:00 (notice) kernel: Linux version 4.9-ndm-5 (developers@keenetic.com) (gcc version 13.2.0 (crosstool-NG 1.24.0-rc2-ndm-31-1 - NDMS Toolkit 1.0.0) ) #0 SMP Mon Jan 27 13:39:56 2025
2025-02-15T16:39:41+03:00 (notice) kernel: Boot CPU: AArch64 Processor [410fd034]
2025-02-15T16:39:41+03:00 (notice) kernel: Machine model: Keenetic KN-3812
2025-02-15T16:39:41+03:00 (notice) kernel: Memory: 497496K/524288K available (3710K kernel code, 282K rwdata, 996K rodata, 320K init, 195K bss, 26792K reserved, 0K cma-reserved)
2025-02-15T16:39:41+03:00 (notice) ndm: Core::Main: *** Network Device Manager 4.02.C.6.0-0. 
2025-02-15T16:39:41+03:00 (notice) kernel: Found 1st storage partition of size 58720256 bytes
2025-02-15T16:39:41+03:00 (notice) kernel: Found 2nd storage partition of size 59244544 bytes
2025-02-15T16:39:41+03:00 (notice) ndm: Ntp::Client: configuration reset. 
2025-02-15T16:39:41+03:00 (notice) ndm: Ntp::Client: configuration reset. 
2025-02-15T16:40:52+03:00 (info) dhcpd: Information-request message from fe80::4830:fb23:b27e:56e4 port 546, transaction ID 0xC5576300 
2025-02-15T16:40:52+03:00 (info) dhcpd: Sending Reply to fe80::4830:fb23:b27e:56e4 port 546 

 

Опубликовано

Бесполезно бороться с line wrap. Но sed возвращает всё к первоначальному виду.

#!/bin/sh

ENABLED=yes
PROCS=syslog-ng
ARGS=""
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

ACTION=$1
BASENAME="$(basename $0)"
FLAGFILE="/opt/var/syslog-ng.flag"      #reboot flag
#NDMCFILE="/opt/var/log/ndmc.log"
NDMCFILE="/tmp/mnt/USB/log/ndmc.log"
SYSNGFILE="/opt/var/syslog-ng.persist"
PARTLINE="$(echo `yes =|head -50`|tr -d ' ')"

start() {
    rm -f $FLAGFILE 2>/dev/null
    return 0
}
stop() {
    echo -n "" > $FLAGFILE
    rm -f $NDMCFILE
    rm -f $SYSNGFILE
    return 0
}

case $ACTION in
start)
    if [ -f $FLAGFILE ]; then
	FIRSTLINE="kernel: ${PARTLINE} soft reboot ${PARTLINE}"
    else
        FIRSTLINE="kernel: ${PARTLINE} hard reboot ${PARTLINE}"
    fi

    # opkg mount
    while [ ! -f /opt/bin/mount  ]; do
         sleep 1
    done

    # USB mount
    while [ "`/opt/bin/mount | grep -qi /sda1 || echo 1`" ]; do
        sleep 1
    done

    # IETF log format message
    ndmc -c show log | sed ':a;N;$!ba;s/\n \{1,\}/ /g' | sed '1,/kernel: Booting Linux/ {/kernel: Booting Linux/!d}' | sed 's/. \[.*:..:..\] //' | sed "1 i\\${FIRSTLINE}" | head -n 500 | awk -F CGG '/^>/ {print; next} {for (i=1; i<=NF; ++i) {printf "%s %s%s", length($i), $i, (i==NF)?"\n":" "}}' | sed '$ d' > ${NDMCFILE}
        
    start
    ;;
stop|kill)
    stop
    ;;
restart)
    stop
    start
    ;;
*)
    echo "ACTION=unknown" | logger -p emerg -t kernel
    ;;
esac

. /opt/etc/init.d/rc.func

 

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.