Александр Мутовин
23.10.2019
2909

Установка и настройка syslog-ng из исходников на примере EltexTAU.8.

Описание: Для исправления проблем с различными сетевыми устройствами, часто, крайне важно отслеживать системные события в логе устройства. Ведь именно там зачастую хранятся ответы на большинство диагностических вопросов.  Но удобным логом в web  интерфейсе обладают далеко не все устройства, да и устройств может быть очень много. Тут нам на помощь приходит удаленное централизованное логирование с помощью […]

syslog-ng из исходников+EltexTAU.8
 Логотип статьи
Логотип статьи

Описание:

Для исправления проблем с различными сетевыми устройствами, часто, крайне важно отслеживать системные события в логе устройства. Ведь именно там зачастую хранятся ответы на большинство диагностических вопросов.  Но удобным логом в web  интерфейсе обладают далеко не все устройства, да и устройств может быть очень много. Тут нам на помощь приходит удаленное централизованное логирование с помощью syslog-ng.

Инструкция:

Syslog-ng является бесплатной реализацией протокола syslog для Unix и Unix-подобных систем с открытым исходным кодом.  Syslog – стандартный клиент-сервер протокол регистрации сообщений. Клиент генерирует сообщения и отправляет на сервер, который их хранит, а также может проводить анализ. Каждое сообщение помечается кодом объекта с указанием типа программного обеспечения, генерирующего сообщение, и назначается уровень серьезности. Администраторы сетевых систем могут использовать syslog для аудита безопасности, проведения аналитики и отладки широкого диапазона устройств. Это могут быть VoIP-шлюзы, маршрутизаторы, принтеры, фактически любые устройства поддерживающие соответствующий протокол. Реализации системного журнала существуют для практически всех операционных систем.

Схема клиент сервер syslog-ng
Схема клиент сервер syslog-ng

Программных продуктов для централизованного логирования написано на данный момент значительное количество, выделим преимущества syslog-ng:

  1. Открытый исходный код
  2. Возможность использования протокола с шифрованием TLS.
  3. Возможность записи напрямую в базу данных
  4. Легко написать расширение с использованием языков C или Java / Lua / Perl / Python
  5. Большое разнообразие источников и направлений
  6. Высокопроизводительная многопоточная обработка
  7. Широкие возможности фильтрации, парсинга.

Приступаем к установке серверной части из исходников, в качестве сервера для хранения и анализа логов используем сервер телефонии под управление Linux CentOS 6.

            Подключаемся к нашей станции PBX Asterisk через эмулятор терминала для  различных протоколов удалённого доступа Putty в среде Windows. В данном примере подключаем по протоколу порт по умолчанию 22.

Подключаемся к серверу централизованному хранилищу логов.
Подключаемся к серверу централизованному хранилищу логов.

Вводим логин и пароль подключения от учетной записи с правами администратора, так как нам необходимо установить программу. В данном примере заходим под  root – имеющим права на выполнение любых действий на сервере суперпользователь.

При вводе пароля символы не отображаются! В зависимости от настроек модуля fail2ban за несколько неверно введенных паролей ip Вашего компьютера с которого выполняется подключение будет добавлен в черный список и подключиться больше не удастся.
Входим на сервер под учетной записью суперпользователя.
Входим на сервер под учетной записью суперпользователя.

Рекомендуется отключить Selinux (Security-Enhanced Linux) — это набор исправлений для ядра и утилит Linux, обеспечивающих мощную, гибкую архитектуру с обязательным контролем доступа (MAC) в основных подсистемах ядра. Он обеспечивает расширенный механизм для обеспечения разделения информации на основе требований конфиденциальности и целостности, что позволяет устранять угрозы подделки и обход механизмов защиты приложений и позволяет ограничить ущерб, который может быть нанесен вредоносными или некорректными приложениями.

# sestatus
 # sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/selinux/config
SELinux реализована в Linux с версии ядра 2.6 и создана для обхода ряда ограничений классической избирательной системой контроля доступа. Если данная аббревиатура Вам не знакома, смело отключайте, на безопасности это никак не скажется. Желательно после операции перезагрузить сервер!
Проверяем статус SELinux, перезагружаем систему.
Проверяем статус SELinux, перезагружаем систему.

Теперь перейдем в директорию хранения исходников и скачаем с помощью утилиты для загрузки файлов по сети wget самую свежую версию архива кодов syslog-ng с GitHub.

По умолчанию на CentOS 6 директория хранения исходников /usr/src
# cd /usr/src
# ls
# wget https://github.com/balabit/syslog-ng/releases/download/syslog-ng-3.18.1/syslog-ng-3.18.1.tar.gz
Качаем архив исходников syslog-ng с GitHub
Качаем архив исходников syslog-ng с GitHub

Далее распаковываем архив и удаляем его, переходим в распакованную папку исходников.

# tar xf syslog-ng-3.18.1.tar.gz
# rm syslog-ng-3.18.1.tar.gz
# cd syslog-ng-3.18.1
# ls
Распаковываем архив исходников syslog-ng
Распаковываем архив исходников syslog-ng

Проверяем зависимости и устанавливаем пакеты необходимые для компиляции syslog-ng. Эти пакеты доступны для большинства систем UNIX / Linux. Кроме того, вы также можете скачать исходные коды и скомпилировать их.

Для использования большинства возможностей syslog-ng требуется, чтобы перед сборкой из исходников были установлены следующие библиотеки:

# yum install -y gcc flex bison glib-devel autoconf pcre libcurl libnet libesmtp tcp_wrappers*
Устанавливаем зависимости для компиляции syslog-ng
Устанавливаем зависимости для компиляции syslog-ng

Запускаем скрипт конфигурирования, который сопоставляет библиотеки на компьютере пользователя с библиотеками , которые требуются программе перед компиляцией из исходного кода.

# ./configure –sysconfdir=/etc/syslog-ng
Конфигурируем компиляцию
Конфигурируем компиляцию
Если файл ./configure не существует, например, потому что вы клонировали репозиторий из GitHub вместо использования релизного архива, запустите скрипт ./autogen.sh

Далее компилируем  и устанавливаем полученные библиотеки из исходных кодов и создадим конфигурационные файлы примеры.

# make 
# make install
# ldconfig
Компиляция и установка из исходников syslog-ng
Компиляция и установка из исходников syslog-ng

Проверяем версию установленной программы:

# syslog-ng -V 
Проверяем версию установленной программы
Проверяем версию установленной программы

Пробуем запустить программу.

# syslog-ng

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

Ошибка конфигурационного файла.
Ошибка конфигурационного файла.
# nano /usr/local/share/syslog-ng/include/scl/default-network-drivers/plugin.conf
Удаляем вызов парсинга в конфигурационном файле.
Удаляем вызов парсинга в конфигурационном файле.

            Приступаем к настройке программы,  отредактировав файл syslog-ng.conf

 # nano /etc/syslog-ng.conf

            Каждый файл конфигурации syslog-ng должен начинаться со строки, содержащей информацию о версии syslog-ng. Далее добавляем включения include, позволяющие создавать отдельный файл конфигурации для разных устройств в каталоге conf.d и включать его в работу.

Без указания версии программа попытается прочитать конфигурационный файл в синтаксисе 2 версии, что приведет к ошибкам!
@version: 3.18
@include "/etc/conf.d/*.conf"

Создаем папку и файл конфигурации сбора логов для TAU.8

# mkdir /etc/conf.d
# nano /etc/conf.d/tau8.conf

Вносим следующие сроки:

#Источник сообщений. указываем протокол и порт
source s_udp {
udp(port(514));
};

#Назначение сообщений, директория сохранения
destination d_TAU8_GW {
file("/var/log/TAU8_gw.log");
};

#Фильтр, отсеиваиваем сообщения с TAU.8 указанием IP хоста
filter f_TAU8_GW {
host("192.168.32.146");
};

#Указание параметров логирования: источник, фильтр. назначение
log {
source(s_udp);
filter(f_TAU8_GW);
destination(d_TAU8_GW);
};
Создаем файл конфигурации прослушивания устройства.
Создаем файл конфигурации прослушивания устройства.

Чтобы применить параметры перезапускаем демон syslog-ng

# /etc/init.d/syslog-ng restart
Видим что ошибок нет.
Видим что ошибок нет.

Проверяем что порт 514 открыт в firewall и слушается операционной системой.

# iptables –L –nv
Проверяем что порт 514 открыт в фаервол.
Проверяем что порт 514 открыт в фаервол.
# netstat -l
Смотрим слушает ли syslog-ng порт.
Смотрим слушает ли syslog-ng порт.

Далее переходим к настройке системного логирования на шлюзе Eltex TAU-8.IP. Переходим на вкладку журнал  и забиваем адрес нашего syslog сервера, не забываем указать порт, который прописали в конфигурационном файле.

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

Указываем уровень трассировки sip для дебага, рекомендуется выставить 5. Нажимаем применить.

Указываем параметры логирования на Eltex TAU.8
Указываем параметры логирования на Eltex TAU.8
Чем более высокое значение Вы выставите, тем больше сетевой информации будет записано в лог. Выбрав 9, в лог будет вся информация сетевого уровня. После проведения работ обязательно переключите на 1 или 2. Для длительного логирования это более чем достаточно.

Проверяем что в данный момент лог пишется в файл на сервере:

# tail -f /var/log/TAU8_gw.log
Выводим сообщения полученные от шлюза.
Выводим сообщения полученные от шлюза.

Так как за длительный период времени сообщений может быть очень много, настроим ротацию (периодическое удаление старых логов). Создадим скрипт в директории /etc/logrotate.d  со следующим содержанием:

# nano /etc/logrotate.d/TAU8_gw
/var/log/TAU8_gw.log {
# Указываем юзера и группу пользователя. Права группы определяют от кого будет запущен скрипт.
        su root adm
# Указываем выполнять ежедневно
        Daily
# Количество сохраняемых файлов логов
        rotate 5
# Указываем сжимать логи
        Compress
# Отсутствие файлов не является ошибкой
        Missingok
# Проверяем работоспособность демона syslog-ng и перезапускаем его
        postrotate
                if /etc/init.d/syslog-ng status > /dev/null ; then \
                    /etc/init.d/syslog-ng reload > /dev/null; \
                fi;
        endscript
}

Добавляем наш скрипт ротации в cron:

# crontab –e

Вписываем строку:

0 0 * * * sudo logrotate -f /etc/logrotate.d/TAU8_gw
Cron по умолчанию редактируется в редакторе vi, перед вводом необходимо нажать клавишу Insert, по окончанию редактирования Esc и ввести :wq
# tail -f /var/log/TAU8_gw.log

Настройка логгирования Eltex TAU.8 завершена теперь наблюдаем в логе, что происходит на шлюзе.

Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments

Остались вопросы?

Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

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

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.