Как настроить статический ip-адрес на сервере centos 7

Введение

Asterisk — бесплатное решение для организации voip телефонии. Он обладает всеми возможностями обычных АТС, но предоставляет более богатый функционал по управлению звонками. За относительную простоту настройки, по сравнению с цифровыми АТС, бесплатность и широкие возможности он и снискал такую популярность.

Freepbx — бесплатный веб интерфейс для управления астериском. Он существенно упрощает работу с конфигурациями, позволяет выполнять некоторые функции людям, вообще далеким от астериска. Например, с его помощью практически любого можно научить управлять учетными записями пользователей.

Лично я больше люблю настраивать asterisk вручную, нежели с помощью готовой панели. Да, конфигов астериск очень много, они объемные, работать с ними не удобно. Тем не менее, чистый астериск предоставляет практически неограниченную возможность по конфигурированию. С готовой панелью вы будете ограничены ее возможностями. Но если они вас полностью удовлетворяют, то лучше использовать ее.

Дальнейшая установка FreePBX будет проходить по следующей схеме:

  1. Подготовка системы.
  2. Установка MariaDB.
  3. Настройка Web сервера.
  4. Установка NodeJS.
  5. Установка Asterisk.
  6. Установка и настройка Freepbx.

Для отладки и тестирования работы voip я рекомендую сервис Zadarma. Плюс его в том, что после регистрации вы получите настройки пира для внутренней сети оператора. И внутри этой сети вы можете бесплатно звонить. Например, я одного пира регистрирую на sip клиенте смартфона и с него звоню на второй аккаунт, пир от которого настроен в астериске. Таким образом эмулирую внешний звонок. Удобно отлаживать различные конфигурации звонков, не требуя платного подключения.

Настройка Web сервера

Для работы панели FreePBX нужен web сервер с php. Я буду использовать версию php 7.1. Более подробно про настройку web срвера на Centos вы можете прочитать отдельно. Сейчас же коротко пройдем по шагам весь процесс.

Подключаем репозиторий epel, если еще не сделали это ранее.

# yum install epel-release

Подключаем remi репозиторий для centos 7.

# rpm -Uhv http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Ставим пакет yum-utils.

# yum install yum-utils

Активируем репу remi-php71, для этого выполняем команду.

# yum-config-manager --enable remi-php71

Устанавливаем необходимые пакеты для работы сервера voip.

# yum install wget php php-pear php-cgi php-common php-curl php-mbstring php-gd php-mysql php-gettext php-bcmath php-zip php-xml php-imap php-json php-process php-snmp

Далее установим httpd. Он, по идее, должен установиться в качестве зависимости на предыдущем шаге, но на всякий случай проверьте.

# yum install httpd

Теперь нам нужно изменить некоторые параметры httpd — запустить его от пользователя asterisk и включить опцию AllowOverride. Это можно сделать руками в файле /etc/httpd/conf/httpd.conf, либо автоматически с помощью sed.

# sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf
# sed -i 's/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf

Мы просто выставили следующие параметры:

  • User asterisk
  • Group asterisk
  • AllowOverride All

Httpd запускать пока не надо, так как пользователя asterisk мы еще не создали. Сделаем это после установки asterisk.

Изменим параметр php, который отвечает за максимальный размер загружаемого файла. Дефолтное значение слишком низкое для freepbx. Для этого в /etc/php.ini устанавливаем параметр.

upload_max_filesize = 120M

Сделать это можно либо руками, либо автоматически с помощью sed.

# sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini

С веб сервером закончили. Продолжаем подготовку к установке FreePBX на CentOS.

Список пользователей — /etc/passwd

Список всех созданных пользователей хранится в текстовом файле —

Открыть список пользователей можно также следующей командой.

