Support » Поддержка Digispot II
Для решения Вашей проблемы специалисты технической поддержки AXIA могут запросить детальный журнал активности системы. Для этого необходимо использовать Syslog сервер и настроить соответствующим образом оборудование. Ниже будет описано как это сделать. Изменяйте настройки только , если это необходимо для решения проблемы, в противном случае Syslog настройки должны быть оставлены в значениях по умолчанию.
Специалистами Telos был создан простой, не требующий установки Syslog Server. Программа является приложением .NET для Windows 7, но возможен запуск на WinXP при условии наличия установленного клиента .NET v3.5 или более поздней версии. Клиент .NET может быть загружен и установлен бесплатно с веб-сайта Microsoft
syslogserver.zip — архив с дистрибутивом и описанием.
Архив необходимо распаковать и запустить исполняемый файл syslog_server.exe на компьютере с доступом в сеть Livewire. При запуске его в первый раз, Windows брандмауэр может попросить о разрешении приложению доступа к сети. Вы должны выбрать «Разрешить» для syslog, чтобы иметь возможность получать информацию. Прием информации осуществляется по UDP через порт 514.
Окно запущенного приложения выглядит так:
Для получения сообщений на SysLog sеrver необходимо настроить оборудование для отправки лог-сообщений на IP-адрес компьютера, на котором запущено приложение.
Если IP адрес неизвестен, то его можно узнать с помощью команды ipconfig на этом компьютере:
Этот IP адрес необходимо записать в поле «Syslog server (IP address):» на вкладке System WEB-интерфейса оборудования AXIA:
На примере AXIA Analog xNode:
После этого необходимо выбрать уровень событий, подлежащих регистрации в отчетах из списка Syslog severity level filter
- Emergency: регистрирует события, связанные с полной неработоспособностью системы.
- Alert: регистрирует события, требующие немедленного внимания для сохранения работоспособности.
- Critical: регистрирует события о критических системных ошибках.
- Warning: регистрирует события, которые могут привести к нестабильности системы.
- Notice: система работает нормально, но в отчетах регистрируются сообщения о необычных событиях.
- Informational: регистрируются все информационные сообщения. Эта информация включает все рутинные события.
- Debug: регистрируются вся системная деятельность
Аналогичным образом настраивается и другое оборудование AXIA. Для консолей в пункте меню Log Setup, для Engine в меню Diagnostics.
После совершения изменений в настройках щелкните кнопку Apply для их сохранения:
Теперь осталось только нажать кнопку START для начала работы сервера:
Все готово для регистрации системной активности.
События, регистрирующие процесс перезагрузки AXIA Analog xNode на уровне Debug выглядят так:
Для поиска необходимых записей можно осуществлять фильтрацию сообщений:
- по уровню — выбрать необходимые с помощью списка слева
- по контексту — ввести текст для поиска и нажать кнопку Filter
Для сохранения сообщений в файл необходимо настроить его параметры в меню Options на вкладке LOG:
По указанному пути будет создан файл с названием вида SysLog_ГГГГ-MM-DD.log (ГГГГ-MM-DD — текущая дата), в котором будет сохраняться полученная в течении дня информация:
Кроме вышеописанного syslog server существует множество других аналогичных программ для регистрации сообщений о системной активности. Они могут обладать разными возможностями, интерфейсами и стоимостью.
Как вариант программы с расширенными настройками можно рассмотреть бесплатное ПО Visual Syslog Server (архив с дистрибутивом v1.6.3 2015-11-20 )
Эта программа уже требует инсталляции, но позволяет настраивать параметры log файла, просматривать log файлы с диска, формировать извещения и выполнять действия в зависимости от содержания лога, работать по протоколам UDP и TCP, поддерживает кодировку UTF8.
Интерфейс интуитивно понятен, а подробное описание можно найти на странице разработчика
Настройка syslog-ng для централизованного сбора логов
Мне понадобилось организовать сервер для сбора логов с удаленных устройств. Это могут быть серверы, сетевое оборудование, либо что-то еще, что поддерживает логирование в формате syslog. Я решил использовать не стандартный для большинства дистрибутивов rsyslog, а установить syslog-ng, потому что мне он показался более удобным и простым в настройке.
Введение
Информации на тему сбора логов с удаленных серверов и интернете достаточно много. Ничего сложного тут нет, я и сам уже описывал подобную настройку в статье про сбор логов с mikrotik. Но решение получилось кривоватое, в комментариях написаны замечания. Я и сам знал о них, но простого и быстрого решения я не смог найти, на тот момент меня устраивал и такой вариант. Сейчас же решил все сделать аккуратно и красиво, чтобы было удобно пользоваться. В процессе поиска информации в интернете решил попробовать syslog-ng. С ним у меня не возникло никаких затруднений, сразу получилось то, что требовалось, поэтому я остановил свой выбор на нем.
Настраивать сервер сбора логов будем на системе CentOS 7. Если у вас еще не подготовлен сервер, то читайте мою информацию по установке и базовой настройке centos. Для небольшого количества устройств, нагрузка на сервер будет незначительная, поэтому имеет смысл размещать сервер на виртуальной машине. Если у вас нет готового гипервизора, можете посмотреть мою информацию на тему настройки linux гипервизора proxmox или бесплатного решения microsoft — Windows Hyper-V Server 2016.
Установка и настройка syslog-ng
С установкой нет ничего сложного. Установить syslog-ng можно одной командой:
Сразу переходим к настройке. Файл конфигурации располагается по адресу /etc/syslog-ng/syslog-ng.conf. Чтобы сервер начал принимать логи с удаленного устройства, его необходимо прописать в конфиг. Делается это просто. В самый конец конфигурационного файла добавляем информацию о новом устройстве:
d_xs-zabbix | Название назначения для записи лога по адресу /var/log/!remote/xs-zabbix.log |
f_xs-zabbix | Название фильтра по адресу сервера источника. |
10.1.3.29 | Адрес сервера источника логов |
Соответственно для второго сервера нужно добавить еще 3 строки, например так:
И так далее. Добавляете столько серверов, сколько нужно. Не забудьте создать папку для логов. В моем примере это папка /var/log/!remote, сами файлы создавать не надо, служба автоматически их создаст, когда придет информация с удаленных серверов.
Запускаем syslog-ng и добавляем в автозагрузку:
Проверим, запустилась ли служба:
Все в порядке, слушает 514 udp порт. Не забудьте открыть этот порт в iptables, если у вас включен фаерволл. Сервер готов к приему логов.
Отправка логов syslog на удаленный сервер
Теперь идем на добавленные в syslog-ng сервера и настраиваем там отправку логов на наш сервер. Сделать это очень просто. Открываем файл конфигурации rsyslog. В CentOS он живет по адресу /etc/rsyslog.conf и добавляем туда строку:
10.1.3.22 — ip адрес syslog-ng сервера. Перезапустите rsyslog:
и проверяйте логи на сервере syslog-ng в указанной папке. Правило *.* отправит все логи в указанное направление. Это не всегда нужно, можно отредактировать правила. Для этого надо ознакомиться с документацией по syslog. Там нет ничего сложного, мне не хочется на этом сейчас подробно останавливаться. В интернете есть примеры. Приведу пару своих.
В данном случае у меня по local5.notice идет лог самбы по доступу к сетевой шаре. Мне не нужно собирать эту информацию и я ее отключил. Вот еще пример:
С этого сервера сыпалось много лишней информации уровня debug. Я ограничил отправляемые сообщения уровнем info. И так далее.
Ротация логов syslog-ng
В завершение приведу пример своего правила ротации логов. Рекомендую ротацию настроить сразу, не оставлять на потом. Создаем файл /etc/logrotate.d/syslog-ng
По этому правилу ротация логов происходит раз в день. Старые логи перемещаются в папку /var/log/!remote/old и сжимаются. Хранятся логи за последние 180 дней.
Заключение
Я привел частный случай настройки хранения логов с удаленных устройств. Решение в лоб. В простых случаях этого достаточно. Лично мне удобно смотреть информацию в текстовых файлах. Это требуется редко, сделано на всякий случай для расследования инцидентов, если таковые возникают. Эту же задачу, к примеру, можно решить с помощью заббикс. Я уже показывал, как мониторить с помощью zabbix лог файлы. Приведенное решение легко переделать в хранение логов.
Для более удобного сбора и последующего просмотра информации существуют готовые решения с написанными веб панелями. Я посмотрел на некоторые из них. Что-то мне показалось слишком сложным в настройке, где-то веб интерфейс не понравился. Для себя остановился на приведенном варианте.
Онлайн курс по Linux
Помогла статья? Подписывайся на telegram канал автора
Автор Zerox
32 комментария
нет такой команды yum
как только добавляю 3 строки в conf файл, то сервис не стартует.
что я делаю не так ?
● syslog-ng.service — System Logger Daemon
Loaded: loaded (/usr/lib/systemd/system/syslog-ng.service; enabled; vendor preset: enabled)
Active: failed (Result: start-limit) since Ср 2020-07-29 16:48:53 MSK; 3s ago
Docs: man:syslog-ng(8)
Process: 1989 ExecStart=/usr/sbin/syslog-ng -F -p /var/run/syslogd.pid (code=exited, status=2)
Main PID: 1989 (code=exited, status=2)
Status: «Starting up. (Wed Jul 29 16:48:52 2020»
июл 29 16:48:52 syslog.iceberry.local systemd[1]: syslog-ng.service failed.
июл 29 16:48:53 syslog.iceberry.local systemd[1]: syslog-ng.service holdoff time over, scheduling restart.
июл 29 16:48:53 syslog.iceberry.local systemd[1]: Stopped System Logger Daemon.
июл 29 16:48:53 syslog.iceberry.local systemd[1]: start request repeated too quickly for syslog-ng.service
июл 29 16:48:53 syslog.iceberry.local systemd[1]: Failed to start System Logger Daemon.
июл 29 16:48:53 syslog.iceberry.local systemd[1]: Unit syslog-ng.service entered failed state.
июл 29 16:48:53 syslog.iceberry.local systemd[1]: syslog-ng.service failed.
июл 29 16:48:53 syslog.iceberry.local systemd[1]: start request repeated too quickly for syslog-ng.service
июл 29 16:48:53 syslog.iceberry.local systemd[1]: Failed to start System Logger Daemon.
июл 29 16:48:53 syslog.iceberry.local systemd[1]: syslog-ng.service failed.
как только удаляю эти строки, то все ровно стартует, но логов же я не увижу, правильно ?
подскажите пожалуйста.
строки, которые добавляю: (хочу писать лог контроллера unifi)
А что у вас прописано в директиве source для «net»?
Я не вижу такого. Имеете ввиду что слушать ? там стоит 0.0.0.0 port 514
Здравствуйте.
Второй день ломаю голову, пробовал на обоих хостах использовать штатный в Ubuntu 20.04 rsyslog, и в качестве сервера syslog-ng. В обоих случаях добился того что на сервер прилетают в один файл часть системных логов с собираемого хоста, но не все, не могу заставить передавать логи nginx и его виртуальных хостов.
В идеале хотел получить следующее:
Есть хост сервер логов — host1.
Есть хост с которого хочу получать логи — host2.
Есть хост с которого хочу получать логи — host3.
На хостах host2 и host3 крутятся сервисы на nginx. Как заставить прилетать с этих хостов определённые логи, пути к которым известны, на сервер логов host1. Допустим на host2 и host3 крутится Joomla и нужные мне логи лежит по пути:
/var/log/nginx/access.log
/var/log/nginx/joomla_access.log
/var/log/nginx/joomla_access.log.1
/var/log/nginx/joomla_error.log
/var/log/nginx/joomla_error.log.1
Именно их, в таком виде, хочу получать на сервере логов Host1 по пути /var/log/rsyslog/:
nginx_access.log
nginx_joomla_access.log
nginx_joomla_access.log.1
nginx_joomla_error.log
nginx_joomla_error.log.1
В целом не важно что сам Nginx умеет сам передавать свои логи на удалённый syslog сервер, хотелось бы передавать логи один к одному, тех сервисов которые не умеют напрямую передавать логи на удаленный syslog сервер. Возможно ли указывать какой именно лог файл, указав точный путь на удалённом хосте, и передавать его в определённую папку на syslog сервер в определённый файл? Если всё это возможно, киньте пример что скофигурить на сервере и что на хосте. Смысл в том что бы смотреть логи на одной машине в том виде, в котором они формируются на удалённых хостах, один к одному.
Здравствуйте.
Была бы очень полезна статья как все это потом прикрутить к заббиксу. Спасибо
Что именно вы хотите увидеть в заббиксе? Возможно, у меня есть статьи на эту тему.
Я бы хотел заббиксом собирать эти логи и видеть их в заббиксе
Плохая идея. Zabbix не предназначен для хранения логов. Он все же система мониторинга. Если надо хранить логи, лучше использовать ELK или какие-то другие решения под это дело.
Пример того, как лог файлы передавать в zabbix есть в этой статье — https://serveradmin.ru/monitoring-ssh-loginov-v-zabbix/
Может по аналогии любой лог туда отправить. Но еще повторю — если логов много это плохая идея. База заббикса не заточена под хранение большого количества логов. Работать с ними будет неудобно.
А мне интересно, а где определение source (net)? И все повторяют, и у всех все получается. )))))))))))))))))))))))))
Добрый день. Есть ли какой нибудь относительно простой способ добавить веб-гуи к syslog-ng, с авторизацией? Чтобы можно было зайти из любого места и посмотреть логи.
Мне такой неизвестен. В качестве альтернативы предлагаю посмотреть elk stack — https://serveradmin.ru/ustanovka-i-nastroyka-elasticsearch-logstash-kibana-elk-stack/
Я сейчас для сбора логов в основном им пользуюсь.
Добрый день, подскажите пожалуйста, как правильней всего настроить в ELK приём логов по syslog ?
Привет! Сделал всё как Вы написали, всё получилось, но у меня ещё один вопрос, а как можно apache, nginx, mysql и openvpn логов отправить через rsyslog на syslog-ng ?
Читать документацию к каждому из сервисов и смотреть, как настроить отправку логов в syslog формате. Если не ошибаюсь, они все это умеют. Единственное сомнение насчет mysql, не настраивал. А все остальное в syslog отправлял.
Здравствуйте! Спасибо за совет (ответ 🙂 ) настроил отправку логов nginx и apache, как вы уже сказали все они умеют отправить логи на syslog, mysql-а Я не смог настроить. В Интернете больше всего есть статьи по этой теме где syslog тправляет и сохроняет свои логи в mysql 🙂
хорошее описание. Но я бы предпочел более «старый «способ, описанный в http://www.linux-magazin.de/ausgaben/2009/06/zentrale-kontrolle/
destination loghost <
file («/var/log/hosts/$YEAR-$MONTH/$HOST/$FACILITY-$YEAR-$MONTH-$DAY»
owner(root) group(root) perm(0600) dir_perm(0700) create_dirs(yes)
);
удобнее , само сортирует файлы. Работы меньше
01 # Filter/Destination für PIX-Firewall
02 filter f_pix <
03 host(pix);
04 >;
05 # Zielort der Log-Dateien
06 destination loghost <
07 file («/var/log/hosts/$YEAR-$MONTH/$HOST/$FACILITY-$YEAR-$MONTH-$DAY»
08 owner(root) group(root) perm(0600) dir_perm(0700) create_dirs(yes)
09 );
10 >;
11 log <
12 source(s_all);
13 destination(loghost);
14 >;
15 # Pix
16 log <
17 source(s_all);
18 filter(f_pix);
19 destination(loghost);
20 flags(final);
21 >;
Спасибо за материал! Очень интересно и хорошо изложено.
И да, в syslog-ng.conf нужно раскомментировать строку:
#udp(ip(0.0.0.0) port(514));
перед тем как запускать syslog-ng.
Daemon не запускается, остановка и удаление rsyslog как писали выше не помогает:
[root@log]# systemctl restart syslog-ng.service
Job for syslog-ng.service failed because the control process exited with error code. See «systemctl status syslog-ng.service» and «journalctl -xe» for details.
[root@log]# systemctl status syslog-ng.service
● syslog-ng.service — System Logger Daemon
Loaded: loaded (/usr/lib/systemd/system/syslog-ng.service; enabled; vendor preset: enabled)
Active: failed (Result: start-limit) since Thu 2018-02-15 17:58:27 MSK; 42s ago
Docs: man:syslog-ng(8)
Process: 2003 ExecStart=/usr/sbin/syslog-ng -F -p /var/run/syslogd.pid (code=exited, status=2)
Main PID: 2003 (code=exited, status=2)
Status: «Starting up. (Thu Feb 15 17:58:27 2018»
Feb 15 17:58:27 log.local systemd[1]: Unit syslog-ng.service entered failed state.
Feb 15 17:58:27 log.local systemd[1]: syslog-ng.service failed.
Feb 15 17:58:27 log.local systemd[1]: syslog-ng.service holdoff time over, scheduling restart.
Feb 15 17:58:27 log.local systemd[1]: start request repeated too quickly for syslog-ng.service
Feb 15 17:58:27 log.local systemd[1]: Failed to start System Logger Daemon.
Feb 15 17:58:27 log.local systemd[1]: Unit syslog-ng.service entered failed state.
Feb 15 17:58:27 log.local systemd[1]: syslog-ng.service failed.
Feb 15 17:58:27 log.local systemd[1]: start request repeated too quickly for syslog-ng.service
Feb 15 17:58:27 log.local systemd[1]: Failed to start System Logger Daemon.
Feb 15 17:58:27 log.local systemd[1]: syslog-ng.service failed.
А в /var/log/messages что-то есть на этот счет? Не понятно, в чем ошибка. Обычно в логе есть информация на эту тему.