Как реплицировать данные из /dev/log на несколько получателей rsyslog

awkнужно знать разделитель ,. Таким образом, вы должны выполнить команду таким образом:

awk -F\, '{printf "update my_table_user set thirdparty_user_id=\'%s\' where thirdparty_user_id=\'%s\'\;", $(NF-1),$(NF)}' /tmp/Region1\ users.csv

Также, если формат входного файла соответствует (трем полям, вы получите 1-е и 2-е )вы можете использовать $1и$2

1
22.04.2017, 20:43
1 ответ

Для этого у вас должна быть возможность использовать любой из нескольких модулей вывода rsyslog. Например (бесстыдно украденный и слегка измененный из rsyslog.conf (5) ) на вашем главном устройстве:

*.*  :omrelp:192.168.0.2:2514
*.*  :omrelp:192.168.0.3:2514
*.*  :omrelp:192.168.0.4:2514

Будет ли главный сервер отправлять все записи системного журнала в rsyslog, работающий на этих трех IP-адресах, которые должны быть быть настроенным следующим образом:

 $ModLoad imrelp
 $InputRELPServerRun 2514

(Обратите внимание, что *. * - это обычный селектор журнала, поэтому вы можете ограничить пересылаемые сообщения, например, local0. *: omrelp: 192.168.0.4: 2514 пересылает только журналы, отправленные на объект local0 ).

PS: То, что вы делаете, немного странно. Обычно люди хотят централизовать журналы. В зависимости от того, почему вы это делаете, вам может потребоваться один из других модулей вывода (например, возможно, вы захотите отправить свои журналы в базу данных SQL, к которой программы во всех различных пространствах имен могут подключаться и запрашивать).

PPS: Есть и другие способы справиться с этим - полностью настраиваемые сокеты, которые читает и записывает rsyslog. На их веб-сайте есть довольно обширная документация, и, конечно, возможно, также в / usr / share / doc вашей системы.

2
27.01.2020, 23:34

Теги

Похожие вопросы