Формат данных в файле выглядит следующим образом.

  1. Логин пользователя: используется для входа в учетную запись. Длина логина не должна превышать 32 символа.
  2. Пароль: если вместо пароля стоит символ «x», то это означает, что пароль зашифрован и хранится в файле . Сам хеш пароля создается при создании пароля с помощью команды
  3. Идентификатор пользователя (UID): при создании нового пользователя ему присваивается идентификатор — 32 битовое целое число (UID). Для пользователя root всегда используется идентификатор со значением 0. Идентификаторы в пределах 1-9 зарезервированы для предопределенных аккаунтов. UID в пределах 100-999 зарезервированы для прочих системных аккаунтов.
  4. Идентификатор основной группы (GID): — 32 битовое целое число. Учетная может принадлежать одной основной группе. Доступные группы и пользователей, которые к ним причислены можно увидеть в файле /etc/group.
  5. Контактная информация: добавляется с помощью команды .
    5.1 Полное имя пользователя
    5.2 Рабочий адрес
    5.3 Рабочий номер телефона
    5.4 Домашний номер телефона
  6. Домашняя директория пользователя: полный путь директории в которую попадет пользователь после входа в учетную запись. Если директория не будет указана, то по умолчанию домашней директорией становится корень — .
  7. Командная оболочка: полный путь к файлу командной оболочки. Изменить оболочку можно с помощью команды .

Установка Asterisk

Установка астериска выполняется путем сборки исходников. Сама процедура проходит в 3 этапа:

  1. Установка DAHDI (драйверов плат интерфейсов);
  2. Установка LibPRI (библиотека для работы с потоковыми TDM-интерфейсами);
  3. Собственно, сборка и установка Asterisk.

1. Сборка DAHDI

Загружаем исходник, распаковываем его и переходим в распакованный каталог:

wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz

tar -xvf dahdi-linux-complete-current.tar.gz

cd dahdi-linux-complete-*/

Выполняем сборку и установку:

make

make install

make config

Выходим из каталога с исходником:

cd ..

2. Сборка LibPRI

Процедура, во многом, похожа на сборку DAHDI. Загружаем исходник, распаковываем его и переходим в распакованный каталог:

wget https://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz

tar -xvf libpri-current.tar.gz

cd libpri-*/

Выполняем сборку и установку:

make

make install

Выходим из каталога с исходником:

cd ..

3. Установка самого астериска

Для начала, загружаем исходник на сервер. Так как мы планируем установить LTS версию, заходим на страницу https://www.asterisk.org/downloads/asterisk/all-asterisk-versions, раздел «Long Term Support (LTS) Releases» и копируем ссылку на загрузку пакета:

* Certified Asterisk — бизнес версия с поддержкой для коммерческих клиентов.

Используя ссылку, скачиваем на сервер программу:

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz

Распаковываем архив и переходим в него:

tar -xvf asterisk-*.tar.gz

cd asterisk-*

Используем встроенный скрипт, чтобы установить зависимости для астериска:

./contrib/scripts/install_prereq install

./contrib/scripts/install_prereq install-unpackaged

Чистим образовавшиеся временные файлы:

make distclean

Добавляем библиотеку для работы с mp3:

./contrib/scripts/get_mp3_source.sh

Конфигурируем исходник:

./configure —prefix=/usr —sysconfdir=/etc —localstatedir=/var —libdir=/usr/lib64 —with-dahdi —with-pri —with-iconv —with-libcurl —with-speex —with-mysqlclient

* полный перечень опция и что они означают можно посмотреть командой ./configure -h.

Продолжаем настройку:

make menuselect

Выбираем необходимые компоненты (в данном примере res_config_mysql, app_mysql, cdr_mysql):

Запускаем сборку и установку:

make

make install

Устанавливаем скрипты для автозапуска АТС и готовые конфигурационные файлы:

make config

make samples

Установка завершена!

Установка пакетов CentOS

Ghostscript. Конвертация PDF в TIFF

Необходимо только, если пакет еще не установлен!

Проверяем местоположение запускаемого файла

which gs
/usr/local/bin/gs

Необходимые пакеты для сборки из исходников

sudo yum install gcc gcc-c++ make

Получаем исходные файлы

wget http://downloads.ghostscript.com/public/ghostscript-9.10.tar.gz
tar -zxf ghostscript-9.10.tar.gz 
cd ghostscript-9.10

Сборка пакета

./configure
make
make install
SpanDSP. Работа с факсами

Необходимо только, если пакет еще не установлен!

установка зависимостей

yum install libtiff-devel

устнановка SpanDSP

wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.6pre18.tgz
tar zxf spandsp-0.0.6pre18.tgz
cd spandsp-0.0.6/
./configure
make && make install

