По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Для того, чтобы стать полноценным администратором Asterisk, вам необходимо уметь администрировать операционную систему IP – АТС. О том, как заботиться о своем Asterisk установленном на CentOS расскажем дальше. Сменить SSH порт Подключение и управление операционной системой CentOS осуществляется по протоколу SSH (Secure Shell), который позволяет безопасно производить операции на ОС удаленно. По умолчанию, протокол SSH работает на 22 порту. Чтобы подключиться к серверу IP – АТС, откройте программу SSH – клиент Putty, и в поле, указанном красным, введите IP – адрес или доменное имя вашего Asterisk Мы рекомендуем сохранить подключение в программе. Для этого, в поле, выделенном оранжевым, укажите имя для подключения и нажмите Save В целях повышения безопасности, вы можете его изменить следующим образом: Входим в режим редактирования демона SSH [root@localhost ~]# nano /etc/ssh/sshd_config Ищем строчку, которая содержит запись #Port 22. Обычно она находится под текстовым баннером: # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options change a # default value. #Port 22 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress :: Уберите символ # (решетку) в начале строчки и укажите номер порта, который вам необходим. Например, 7022 Port 7022 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress :: Сохраните изменения. После успешного сохранения, выполните рестарт демона SSH: [root@localhost ~]# /etc/init.d/sshd restart Управление дисковым пространством Если на вашем Asterisk включен функционал записи телефонных разговоров, то вам необходимо отслеживать свободное дисковое пространство. Мы рекомендуем прибегать в этом вопросе к автоматизации – написанию скриптов, которые будут удалять записи, старше определенного срока автоматически. Итак, перейдем к просмотру свободного дискового пространства. Команда du выводит размер файлов и папок в директории, в которой вы находитесь на текущий момент: [root@localhost ~]# du 1240 ./.mozilla/firefox/5r4h2uwt.default/gmp-gmpopenh264/1.5.3 1244 ./.mozilla/firefox/5r4h2uwt.default/gmp-gmpopenh264 4 ./.mozilla/firefox/5r4h2uwt.default/healthreport Более удобным для человеческого восприятия является команда с флагом -h du -h, которая указывает размер файлов и папок в текущей директории с указанием приставки (K – килобайт, М – мегабайт и так далее.) [root@localhost ~]# du -h 1.3M ./.mozilla/firefox/5r4h2uwt.default/gmp-gmpopenh264/1.5.3 1.3M ./.mozilla/firefox/5r4h2uwt.default/gmp-gmpopenh264 4.0K ./.mozilla/firefox/5r4h2uwt.default/healthreport Наиболее «тяжелой» с точки зрения занимаемого пространства директорией в файловой структуре Asterisk является папка /var/spool/asterisk/, в которой находятся файлы голосовой почты, системы записи, факсы и так далее. Если мы хотим узнать размер папки, в которой мы храним файлы системы записи, то добавляем к конструкции du -h флаг s: [root@localhost asterisk]# du -sh /var/spool/asterisk/monitor/ 111M /var/spool/asterisk/monitor/ Отлично, с этим разобрались. Теперь нам надо научиться понимать размер наших дисков. Это гораздо проще – укажите команду df - h и система выведет все диски, с указанием свободного пространства, общего объема и процентной загрузки: [root@localhost asterisk]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 146G 4.8G 134G 4% / tmpfs 498M 72K 498M 1% /dev/shm /dev/sda1 283M 25M 244M 10% /boot Нужные команды файловой системы Перечислим важные команды, которые пригодятся Вам в процессе администрирования вашего Asterisk: ls - вывод списка файлов и папок в текущей директории ls -l – более подробная модификация указанной выше команды. Помимо прочего, команда выводит в консоль права на файл и его владельца. cd /var/spool/asterisk/monitor/ - сделать папку с записями телефонных разговоров текущей директорией. cd .. - вернуться на одну папку назад по файловой иерархии cd ../.. - вернуться на две директории обратно cp index.php /var - скопировать файл index.php в директорию /var cp index.php /var - переместить файл index.php в директорию /var Время и настройка NTP Для синхронизации серверного времени по протоколу NTP, выполните следующие команды: service ntpd stop ntpdate pool.ntp.org service ntpd start service httpd restart Устанавливаем временную зоны сервера: Подключитесь пользователем root к серверу и выполните команду date. Система укажет Вам текущую дату, время и временную зону. [root@localhost ~]# date echo date("D M j G:i:s T Y"); Измените текущую директорию с помощью команды cd /usr/share/zoneinfo. Далее выберите наиболее подходящий регион. Например, если вы из Самары, то перейдите в папку /Europe/Samara Далее нужно создать линк настройки /etc/localtime. В случае с Самарой, команда будет такой: ln -sf /usr/share/zoneinfo/Europe/Samara /etc/localtime Установим переменную ZONE в файле /etc/sysconfig/clock на Europe/Samara. Выполните следующие команды: [root@localhost ~]# vim /etc/sysconfig/clock В открывшемся файле для редактирования через vim нажмите клавишу «o» на клавиатуре. Стрелками сотрите содержимое файла и вставьте нужную временную зону, в нашем примере будет так : ZONE=Europe/Samara. Сохраните изменения нажав :x! и затем клавишу Enter. Установите аппаратное время сервера командой /sbin/hwclock --systohc Просмотр крупных файлов tail /home/log.txt - вывод последних 10 строчек указанного файла. В данном случае файл /home/log.txt tail -f /home/log.txt - вывод последних 10 строчек указанного файла. Если в файл будет динамически добавлены новые строки, это отразится в выводе команды в реальном времени tail –n 100 /home/log.txt - вывод последних 100 строчек указанного файла. tail –n 100 /home/log.txt > result.txt - данная команда запишет 100 последних строчек файла /home/log.txt в файл result.txt
img
Самые фундаментальные навыки, которые нужно освоить инженеру, работающему с Linux - это перемещение по файловой системе и понимание того, что вас окружает. В этом разделе мы обсудим инструменты, которые позволят вам это сделать. Разберем базовые команды с примерами. pwd Когда вы входите на свой сервер, вы обычно попадаете в домашний каталог своей учетной записи. Домашний каталог - это каталог, предназначенный для хранения файлов и создания каталогов вашим пользователем. Чтобы узнать, где находится ваш домашний каталог по отношению к остальной файловой системе, вы можете использовать команду pwd. Эта команда отображает каталог, в котором мы сейчас находимся: pwd Вы должны получить обратно информацию, которая выглядит следующим образом: /home/demo Домашний каталог назван в честь учетной записи пользователя, поэтому в приведенном выше примере значение будет, если бы вы вошли на сервер с учетной записью под названием demo. Этот каталог находится в каталоге с именем /home, который сам находится в каталоге верхнего уровня, который называется root, но представлен одинарной косой чертой /. ls Теперь, когда вы знаете, как отображать каталог, в котором вы находитесь, мы можем просматривать содержимое каталога. Пока в нашем каталоге ничего нет, поэтому мы перейдем в другой, более насыщенный каталог для изучения. Введите в терминале следующее, чтобы перейти в каталог /usr/share. cd /usr/share После этого используем pwd, чтобы проверить, что мы успешно переехали: /usr/share Теперь, когда мы находимся в новом каталоге, давайте посмотрим, что внутри. Для этого мы введем команду ls: adduser groff pam-configs applications grub perl apport grub-gfxpayload-lists perl5 apps hal pixmaps apt i18n pkgconfig aptitude icons polkit-1 apt-xapian-index info popularity-contest . . . Как видите, в этом каталоге много элементов. Мы можем добавить в команду несколько необязательных флагов, чтобы изменить поведение. Например, чтобы перечислить все содержимое в расширенной форме, мы можем использовать флаг -l (для «длинного» вывода): total 440 drwxr-xr-x 2 root root 4096 Apr 17 2021 adduser drwxr-xr-x 2 root root 4096 Sep 24 19:11 applications drwxr-xr-x 6 root root 4096 Oct 9 18:16 apport drwxr-xr-x 3 root root 4096 Apr 17 2021 apps drwxr-xr-x 2 root root 4096 Oct 9 18:15 apt drwxr-xr-x 2 root root 4096 Apr 17 2021 aptitude drwxr-xr-x 4 root root 4096 Apr 17 2021 apt-xapian-index drwxr-xr-x 2 root root 4096 Apr 17 2021 awk . . . Этот вид дает нам много информации, большая часть которой выглядит довольно необычно. Первый блок описывает тип файла (если в первом столбце стоит d, это каталог, если -, это обычный файл) и разрешения. Каждый последующий столбец, разделенный пробелом, описывает количество жестких ссылок, владельца, владельца группы, размер элемента, время последнего изменения и имя элемента. Вы можете просмотреть эту информацию с помощью флага -l команды ls. Чтобы получить список всех файлов, включая скрытые файлы и каталоги, вы можете добавить флаг -a. Поскольку в каталоге /usr/share нет настоящих скрытых файлов, давайте вернемся в наш домашний каталог и попробуем эту команду. Вернуться в домашний каталог можно набрав cd без аргументов. После этого выполним команду ls -a: . .. .bash_logout .bashrc .profile Как видите, в этом выводе есть три скрытых файла вместе с . и .., которые являются специальными индикаторами. Часто файлы конфигурации хранятся как скрытые файлы, как здесь. Для записей с точками и двойными точками это не совсем каталоги, а встроенные методы обращения к связанным каталогам. Одиночная точка указывает текущий каталог, а двойная точка указывает родительский каталог этого каталога. По умолчанию ls выводит список содержимого текущего каталога. Однако мы можем передать имя любого каталога, содержимое которого мы хотели бы видеть, в конце команды. Например, мы можем просмотреть содержимое каталога с именем /etc, доступного во всех системах Linux, набрав: ls /etc Получим вывод: acpi fstab magic rc.local adduser.conf fstab.d magic.mime rc.local.orig aliases fuse.conf mailcap rcS.d aliases.db gai.conf mailcap.order reportbug.conf alternatives groff mailname resolvconf anacrontab group mail.rc resolv.conf apm group- manpath.config rmt . . . cd Мы уже сделали два перемещения каталога, чтобы продемонстрировать некоторые свойства ls. Давайте подробнее рассмотрим команду здесь. Начните с возврата в каталог /usr/share, набрав следующее: cd /usr/share Это пример изменения каталога путем указания абсолютного пути. В Linux каждый файл и каталог находится в самом верхнем каталоге, который называется «корневым» (root), но обозначается одинарной косой чертой в начале пути /. Абсолютный путь указывает расположение каталога по отношению к этому каталогу верхнего уровня. Это позволяет нам однозначно обращаться к каталогам из любого места файловой системы. Каждый абсолютный путь должен начинаться с косой черты. Альтернативой является использование относительных путей. Относительные пути относятся к каталогам относительно текущего каталога. Для каталогов, близких к текущему каталогу в иерархии, это обычно проще и короче. На любой каталог в текущем каталоге можно ссылаться по имени без косой черты в начале. Мы можем перейти в каталог locale в /usr/share из нашего текущего местоположения, набрав: cd locale Мы также можем переместиться на несколько уровней каталогов с относительными путями, указав часть пути, которая идет после пути к текущему каталогу. Отсюда мы можем перейти в каталог LC_MESSAGES в каталоге en, набрав: cd en/LC_MESSAGES Для возврата к родительскому элементу текущего каталога мы используем специальный индикатор с двумя точками, о котором мы говорили ранее. Например, теперь мы находимся в каталоге /usr/share/locale/en/LC_MESSAGES. Чтобы подняться на один уровень вверх, мы можем ввести: cd .. Это приведет нас в каталог /usr/share/locale/en. Мы можем вернуться в наш предыдущий каталог, набрав: cd - Шорткат, который вы видели ранее, который всегда будет возвращать вас в ваш домашний каталог - это использовать cd без указания каталога: cd
img
Сегодня в статье рассказываем про плагин kubectl, который использует tmux, чтобы быстрее устранить неполадки Kubernetes. Kubernetes - это процветающая платформа для взаимодействия контейнеров с открытым исходным кодом, которая обеспечивает масштабируемость, высокую доступность, надежность и отказоустойчивость приложений. Одной из его многочисленных функций является поддержка запуска пользовательских сценариев или двоичных файлов через основной двоичный файл клиента, kubectl. Kubectl очень мощный, и позволяет пользователям делать с ним все, что они могли бы сделать непосредственно в кластере Kubernetes. Устранение неполадок с псевдонимами Kubernetes Каждый, кто использует Kubernetes для управления контейнерами, знает о его особенностях - а также о сложности, причиной которого является его дизайн. Например, существует острая необходимость упростить поиск и устранение неисправностей в Kubernetes с помощью чего-то более быстрого и практически не требующего ручного вмешательства (за исключением критических ситуаций). Существует много сценариев, которые следует учитывать при устранении неполадок. В одном сценарии вы знаете, что нужно запускать, но синтаксис команды - даже если она может выполняться как одна команда - чрезмерно сложен, или для работы может потребоваться один-два входа. Например, если часто требуется перейти в запущенный контейнер в пространстве имен System, вы можете неоднократно писать: kubectl --namespace=kube-system exec -i -t <your-pod-name> Для упрощения поиска и устранения неисправностей можно использовать псевдонимы этих команд в командной строке. Например, можно добавить следующие файлы dotfiles (.bashrc или .zshrc): alias ksysex='kubectl --namespace=kube-system exec -i -t' Это один из многих примеров из хранилища общих псевдонимов Kubernetes, который показывает один из способов упрощения функций в kubectl. Для чего-то простого, подобного этому сценарию, достаточно псевдонима. Переключение на подключаемый модуль kubectl Более сложный сценарий устранения неполадок включает в себя выполнение множества команд, одной за другой, для исследования среды и выведения заключения. Одних псевдонимов недостаточно для этого варианта использования; необходима воспроизведение логического узла и корреляция между многими частями развертывания Kubernetes. На самом деле вам нужна автоматизация для получения нужного результата за меньшее время. Рассмотрим пространства имен от 10 до 20 или даже от 50 до 100, содержащие различные микросервисы в вашем кластере. Что поможет вам начать устранение неполадок в этом сценарии? Вам потребуется что-то, что может быстро определить, какой модуль в каком пространстве имен вызывает ошибки. Вам понадобится что-то, что сможет просматривать журналы всех модулей в пространстве имен. Также может потребоваться просмотр журналов определенных модулей в определенном пространстве имен, в котором были обнаружены ошибки. Любое решение, охватывающее эти вопросы, было бы очень полезно при изучении производственных проблем, а также в ходе циклов разработки и тестирования. Чтобы создать нечто более мощное, чем простой псевдоним, можно использовать плагины kubectl. Плагины подобны автономным сценариям, написанным на любом языке сценариев, но предназначены для расширения функциональных возможностей главной команды при работе в качестве администратора Kubernetes. Чтобы создать плагин, необходимо использовать правильный синтаксис kubectl- < имя-плагина > для того, чтобы скопировать сценарий в один из экспортированных путей в $PATH и предоставить ему исполняемые разрешения chmod+x. После создания плагина и перемещения его в свой путь, вы можете немедленно запустить его. Например, у меня на пути есть kubectl-krwl и kubectl-kmux: $ kubectl plugin list The following compatible plugins are available: /usr/local/bin/kubectl-krawl /usr/local/bin/kubectl-kmux $ kubectl kmux Теперь давайте изучим, как выглядит обеспечение работы Kubernetes с tmux. Использование силы tmux Tmux - очень мощный инструмент, на который полагаются многие команды для устранения проблем, связанных с упрощением работы - от разделения окон на панели для выполнения параллельной отладки на нескольких машинах до мониторинга журналов. Одним из основных его преимуществ является то, что его можно использовать в командной строке или в сценариях автоматизации. Я создал плагин kubectl, который использует tmux, чтобы сделать поиск и устранение неисправностей гораздо проще. Я буду использовать аннотации, чтобы пройти через логику за плагином (и оставить его для вас, чтобы пройти через полный код плагина): #NAMESPACE is namespace to monitor. #POD is pod name #Containers is container names # initialize a counter n to count the number of loop counts, later be used by tmux to split panes. n=0; # start a loop on a list of pod and containers while IFS=' ' read -r POD CONTAINERS do # tmux create the new window for each pod tmux neww $COMMAND -n $POD 2>/dev/null # start a loop for all containers inside a running pod for CONTAINER in ${CONTAINERS//,/ } do if [ x$POD = x -o x$CONTAINER = x ]; then # if any of the values is null, exit. warn "Looks like there is a problem getting pods data." break fi # set the command to execute COMMAND=”kubectl logs -f $POD -c $CONTAINER -n $NAMESPACE” # check tmux session if tmux has-session -t <session name> 2>/dev/null; then <set session exists> else <create session> fi # split planes in the current window for each containers tmux selectp -t $n ; splitw $COMMAND ; select-layout tiled ; # end loop for containers done # rename the window to identify by pod name tmux renamew $POD 2>/dev/null # increment the counter ((n+=1)) # end loop for pods done< <(<fetch list of pod and containers from kubernetes cluster>) # finally select the window and attach session tmux selectw -t <session name>:1 ; attach-session -t <session name>; После запуска скрипта плагина он будет выдавать выходные данные, аналогичные изображению ниже. Каждый модуль имеет собственное окно, и каждый контейнер (если их несколько) разделяется панелями в окне модуля в потоковые журналы по мере их поступления. Преимущество tmux можно увидеть ниже; При правильной конфигурации можно даже увидеть, какое окно активно (см. белые вкладки). Заключение Псевдонимы всегда полезны для простого устранения неполадок в средах Kubernetes. Когда среда становится более сложной, плагин kubectl является мощным вариантом для использования более продвинутых сценариев. Ограничения в выборе языка программирования, который можно использовать для записи плагинов kubectl, нет. Единственное требование состоит в том, чтобы соглашение об именовании в пути являлось исполняемым и не имело того же имени, что и существующая команда kubectl. Прочитать полный код или попробовать плагины можно тут
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59