По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Конфигурационные и служебные файлы и директории, в которых они хранятся, определяют принципы работы IP – АТС Asterisk, маршрутизации вызова, настройки оконечных устройств и прочих параметров.
Сегодня поговорим о том, где эти конфигурационные файлы находятся и расскажем про способ смены конфигурационных директорий «по умолчанию».
Настройка локации файлов
Файл asterisk.conf, который находится по пути /etc/asterisk, используется для настройки местонахождения директорий и файлов, которые использует Asterisk. По факту, это перечень путей:
Подробно
Пробежимся по каждому из путей:
astetcdir=/etc/asterisk - в данном директории хранятся основные конфигурационные файлы Asterisk. В основном, это файлы с расширением .conf, но так же это могут быть файлы .lua или .ael, если вы пишите диалплан на LUA или Asterisk Extension Language;
astmoddir=/usr/lib/asterisk/modules - по данному пути находятся модули Asterisk в формате .so (Shared Object), которые обеспечивают различные функции и возможности АТС;
astvarlibdir=/var/lib/asterisk - директория для хранения различных библиотек;
astagidir=/var/lib/asterisk/agi-bin - если вы используете AGI приложения в диалплане, то скрипты для Asterisk Gateway Interface необходимо перенести именно в эту директорию;
astspooldir=/var/spool/asterisk - директория, в которой хранятся файлы, используемые и создаваемые модулями Asterisk. Внутри директории находятся такие каталоги как dictate, meetme, monitor, outgoing, recording, system, tmp и voicemail;
astrundir=/var/run/asterisk - когда Asterisk запущен, у вас будет присутствовать 2 файла в этой директории: asterisk.ctl и asterisk.pid - эти файлы контролируют соответствующий процесс (PID) и сокет;
astlogdir=/var/log/asterisk - в данной директории будут храниться лог – файлы Asterisk;
Теперь давайте разберемся с параметрами в секции [options]:
transmit_silence_during_record = yes - «тихая» запись канала. Это означает, что при записи канала, никаких дополнительных звуковых уведомлений не будет подано в канал;
languageprefix = yes - с версии Asterisk 1.4 реализовано новое расположение файлов. Если данный параметр отмечен как yes, то используются новые пути, если nom то старые;
execincludes = yes - включаем директиву #exec для выполнения в файлах конфигурации;
IP – АТС Asterisk – сложная система обработки телефонных вызовов, состоящая из различных драйверов и модулей. Зачастую системные администраторы сталкиваются с неисправностью того или иного функционала: не работает входящая/исходящая связь, односторонняя слышимость, проблемы с внутренними номерами и так далее. Чтобы решить данные проблемы, надо понять их суть – посмотреть в журнал (лог – файл) Asterisk и узнать, что же происходит на самом деле. О том, как правильно собрать логи, их глубина и параметры, а также про сбор сетевого дампа расскажем в этой статье.
Настройка логирования
Приступаем к настройке. Для этого, нам необходим посмотреть содержимое файла /etc/asterisk/logger.conf. Давайте откроем его:
[root@asterisk ~]# cat /etc/asterisk/logger.conf
[general]
#include logger_general_additional.conf
#include logger_general_custom.conf
[logfiles]
#include logger_logfiles_additional.conf
#include logger_logfiles_custom.conf
Как видим, в данный файл включен «кастомная» настройка – файл logger_logfiles_custom.conf . В нем мы и будем производить необходимые настройки. Допустим, мы хотим записывать в файл logs_ echo date("Ymd"); основные события. Для этого, откроем для редактирования файл и добавим в него следующую запись:
[root@asterisk ~]# vim logger_logfiles_custom.conf
logs_ echo date("Ymd"); => notice,warning,error,debug,verbose,dtmf
Сохраняем изменения нажатием :x!.
Начиная с 13 версии Asterisk, существует возможность создавать задачи на логирования прямо из консоли. Для этого существует команда logger add channel . Например:
logger add channel logs_ echo date("Ymd"); notice,warning,error,debug,verbose,dtmf
Логирование будет остановлено при следующем рестарте Asterisk.
Глубина записи логов
В Asterisk можно задавать глубину логирования параметром verbose и debug. Первый режим более информативен для администратора, когда необходимо оперативно понять причину неисправности, тогда как второй режим более полезен для более глубоко анализа. Глубина задается от 1 до 10, где 10 – максимальный уровень информативности:
asterisk*CLI> core set verbose 3
asterisk*CLI> core set debug 3
После этого, необходимо перезагрузить модуль логирования:
asterisk*CLI> module reload logger
Дебаг на уровне каналов
В Asterisk можно производить дебаг на уровне отдельных драйверов. Например, если вы хотите отладить подключения по протоколу SIP – своя команда, по IAX – другая. Ниже представлен список:
Драйвер
Команда отладки
SIP (версия вышел 1.6)
sip set debug on
SIP (версия 1.4)
sip set debug
PJSIP
pjsip set logger on
Запись CDR
cdr set debug on
IAX2 (версия вышел 1.6)
iax2 set debug on
IAX2 (версия 1.4)
iax2 set debug
Остановить логирование
Когда отладка закончена, необходимо вернуть все в первоначальный вид. Отключаем дополнительный дебаг:
asterisk*CLI> core set verbose 0
asterisk*CLI> core set debug 0
Чтобы выключить дебаг на конкретных каналах, даем команду вида:
asterisk*CLI> sip set debug on
asterisk*CLI> iax2 set debug off
Далее, в файле /etc/asterisk/logger.conf закомментируйте или удалите добавленную строчку. После этого перегружаем модуль логирования:
asterisk*CLI> module reload logger
Дебаг Asterisk в файл
Прямо из консоли можно добавлять дебаг в файл. Для этого, его необходимо первоначально создать. Например:
[root@asterisk ~]# touch /home/asterisk_cli.txt
Далее, вызываем консоль сервера IP – АТС Asterisk следующим способом:
[root@asterisk ~]# asterisk -rvvvv | tee /home/asterisk_cli.txt
В открывшейся консоли дайте одну из перечисленных команд дебага, например, sip set debug on. Весь вывод будет сохранен в указанном файле. По окончанию укажите в консоли sip set debug off и quit.
Сетевой дамп Asterisk для анализа в Wireshark
Простейшим способом снять сетевой дамп является утилита tcpdump. Чтобы ей воспользуйтесь командой:
[root@asterisk ~]# tcpdump -s 0 -w /home/dump.cap
Затем, после снятия необходимого дампа, Вы сможете сохранить файл dump.cap в директории /home себе на компьютер, для последующего анализа. Помимо этого, в команде есть возможность дать дополнительные ключи, например -i eth0 - указание интерфейса, с которого необходимо снять дамп, а port 5060 - указать порт, на который приходят пакеты.
Было время, когда все, что связано с установкой, конфигурацией, обслуживанием инфраструктуры, выполнялось вручную. Для одной работы привлекались много сотрудников. Все было вручную. Этот процесс имел значительный риск человеческих ошибок, что приводило к понижению доступности, безопасности и производительности приложений. Не стоит забывать и общую стоимость инфраструктуры. Но благодаря современным технологиям и философии, таким как DevOps, это больше не проблема.
Теперь у нас есть несколько инструментов для выполнения задач создания, развертывания и управления инфраструктурой. Используя правильное программное обеспечение, можно автоматизировать всю инфраструктуру приводя участие человека к минимуму. Я говорю не о простых вещах, а о сложных задачах, таких как выделение ресурсов инфраструктуре, полная настройка приложений и т.д.
Автоматизация инфраструктуры - это процесс развертывания аппаратных/программных компонентов, операционной системы, сетевых компонентов, компонентов хранения данных с использованием IaC (Infrastructure as Code). Этот процесс имеет вмешательство человека только для написания такого кода, который будет иметь все детали для создания и развертывания необходимых компонентов.
Вот список наиболее популярных средств автоматизации инфраструктуры, широко используемых в отрасли.
1. Ansible
Ansible - это ядро с открытым исходным кодом, который автоматизирует развертывание приложений, управление конфигурацией, организацию ИТ. Основана в 2012 году и написана на самом трендовом в настоящее время языке - Python. Для реализации всей автоматизации Ansible использует плейбуки, где все конфигурации написаны на удобочитаемом языке - YAML.
Anible имеет безагентную архитектуру, то есть не нужно устанавливать какое-либо программное обеспечение отдельно на всех серверах. Он следует модели на основе push, где необходимо иметь локальную систему со всеми необходимыми конфигурациями, и эти конфигурации перемещаются на целевые серверы.
Доступные функции:
Автоматизация с помощью простого удобочитаемого языка;
Безагентная архитектура позволяет подключаться к серверам через обычный SSH;
Модель push передает конфигурации на сервер с локальной машины, управляемой вами.
Построен на Python, поэтому поддерживает множество библиотек и функциональных возможностей данного скриптового языка;
Кураторская коллекция модулей Ansible инженерной команды Red Hat.
Для больших предприятий Red Hat предлагает Ansible Tower.
2. SaltStack
Stack может с высокой скоростью выполнять управление инфраструктурой, управление конфигурацией и оркестровку. По сравнению с другими подобными инструментами, такими как Chef и Puppet, быстрота SaltStack является существенным отличием. Данное решение было представлено в 2011 году, и так же, как и Anible, он написан на Python.
Он имеет архитектуру master-slave, где Salt Master является главным демоном, который управляет всем, а Salt Minions являются подчиненными демонами, установленными на каждой управляемой системе для выполнения команд, отправленных Salt Master. Salt Master отправляет необходимые настройки и команды Salt Minions, а Salt Minions выполняют их на своей машине, чтобы применить всю IT-автоматизацию.
Функции Stack:
Рассчитанный на масштаб и скорость, один мастер может работать с 10000 миньонов.
Очень прост в настройке, имеет единую архитектуру удаленного выполнения.
Файлы конфигурации в Stack поддерживают все виды языков.
Он может выполнять команды на удаленных системах параллельно, что помогает ускорить автоматизацию.
Предоставляет простой интерфейс программирования с использованием API Python.
3. Chef
Одной из основных причин производственных инцидентов является несогласованность приложения или конфигурации. Это обычная проблема, и Chef стремится исправить это.
Chef - это инструмент управления конфигурацией для управления инфраструктурой. Он был написан на Ruby, а первый релиз состоялся в 2009 году компанией OpsCode.
Продукт Chef Infrastructure Management обеспечивает соответствие всех сред одним и тем же конфигурациям в инфраструктуре. Она предоставляет различные инструменты для управления инфраструктурой вроде Chef Infra, Chef Automate, Chef Enterprise и Chef Community.
Функции Chef Infrastructure Management:
Конфигурации написаны на языке YAML;
Она поставляется с несколькими инструментами разработки для написания книг рецептов (конфигураций), тестирования и разрешения зависимостей;
Корпоративная версия предоставляет возможности совместной работы для упрощения обработки сложных сред.
Поддержка интеграции с сотнями инструментов DevOps, таких как GitHub, Jenkins, Azure Terraform.
4. Bolt
Bolt - один из открытых проектов Puppet.
Это безагентный инструмент для автоматизации ИТ. С помощью Bolt можно автоматизировать все задачи, выполняемые вручную, что необходимо сделать сегодня в соответствии с требованиями. Я говорю о таких задачах, как развертывание приложения, устранение неполадок серверов, остановка и перезапуск службы, исправление и обновление систем и т.д.
Поскольку Bolt не содержит агентов, нет необходимости устанавливать какое-либо программное обеспечение агента на удаленных целевых машинах. Необходимо установить Bolt в локальной системе и подключить удаленные целевые системы с помощью SSH или WinRM.
Основные возможности Bolt:
Запишите план болта (сочетание команд, сценариев и задач) в YAML, простой в использовании и изучении.
Многие существующие планы и рабочие процессы доступны в Puppet Forge (библиотека модулей).
Переместите автоматизацию с Bolt на Puppet Enterprise для лучшей масштабируемости.
5. Terraform
Terraform - это средство выделения ресурсов инфраструктуры с открытым исходным кодом, используемое для создания и развертывания инфраструктуры с использованием инфраструктуры в качестве кода (IaC). Hashicorp представила его в 2014 году.
Terraform довольно хорошо работает с такими поставщиками облачных технологий, как AWS, Azure, GCP, Alibaba. С помощью Terraform можно развертывать инфраструктуру и управлять ею на любом из этих облачных поставщиков. В настоящее время Terraform широко используется многими организациями для управления Kubernetes кластерами.
Преимущества Terraform:
Простое управление конфигурацией неизменяемой инфраструктуры.
Может выполнять полную оркестровку инфраструктуры, а не только управление конфигурацией.
Использует язык конфигурации HashiCorp (HCL), который удобочитаем и очень прост для изучения.
Предоставляет готовые модули и провайдеров для сотен инструментов, и технологий через реестр terraform.
Заключение
Это был мой список самых популярных решений для автоматизации инфраструктуры, которые предлагают продукты для организаций среднего размера на уровне предприятия. Если вы попадаете в домен DevOps и хотите автоматизировать свою инфраструктуру и связанные с ней монотонные задачи, это подходящее время, чтобы выбрать одно из вышеупомянутых решений и начать автоматизацию.