Прописать в /etc/ld.so.conf путь к /usr/local/lib

ln -s /usr/local/lib/libspandsp.so.2 /usr/lib/libspandsp.so.2 
rm /etc/ld.so.cache && ldconfig
Asterisk

Пакеты для сборки Asterisk

sudo yum install gcc gcc-c++ make wget subversion libxml2-devel ncurses-devel openssl-devel libxml2-devel sqlite-devel libuuid-devel vim-enhanced 

Пакеты для работы ODBC

sudo yum install unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel

Пакеты для сборки модулей MySQL (elastix)

yum install mysql-devel

Сборка Asterisk
Для дистрибутива Elastix 2.4 используется Asterisk версии 1.8.20.0 в нем было замечено неисправное приложение SendFax. Следует использовать версию не ниже 1.8.20.2.

wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.20.2.tar.gz
tar zxf asterisk-1.8.20.2.tar.gz
cd asterisk-1.8.20.2
./configure
make menuselect   

Требуется проверить, что будут выбраны для сборки следующие модули:

  • Add-ons — app_mysql
  • Add-ons — cdr_mysql
  • Add-ons — res_config_mysql
  • Call Detail Recording — cdr_adaptive_odbc
  • Call Detail Recording — cdr_manager
  • Call Detail Recording — cdr_odbc
  • Channel Event Logging — cel_odbc
  • Resource Modules — res_agi
  • Resource Modules — res_odbc
  • Resource Modules — res_fax
  • Resource Modules — res_fax_spandsp

Запустим сборку Asterisk:

make

Удалим старые модули

