Показати сторінкуСтарі ревізіїПосилання сюдиЕкспорт до PDFПовернутися наверх Ця сторінка доступна тільки для перегляду. Ви можете продивитися вихідний текст, але не можете змінювати його. Якщо ви вважаєте, що це не вірно, зверніться до адміністратора. ====== Syslog-NG ====== ===== Install Syslog-NG ===== <code bash> wget -qO - https://ose-repo.syslog-ng.com/apt/syslog-ng-ose-pub.asc | gpg --dearmor > /usr/share/keyrings/ose-repo-archive-keyring.gpg && \ echo "deb [ signed-by=/usr/share/keyrings/ose-repo-archive-keyring.gpg ] https://ose-repo.syslog-ng.com/apt/ stable debian-bookworm" | sudo tee -a /etc/apt/sources.list.d/syslog-ng-ose.list apt update apt-get install syslog-ng-core syslog-ng-scl </code> test message from localhost # logger --server 127.0.0.1 -p local0.info -t test "This is a test message" ===== A10 Thunder NAT logging ===== ==== Syslog-NG server configuration for A10 ==== nano /etc/syslog-ng/conf.d/A10CGNat.conf <code perl> # Вхідні джерела source s_tcp_a10nat_log { network(ip("0.0.0.0") port(1515) transport(tcp) ip-protocol(4)); }; # Фільтр для перевірки наявності слова "nat" у назві програми filter f_a10nat_cgnat { program("(?i)nat"); }; # Журнал на виході у форматі JSON. Основне призначення destination d_a10nat_json_main { file( "/nfs/syslog/jnat/${SOURCEIP}/${SOURCEIP}_${S_YEAR}-${S_MONTH}-${S_DAY}--${S_HOUR}-${S_MIN}.json" template("$(format-json --pair UNIXTIME=$R_UNIXTIME --pair PROGRAM=$PROGRAM --pair HOST=$HOST --pair SOURCEIP=$SOURCEIP --pair MSG=$MSGONLY)\n") create_dirs(yes) ); }; # Журнал на виході у форматі JSON. Запасне призначення destination d_a10nat_json_backup { file( "/var/log/syslog-ng/jnat/${SOURCEIP}/${SOURCEIP}_${S_YEAR}-${S_MONTH}-${S_DAY}--${S_HOUR}-${S_MIN}.json" template("$(format-json --pair UNIXTIME=$R_UNIXTIME --pair PROGRAM=$PROGRAM --pair HOST=$HOST --pair SOURCEIP=$SOURCEIP --pair MSG=$MSGONLY)\n") create_dirs(yes) ); }; # Логічне об'єднання джерела, фільтра та призначень з умовою для використання запасного каталогу log { source(s_tcp_a10nat_log); filter(f_a10nat_cgnat); destination(d_a10nat_json_main); flags(flow-control); }; log { source(s_tcp_a10nat_log); filter(f_a10nat_cgnat); destination(d_a10nat_json_backup); when not exists("/nfs/syslog/jnat"); flags(flow-control); }; </code> systemctl restart syslog-ng test message from remote linux host # logger --server 172.16.0.37 --port 1515 --tcp --rfc3164 --tag NAT-TCP "This is a test message FROM nat" ==== A10 Thunder Configuration ==== <code bash> nat-0>show config cgnv6 !Section configuration: 2296 bytes ! cgnv6 server syslog1 172.16.0.37 health-check-disable port 1515 tcp ! cgnv6 service-group syslog tcp member syslog1 1515 ! cgnv6 template logging lsn_logging facility local7 severity informational batched-logging-disable service-group syslog source-address ip 172.16.0.6 disable-log-by-destination icmp ! </code> ==== Скрипт міграції логів ==== nano /usr/local/bin/move_jnat_to_nfs <code bash> #!/bin/bash # Перевірка, чи основний каталог доступний if mountpoint -q /nfs/syslog; then echo "Основний каталог доступний. Переміщую логи старші за 2 хвилини..." find /var/log/syslog-ng/jnat/172.29.100.6/ -type f -mmin +2 -exec mv {} /nfs/syslog/jnat/172.29.100.6/ \; find /var/log/syslog-ng/jnat/172.29.101.6/ -type f -mmin +2 -exec mv {} /nfs/syslog/jnat/172.29.101.6/ \; else echo "Основний каталог не доступний. Логи залишаються в запасному каталозі." fi </code> chmod +x /usr/local/bin/move_jnat_to_nfs crontab -e <code bash> */5 * * * * /usr/local/bin/move_jnat_to_nfs </code> debian/syslog-ng.txt Востаннє змінено: 25/07/2024 22:17повз Method Увійти