Настройка логирования с помощью Rsyslog и Loganalyzer
В статье рассматривается настройка централизованного сбора логов и графического отображения статистики по ним в веб-интерфейсе с помощью пакетов Rsyslog и Loganalyzer на CentOS 7. Для настройки использовались две машины: Сервер – ip 192.168.32.115, клиент – ip 192.168.32.116, hostname — client1. Настройка сервера: Перед установкой Rsyslog установить пакеты libestr и libee. Установка репозитория mysql Установка необходимых […]
В статье рассматривается настройка централизованного сбора логов и графического отображения статистики по ним в веб-интерфейсе с помощью пакетов Rsyslog и Loganalyzer на CentOS 7.
Для настройки использовались две машины:
Сервер – ip 192.168.32.115, клиент – ip 192.168.32.116, hostname — client1.
Настройка сервера:
Перед установкой Rsyslog установить пакеты libestr и libee.
cd /usr/src
wget http://libestr.adiscon.com/files/download/libestr-0.1.11.tar.gz
tar xzvf libestr*
cd libestr*
./configure --libdir=/usr/lib --includedir=/usr/include
make
make install
yum install libee
Установка репозитория mysql
wget http://repo.mysql.com/mysql57-community-release-el7.rpm
rpm -ivh mysql57-community-release-el7.rpm
Установка репозитория mysql
wget http://repo.mysql.com/mysql57-community-release-el7.rpm
rpm -ivh mysql57-community-release-el7.rpm
Установка необходимых пакетов.
yum install php-mysql php mysql mysql-server httpd
Добавление в автозагрузку и запуск служб:
chkconfig mysqld on ; chkconfig httpd on
service mysqld start ; service httpd start
Теперь можно установить пакеты rsyslog:
yum install -y rsyslog-mysql rsyslog
Добавляем в автозагрузку rsyslog и запускаем сервис.
chkconfig rsyslog on
service rsyslog start
После установки mysql для того, чтобы найти временный пароль для входа с правами администратора выполнить команду:
grep 'temporary password' /var/log/mysqld.log
Т.к. временный пароль хранится в простом текстовом файле /var/log/mysqld.log, для изменения пароля пользователя root в консоли mysql ввести:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'новый_пароль';
Также, в консоли mysql:
#создание отдельного пользователя для rsyslog - rsyslog
CREATE USER 'rsyslog_user'@'localhost' IDENTIFIED BY 'Pa$$_w0rd';
#создание базы данных и схемы таблиц
CREATE DATABASE rsyslog_db;
USE rsyslog_db;
# создаем таблицы в бд rsyslog_db
CREATE TABLE SystemEvents
(
ID int unsigned not null auto_increment primary key,
CustomerID bigint,
ReceivedAt datetime NULL,
DeviceReportedTime datetime NULL,
Facility smallint NULL,
Priority smallint NULL,
FromHost varchar(60) NULL,
Message text,
NTSeverity int NULL,
Importance int NULL,
EventSource varchar(60),
EventUser varchar(60) NULL,
EventCategory int NULL,
EventID int NULL,
EventBinaryData text NULL,
MaxAvailable int NULL,
CurrUsage int NULL,
MinUsage int NULL,
MaxUsage int NULL,
InfoUnitID int NULL ,
SysLogTag varchar(60),
EventLogType varchar(60),
GenericFileName VarChar(60),
SystemID int NULL
);
CREATE TABLE SystemEventsProperties
(
ID int unsigned not null auto_increment primary key,
SystemEventID int NULL ,
ParamName varchar(255) NULL ,
ParamValue text NULL
);
# предоставить пользователю rsyslog права доступа к базе данных
GRANT ALL PRIVILEGES ON rsyslog_db.* TO rsyslog_user IDENTIFIED BY " Pa$$_w0rd";
flush privileges;
#выход из mysql
exit
Настройка конфигурационного файла /etc/rsyslog.conf.
Открываем файл для редактирования:
vi /etc/rsyslog.conf
#Модули imjournal, imusock раскомментировать
#Rsyslog может работать по UDP (более быстро, но ненадежно) и по TCP (медленнее, надежнее)
#или по обоим протоколам вместе.
#Для работы Rsyslog по UDP раскомментировать в конфигурационном файле строки
$ModLoad imudp
$UDPServerRun 514
#Для TCP
$ModLoad imtcp
$InputTCPServerRun 514
#После них, перед блоком Global Directives – создание шаблона для получения сообщений от
#удаленных хостов.
#Запись сообщений журнала в отдельные файлы, в /var/log/ где файлы будут именоваться на
#основе имени хоста и имени приложения удаленной машины.
$template RemoteLogs,"/var/log/rsyslog/%HOSTNAME%/%PROGRAMNAME%.log"
#Для того чтобы отфильтровать принимаемые сообщения от удаленных хостов нужно указать в
#конфигурационном файле требующиеся источники и уровень.
#[источник].[уровень]? RemoteLogs
#Например, для отправки всех информационных сообщений, от всех процессов кроме почты:
#*.info, mail.none? RemoteLogs
#указываем, что применяем шаблон ко всем полученным логам
*.* ?RemoteLogs
#правило для перенаправления, указывает rsyslog прекратить дальнейшую обработку сообщений,
#а не записывать их локально. Для того, чтобы удаленные сообщения не были записаны дважды.
#Использование & ~ устарело в rsyslogd v7, вместо этого использовать & stop
& stop
#### GLOBAL DIRECTIVES ####
#Конфигурирование пересылки сообщений syslog в БД.
#Загружаем драйвер mysql
$ModLoad ommysql
#Настраиваем пересылку логов. Общий вид источник.категория_лога место_записи(хост, имя базы
#данных, rsyslog-пользователь в mysql, последний параметр – пароль пользователя rsyslog в
#mysql). Для пересылки всех сообщений указать ‘*.*’
*.* :ommysql:127.0.0.1,Syslog,rsyslog,пароль_пользователя_rsyslog_в_mysql
#Категории логов
#№ Уровень Значение
#0 emerg Система не работает (PANIC)
#1 alert Серьезная проблема, требующая внимания
#2 crit Критическая ошибка
#3 err Ошибка (ERROR)
#4 warning Предупреждение (WARN)
#5 notice Важное информационное сообщение
#6 info Информационное сообщение
#7 debug Отладочная информация
#Источник лога.
#№ Название Значение
#0 kern Сообщения, отправляемые ядром
#1 user Пользовательские программы
#2 mail Почта
#3 daemon Сервисы (демоны)
#4 auth Безопасность/вход в систему/аутентификация
#5 syslog Сообщения от syslog
#6 lpr Логи печати
#7 news Новостные группы (usenet)
#8 uucp Unix-to-Unix CoPy (копирование файлов между компьютерами)
#9 cron Планировщик заданий
#10 authpriv Безопасность/вход в систему/аутентификация - защищенный режим
#11 ftp Логи при передачи данных по FTP
#12 ntp Лог службы синхронизации времени (существует не везде)
#13 security, log audit Журнал аудита (существует не везде)
#14 console, log alert Сообщения, отправляемые в консоль (существует не везде)
#15 solaris-cron, clock daemon Cron в solaris (существует не везде)
#16-23 local0 - local7 Для локального использования. Уровень серьезности определяется числом
#от 0 до 7.
#После настроек бд в GLOBAL DIRECTIVES также указываем протокол и подсеть(и), из которой(ых)
#можно принимать логи:
$AllowedSender TCP, 192.168.32.0/24
Далее сохраняем изменения в конфигурационном файле, и перезапускаем rsyslog для применения настроек.
service rsyslog restart
Установка LogAnalyzer
cd /usr/src
wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.8.tar.gz
tar xzvf loganalyzer-4.1.8.tar.gz
cd loganalyzer-4.1.8/src
Создаем директорию, копируем файлы LogAnalyzer.
mkdir /var/www/html/log
cp -R * /var/www/html/log
cd ../contrib
cp * /var/www/html/log
cd /var/www/html/log
chmod +x configure.sh secure.sh
./configure.sh
Последняя команда создаст пустой файл config.php и предоставит право записи в него. Далее необходимо запустить
ls -l
для проверки создания файла config.php. Настройка через браузер внесет изменения в этот файл.
Создание пользователя и базы данных в mysql:
mysql -u root -p
create database loganalyzer_db;
CREATE USER 'loganalyzer_user'@'localhost' IDENTIFIED BY 'Pa$$_w0rd';
GRANT ALL PRIVILEGES ON loganalyzerdb.* TO loganalyzer_user IDENTIFIED BY "Pa$$_w0rd";
flush privileges;
exit
Дальнейшие настройки производятся в веб. В браузере необходимо перейти по адресу ip_адрес_сервера/log.
Нажать далее (Next)
Проверка прав на запись для файла config.php
Настройка базовой конфигурации
Создание таблиц
Проверка создания таблиц
Создание учетной записи для входа в LogAnalyzer
Создание источника системных сообщений
Завершение установки
Переходим по ссылке для авторизации и вводим данные ранее созданной учетной записи для входа в LogAnalyzer
timedatectl set-timezone Europe/Moscow
или
rm -rf /etc/localtime ; ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Синхронизировать время.
yum –y install chrony ; chkconfig chronyd on ; service chronyd start
И проверить установленное время и часовой пояс:
service chronyd status ; chronyc tracking ; date; ls -l /etc/localtime
Настройка клиента
На клиенте также устанавливаем Rsyslog
Для отправки всех логов.
Открываем конфигурационный файл
nano /etc/rsyslog.d/all.conf
Добавляем в конфигурационный файл
*.* @@192.168.32.115:514
#Также изменяем отправку на удаленный сервер логов asterisk. На сервере логи будут храниться в
#отдельном файле /var/log/rsyslog/client1/asterisk.log(вначале на сервере пишутся в
#/var/log/rsyslog/client1/.log ). В параметре Severity указывается уровень важности
#логов (см. табл. выше), File – местоположение логов на клиенте(/var/log/asterisk/full),
#Facility-объект(см. табл. выше)
module(load="imfile" PollingInterval="5")
input(type="imfile"
File="/var/log/asterisk/full"
Tag="asterisk"
Severity="debug"
Facility="local7")
local7.* @@192.168.32.115:514
Перезапускаем rsyslog
service rsyslog restart
Далее, для того, чтобы логи со временем не занимали на сервере большой объем свободного места, необходимо будет также настроить и ротацию логов.
После авторизации на сервере в веб панели LogAnalyzer отображаются недавние сообщения Rsyslog.
При переходе в пункт меню Statistics — данные отображаются в виде графиков.
В LogAnalyzer можно отфильтровать вывод применив фильтры по колонкам Facility (Обьект), Severity (Серьезность), Host (Хост), Syslogtag (Системный журнал), Messagetype (Тип сообщения) нажав на какое-либо значение-тэг. После нажатия появится контекстное меню Available searches(список фильтров для поиска). Например, для хоста client1:
Add ‘client1’ to filterset — Добавить ‘client1’ в поле фильтров поиска (доступно, если хотя бы один фильтр поиска был установлен ранее)
Exclude ‘client1’ from filterset — Исключить ‘client1’ в поле фильтров поиска (доступно, если хотя бы один фильтр поиска был установлен ранее)
Filter ‘client1’ only – Фильтровать вывод только по значению ‘client1’
Show all except ‘client1’ – Вывести все, исключая ‘client1’
Предположим, необходимо просмотреть только системные сообщения для хоста client1 – выбираем третий пункт Filter ‘client1’ only.
После этого в выводе появятся сообщения, относящиеся только к хосту client1.
Для возврата и сброса фильтров можно нажать на одну из иконок раскрывающегося списка (после столбца Messagetype) Back to unfiltered view with this message at top — возврат к выводу без фильтров с текущим сообщением в топе (в зависимости от того на какой строке было выбрано).
Остались вопросы?
Я - Компаниец Никита, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
VoIP оборудование
ближайшие курсы
Новые статьи
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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.
Вы не чего не упустили? …install.php после настроек из поста — не открывается.
Добрый день. В статье файлы копировались в директорию /var/www/html/log. Для доступа в веб-интерфейс перейдите по адресу ip_адрес_сервера/log Также, попробуйте перезапустить Apache — service httpd restart, проверьте имеете ли вы доступ по 80,443 портам на сервер.