rm -rf /usr/lib/asterisk/modules/*

Установим новые модули

make install
asterisk -rx'core restart now'

Доступ к FreePBX

Войдите в web интерфейс Elastix.
Перейдите в раздел «Security»

Разрешите доступ к интерфейсу FreePBX:

После этого FreePBX интерфейс будет доступен по адресу

http:///admin

<IP_ADRESS> — IP адрес АТС

Загрузка дополнительных модулей

  1. Модуль pt1c предназначен для настройка интерфейса на стороне АТС для связи с 1С.
  2. Модуль pt1c_fax — дработанный модуль . Добавлен механизм заполнения информации об имени файла факса, в таблице истории звонков.
  3. Модуль pt1c_core — доработанный модуль . Добавлен механизм оповещения по AMI о входящем вызове. Механизм необходим для перехвата звонка на ответственного менеджера.

Панель телефонии 1.4.26.26+ и 1.2.24.18+

Установка дополнительных модулей

На примере модуля Asterisk AJAM Settings (PT1C).

Перед началом интеграции настоятельно рекомендуем делать РЕЗЕРВНУЮ КОПИЮ вашей конфигурации!!!

Войдите в веб-интерфейс FreePBX под учетной записью администратора.

Переходим на вкладку Module Admin (Администрирование модулей)

  • Для загрузки модуля на сервер используйте действие Upload module (Закачать модули).
  • Укажите расположение модуля.
  • Используйте действие Upload (Загрузить).

Теперь в управлении модулями устанавливаем модуль Asterisk AJAM Settings (PT1C).

  • Для этого в списке действий выбираем Install (Установить).
  • Выполните действие Progress (Запустить процесс).
  • Подтверждаем установку,и через пару секунд плагин будет установлен.
  • Теперь необходимо нажать оранжевую кнопку  Apply Configuration Changes (Применить изменения в конфигурации).

Необходимо внимательно отнестись к этому вопросу. Не следует разрешать AJAM на интерфейсе с реальным IP.

Учетная запись менеджера Asterisk (Elastix)

Теперь добавим менеджера, под которым будет работать панель телефонии.
Необходимо перейти в интерфейс модуля Manager API

Указать имя / пароль менеджера, указать разрешенные / запрещенные сети:

Обратите внимание на поля Запрещены и Разрешены. Запретить следует все адреса, а разрешить только адрес сервера, на котором будет работать панель телефонии

В примере параметр Разрешены установлен в значение 0.0.0.0/0.0.0.0 (разрешено подключаться под всеми сетевыми адресами)

Установить значения привилегий:

Не устанавливайте полные права для учетной записи! Больше — не всегда лучше!

Настройка роутинга

Итак, мы добавили второй интерфейс, настроили его. Теперь может встать задача, настройки маршрутизации трафика до определенного хоста или сети через старый шлюз (например, там трафик дешевле). Для этого необходимо прописать маршрут. Это делается командой route.#route add -host 95.11.13.5 gw 192.168.192.1 dev eth0

Делаем ping и traceroute (mtr) до хоста 95.11.13.5. Видим, что трафик идет через указанный шлюз.

Примечание: часто думают, что на этом настройка закончена, но после перезагрузки или рестарта сетевых интерфейсов маршруты слетают. Тут и добавка в rc.local может не помочь Правильно прописать маршруты «навсегда» так.Создаем файл:

#nano /etc/sysconfig/network-scripts/route-eth0ADDRESS0=95.11.13.5GATEWAY0=192.168.192.1NETMASK0=255.255.255.255

Сохраняем. Теперь после service network restart данный маршрут пропишется автоматически.

Примечание: ethX тот, который находится в одной сети с шлюзом, через который мы хотим пустить трафик

DNS сервера указываются в файле /etc/resolv.conf Впишите нужные. После правки что-то перегружать не нужно.

nameserver 8.8.8.8nameserver 208.67.222.222

Сетевый настройка завершены

Группы пользователей

В Linux нескольких пользователей можно объединять в группы. Чаще всего группы используются для наделения членов группы определенными правами и организации совместного доступа к файлам.

По умолчанию при создании нового пользователя создается новая группа с таким же именем, что и у пользователя. Так сделано потому что права на запись, чтение, выполнение и т.п. привязываются не к пользователю, а к группе в которой он состоит.

Любой пользователь может состоять в одной или нескольких группах. Группы различаются на главные и вторичные. Главная (primary) группа всегда одна и к ней привязываются пользовательские процессы, а также файлы и папки, которые создал пользователь.

Узнать к каким группам принадлежит тот или иной пользователь.

или

Узнать группы текущего пользователя.

Узнать идентификаторы групп пользователя.

Узнать идентификаторы текущего пользователя.

Узнать какие пользователи состоят в группе.

Создание новой группы пользователей.

Удаление группы пользователей

Добавление пользователя в группу.

Удаление пользователя из группы.

Что такое ELK Stack

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

  • Elasticsearch используется для хранения, анализа, поиска по логам.
  • Kibana представляет удобную и красивую web панель для работы с логами.
  • Logstash сервис для сбора логов и отправки их в Elasticsearch. В самой простой конфигурации можно обойтись без него и отправлять логи напрямую в еластик. Но с logstash это делать удобнее.
  • Beats — агенты для отправки логов в Logstash. Они бывают разные. Я буду использовать Filebeat для отправки данных из текстовых логов linux и Winlogbeat для отправки логов из журналов Windows систем.

К этой связке еще добавляется Nginx, который проксирует соединения на Kibana. В самом простом случае он не нужен, но с ним удобнее. Можно, к примеру, добавить авторизацию или ssl сертификат, в nginx удобно управлять именем домена. В случае большой нагрузки, разные службы разносятся по разным серверам или кластерам. В своем примере я все установлю на один сервер. Схематично работу данной системы можно изобразить вот так:

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

Если у вас еще нет своего сервера с CentOS 8, то рекомендую мои материалы на эту тему:

  • Установка CentOS 8.
  • Настройка CentOS.

Если у вас еще не настроен сервер с Debian, рекомендую мои материалы на эту тему:

  • Установка Debian на сервер
  • Базовая настройка Debian после установки

Создание пользователя asterisk и запуск

По-умолчанию, asterisk установлен от root и будет запускаться от него же. Я предлагаю для этого создать отдельного пользователя и запускать астериск от него. Для этого создаем пользователя и добавляем его в некоторые группы.

# groupadd asterisk
# useradd -r -d /var/lib/asterisk -g asterisk asterisk
# usermod -aG audio,dialout asterisk
# chown -R asterisk.asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib64/asterisk

Настраиваем Asterisk на запуск под этим пользователем. Для этого добавляем в конфиг /etc/sysconfig/asterisk параметры:

AST_USER="asterisk"
AST_GROUP="asterisk"

Теперь добавим примерно то же самое в сам конфиг астера /etc/asterisk/asterisk.conf.

runuser = asterisk
rungroup = asterisk

Пробуем запустить asterisk:

# systemctl start asterisk

Если нет сообщений об ошибке, скорее всего все в порядке. Проверяем статус службы.

# systemctl status asterisk

Asterisk запустился, но есть небольшие ошибки.

radcli: rc_read_config: rc_read_config: can't open /etc/radiusclient-ng/radiusclient.conf: No such file or directory

Связаны с тем, что в конфигах неверно указан путь к radiusclient. Сейчас исправим это.

# sed -i 's";\"\"g' /etc/asterisk/cdr.conf
# sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cdr.conf
# sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cel.conf

Перезапускаем asterisk и убеждаемся, что ошибок нет. Проверим, все ли в порядке, зайдя в консоль:

# asterisk -r

Если получили такой же вывод команды, значит все в порядке, астериск 16 установлен. Добавим его теперь в автозагрузку.

# systemctl enable asterisk

Обновление phpmyadmin

Для начала напомню, как в vestacp зайти в phpmyadmin. Я не сразу нашел соответствующую ссылку. Она в разделе DB.

Конфигурационный файл находится на сервере по адресу /etc/phpmyadmin/config.inc.php. Vesta использует в своей работе обычную версию phpmyadmin, которую можно установить из подключенных репозиториев в системе.

Таким образом, для обновления phpmyadmin в vestacp достаточно воспользоваться стандартным пакетным менеджером в системе (apt, yum и т.д.) и выполнить соответствующую команду по обновлению системного пакета.

Если по какой-то причине не хочется использовать репозиторий, можно просто положить свежие исходники в соответствующий каталог — /usr/share/phpMyAdmin.

Подготовка сервера

1. Устанавливаем необходимые программы

Обновляем пакеты:

yum update

Устанавливаем пакеты:

yum install gcc wget ntpdate automake libtool

* gcc нужен для сборки исходников, wget — для загрузки файлов из командной строки; ntpdate — синхронизации времени; automake — участвует в создании Makefile при запуске configure; libtool — обеспечивает процесс сборки и использования динамических библиотек.

2. Настраиваем время

Устанавливаем временную зону:

timedatectl set-timezone Europe/Moscow

* в данном примере московское время.

Устанавливаем утилиту для синхронизации времени и запускаем ее:

yum install chrony

systemctl enable chronyd —now

3. Настройка безопасности:

Создаем новый сервис в брандмауэре:

firewall-cmd —permanent —new-service=asterisk

Добавим в сервис нужные порты:

firewall-cmd —permanent —service=asterisk —add-port=5060/tcp

firewall-cmd —permanent —service=asterisk —add-port=5060/udp

firewall-cmd —permanent —service=asterisk —add-port=5061/tcp

firewall-cmd —permanent —service=asterisk —add-port=5061/udp

firewall-cmd —permanent —service=asterisk —add-port=4569/udp

firewall-cmd —permanent —service=asterisk —add-port=5038/tcp

firewall-cmd —permanent —service=asterisk —add-port=10000-20000/udp

* где 5060 — SIP, 5061 — SIP over TLS, 4569 — IAX, 5038 — AMI (Asterisk Manager Interface), 10000-20000 — диапазон для динамических портов.

Теперь добавляем созданный сервис как разрешенный:

firewall-cmd —permanent —add-service=asterisk

и перезапускаем фаервол:

firewall-cmd —reload

Заключение

В данной инструкции мы аккуратно собрали все необходимые компоненты для настройки связки asterisk+freepbx на сервере CentOS 7. Скачали последние версии софта, собрали его из исходников и установили. Таким образом мы полностью подготовили сервер к конфигурированию телефонии. Если сервер будет смотреть в интернет, нужно обязательно не забыть аккуратно настроить firewall и хотя бы fail2ban для обеспечения минимальной, хотя в большинстве случаев и вполне достаточной, защиты.

Примером настройки asterisk с нуля может служить указанная статья. Ее можно взять за основу для целостного понимания базового функционала, который можно реализовать с помощью астериск.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

Заключение

На простом примере показал, как можно работать с sngrep и анализировать sip трафик вашего сервера астериск. Дамп трафика можно сохранить в файл, отправить кому-нибудь, либо посмотреть в Wireshark. Сам я только недавно познакомился с этим инструментом. Опыта чтения дампов особо нет, но разбираюсь. Жизнь заставляет :) В принципе, ничего суперсложного нет, чаще всего можно разобраться и понять, в чем же проблема.

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

Перед тем, как обращаться к провайдеру, убедитесь, что у вас с сетью и фаерволом все в порядке, сервер провайдера как минимум пингуется и нету потерь в трейсе.

Не забывайте пользоваться поиском во время работы. Он обновляет результаты в режиме реального времени, что очень удобно. В моем примере я запускал анализатор без ключей, он анализировал весь sip поток. Вы можете его сразу ограничить только конкретным сетевым интерфейсом, либо ip адресом, если дебажите что-то конкретное.

По большому счету, sngrep не делает ничего особенного. Собирать и анализировать sip поток можно и с помощью tcpdump, но в sngrep это более удобно и наглядно, особенно визуализация со стрелочками :)

Другие материалы по asterisk:

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте .

Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.
  • Установка и настройка астериск с нуля
  • Мониторинг asterisk в zabbix
  • Соединение двух серверов астериск
  • Анализ SIP трафика
  • Замена +7 на 8 и наоборот
  • Ограничение на звонки для группы номеров

Заключение

Я постарался рассказать подробно и понятно о полной настройке ELK Stack. Информацию в основном почерпнул в официальной документации. Мне не попалось более ли менее подробных статей ни в рунете, ни в буржунете, хотя искал я основательно. Вроде бы такой популярный и эффективный инструмент, но статей больше чем просто дефолтная установка я почти не видел. Буквально одна на хабре попалась с какой-то более ли менее кастомизацией.

Какие-то проверенные моменты я не стал описывать в статье, так как посчитал их неудобными и не стал использовать сам. Например, если отказаться от logstash и отправлять данные с beats напрямую в elasticsearch, то на первый взгляд все становится проще. Штатные модули beats сами парсят вывод, устанавливают готовые визуализации и дашборды в Kibana. Вам остается только зайти и любоваться красотой :) Но на деле все выходит не так красиво, как хотелось бы. Кастомизация конфигурации усложняется. Изменение полей в логах приводит к более сложным настройкам по вводу этих изменений в систему. Все настройки поступающей информации переносятся на каждый beats, изменяются в конфигах отдельных агентов. Это неудобно.

В то же время, при использовании logstash, вы просто отправляете данные со всех beats на него и уже в одном месте всем управляете, распределяете индексы, меняете поля и т.д. Все настройки перемещаются в одно место. Это более удобный подход. Плюс, при большой нагрузке вы можете вынести logstash на отдельную машину.

Я не рассмотрел в своей статье такие моменты как создание визуализаций и дашбордов в Кибана, так как материал уже и так получился объемный. Я устал писать эту статью :) Смотрите остальные мои материалы по данной теме. Там есть примеры.

Так же я не рассмотрел такой момент. Logstash может принимать данные напрямую через syslog. Вы можете, к примеру, в nginx настроить отправку логов в syslog, минуя файлы и beats. Это может быть более удобно, чем описанная мной схема. Особенно это актуально для сбора логов с различных сетевых устройств, на которые невозможно поставить агента, например mikrotik. Syslog поток так же можно парсить на ходу с помощью grok. Отдельно надо рассмотреть автоочистку старых индексов в elasticsearch.

Подводя итог скажу, что с этой системой хранения логов нужно очень вдумчиво и внимательно разбираться. С наскока ее не осилить. Чтобы было удобно пользоваться, нужно много всего настроить. Я описал только немного кастомизированный сбор данных, их визуализация — отдельный разговор. Сам я постоянно использую и изучаю систему, поэтому буду рад любым советам, замечаниям, интересным ссылкам и всему, что поможет освоить тему.

Все статьи раздела elk stack — https://serveradmin.ru/category/elk-stack/.

Онлайн курс «DevOps практики и инструменты»

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

Проверьте себя на вступительном тесте и смотрите программу детальнее по .

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: