По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Всем привет! В одной из прошлых статей мы писали об организации офисной IP-DECT телефонной сети на базе решения Grandstream DP715. Так вот на днях к нам приехал его “старший брат” - Grandstream DP750 с трубками DP720. Поэтому сейчас будет небольшой анпакинг. Потом мы настроим базу и трубки, а также зарегистрируем их на IP-АТС Asterisk 13. /p> $dbName_ecom = "to-www_ecom"; $GoodID = "3437215979"; mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($dbName_ecom) or die(mysql_error()); $query_ecom = "SELECT `model`, `itemimage1`, `price`, `discount`, `url`, `preview115`, `vendor`, `vendorCode` FROM `items` WHERE itemid = '$GoodID';"; $res_ecom=mysql_query($query_ecom) or die(mysql_error()); $row_ecom = mysql_fetch_array($res_ecom); echo 'Кстати, купить '.$row_ecom['vendor'].' '.$row_ecom['vendorCode'].' можно в нашем магазине Merion Shop по ссылке ниже. С настройкой поможем 🔧 Купить '.$row_ecom['model'].''.number_format(intval($row_ecom['price']) * (1 - (intval($row_ecom['discount'])) / 100), 0, ',', ' ').' ₽'; $dbName = "to-www_02"; mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($dbName) or die(mysql_error()); Обзор База DP750 и трубки DP720 поставляются в фирменной коробке от производителя. В отличие от DP715, база DP750 больше не является ещё и зарядным стаканом для трубок. В комплект поставки базы DP750 входит: Сама база DP750; Зарядное устройство на 5В; Ethernet – кабель; Руководство по быстрой установке; Лицензионное соглашение На крышке базы DP750 расположены: Индикатор питания; Индикатор доступности сети; Индикатор регистрации SIP-аккаунта; Индикатор занятости линии. Мигает, если занята хотя бы одна линия; Индикатор радио-сигнала. Мигает, если база готова принимать регистрацию трубки Мы, как назло, забыли сфотографировать базу включённой, чтобы продемонстрировать индикацию :( На боковой панели располагаются: Разъём для подключения блока питания; Кнопка сброса к заводским настройкам; Физический интерфейс для Fast Ethernet; И физическая кнопка для ввода базы в режим поиска трубки. Запомните её, в процессе регистрации трубок на базе она нам очень понадобится и не раз :) Используется также для “пинга” зарегистрированных трубок. В комплект поставки трубок DP720 входит: Сама трубка DP720; 2 батарейки типа ААА (аккумуляторы); Задняя крышка отсека для батареек и зажим для крепления на поясе; Зарядный стакан; Блок питания на 5В; Руководство Вот так это выглядит в собранном состоянии: Настройка Итак, перейдём к настройке. Сначала выясним IP-адрес базы, который она по умолчанию получит по DHCP. Для этого берём одну трубку, нажимаем на кнопку слева от центральной, далее Settings → Registration начнётся поиск базы. После этого на базе зажимаем на 15 секунд ту самую кнопку для ввода базы в режим поиска, пока индикатор радио сигнала не начнёт мигать. Через некоторое время трубка зарегистрируется на базе. У неё пока может не быть SIP-аккаунта, а база пока может не знать об IP-АТС. Теперь мы можем узнать IP-адрес базы. Берём трубку, далее Status и стрелочками листаем до IP-адреса. После чего вбиваем его в адресную строку браузера: Логин и пароль по умолчанию admin/admin Первое, на что обращаешь внимание – это полностью переработанный дизайн web-интерфейса по сравнению с DP715. На вкладке STATUS пока может быть пусто. Настроим SIP-профиль для нашей базы, т.е укажем как найти IP-АТС. Для этого заходим во вкладку PROFILE → General Settings и в поле SIP Server указываем адрес нашей IP-АТС и порт, на который она принимает регистрации. На данном этапе, рекомендуем позаботиться о том, чтобы на Вашей IP-АТС уже был заведён внутренний номер для трубок, которые Вы хотите зарегистрировать. Как создать внутренний номер на FreePBX 13, можно почитать в нашей статье. Если внутренние номера готовы, то переходим на вкладку DECT, далее SIP Account Settings и заполняем в соответствии с настройками внутреннего номера, который мы завели на IP-АТС. В нашем случае, это номер 124 – User1. На забываем нажимать Save and Apply Теперь берём трубку и вводим её в режим регистрации - нажимаем на кнопку слева от центральной, далее Settings → Registration начнётся поиск базы. Подходим к базе и зажимаем кнопку для ввода в режим регистрации. Напомним, зажимать нужно в течение 15 секунд, пока индикатор не начнёт мигать. Через какое-то время, трубка зарегистрируется на базе и вы увидите имя внутреннего номера на дисплее. Если регистрируется подряд несколько трубок, то может потребоваться перезагрузить базу. Проверить, что трубка успешно зарегистрировалась, теперь можно на вкладке STATUS
img
Icinga - это бесплатное средство мониторинга с открытым исходным кодом для вашего дата-центра. Это приложение для мониторинга компьютерных систем и работы сети, которое проверяет состояние готовности вашей сети и компьютерных ресурсов, уведомляет о перебоях в работе системы, генерирует данные о производительности ваших ресурсов, а также обеспечивает высокую степень работоспособности и возможность настройки мониторинга распределённых систем со встроенной функцией кластера. Icinga была создана в 2009 году в качестве разветвления средства мониторинга Nagios. Но потом была заново переписана на С++ и стала одним из самых популярных инструментов мониторинга в интернете. Слово "Ицинга" - это Зулусское слово, означающее "оно ищет", или "оно обозревает", или "оно исследует". В этом учебном пособии мы покажем вам, как установить и настроить инструмент мониторинга Icinga 2 на сервере LTS Ubuntu 20.04. Мы установим Icinga 2 из официального репозитория, а затем настроим icingaweb2, облегченный и расширяемый веб-интерфейс для системы мониторинга icinga2. Предпосылки Для этого руководства мы установим icinga2 и icingaweb2, используя сервер Ubuntu 20.04 с 2 ГБ оперативной памяти. Но эти данные меняются в зависимости от размера вашей ИТ-инфраструктуры. Что мы будем делать? Установка Icinga2 и Nagios Monitoring Plugins; Установка и настройка базы данных MySQL; Установка и настройка модуля Icinga MySQL; Установка Apache2 и PHP-пакетов; Установка и настройка Icingaweb2; Установка Icinga2 Stack Post. Шаг 1 - Установка Icinga2 и системы мониторинга Nagios Сперва мы добавим репозиторий icinga2 для Ubuntu 20.04 и установим пакеты icinga2 и плагины мониторинга Nagios. Добавьте GPG ключ Icinga2 в вашу систему. curl https://packages.icinga.com/icinga.key | apt-key add - Теперь перейдите в директорию '/etc/apt/sources.list.d' и создайте новый репозиторий 'icinga-focal.list'. cd /etc/apt/sources.list.d/ vim icinga-focal.list Вставьте следующую конфигурацию репозитория. deb http://packages.icinga.com/ubuntu icinga-focal main deb-src http://packages.icinga.com/ubuntu icinga-focal main Нажмите сохранить и закройте. Затем обновите все доступные репозитории и установите подключаемые модули Icinga2 и Nagios Monitoring с помощью команды apt ниже. sudo apt update sudo apt install icinga2 monitoring-plugins После завершения установки запустите службу Icinga2 и добавьте сервис в автозагрузку. systemctl start icinga2 systemctl enable icinga2 После этого проверьте службу icinga2, используя приведенную ниже команду. systemctl status icinga2 Ниже приведен результат, который вы получите. В результате сервис icinga2 запущен и работает на Ubuntu 20.04 FocalFossa. Шаг 2 - Установка и настройка базы данных MySQL На этом этапе мы установим последнюю версию сервера MySQL на нашем Ubuntu 20.04 и установим пароль по умолчанию для пользователя MySQL с root правами. Установите MySQL сервер с помощью команды apt, приведенной ниже. sudo apt install mysql-server mysql-client После этого запустите службу MySQL и добавьте её в автозагрузку. systemctl start mysql systemctl enable mysql И сервис MySQL готов и запущен. Далее мы зададим пароль для root - пользователя MySQL с помощью командной строки 'mysql_secure_installation', которые предоставлены MySQL-пакетами. Запустите команду 'mysql_secure_installation', которая представлена ниже. mysql_secure_installation Теперь вам будет предложено настроить новый пароль для пользователя root, введите надежный пароль, а затем введите "Y" для прочих конфигураций. Press y|Y for Yes, any other key for No: Please set the password for root here. New password: Re-enter new password: Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y В результате завершена установка сервера MySQL и сконфигурирован корневой пароль по умолчанию. Шаг 3 - Установка и настройка модуля Icinga MySQL После установки сервера MySQL мы установим модуль icinga2 для поддержки MySQL под названием 'icinga2-ido-mysql'. Установка 'icinga2-ido-mysql' возможна с помощью команды apt, приведенной ниже. sudo apt install icinga2-ido-mysql Теперь вам будет предложено включить функцию icinga2 ido-mysql, выберите "Да", чтобы продолжить. Сконфигурируйте 'icinga2-ido-mysql'с помощью команды dbconfig, затем выберите "Yes" для продолжения. Введите свой пароль для 'icinga2-ido-mysql'. Повторите пароль для 'icinga2-ido-mysql'. В результате установка пакета 'icinga2-ido-mysql' была завершена, и был создан новый пользователь MySQL 'icinga2'. Затем, чтобы Icinga работала с новой версией MySQL, мы настроим MySQL пользователя 'icinga2' с аутентификацией по встроенному паролю MySQL. Войдите в командную строку MySQL, используя нижеприведенную команду. mysql -u root -p Теперь измените аутентификацию пользователя 'icinga2@localhost' с помощью собственного плагина аутентификации MySQL, используя следующий запрос. ALTER USER icinga2@localhost IDENTIFIED WITH mysql_native_password BY 'aqwe123@#$'; flush privileges; Введите 'exit', чтобы выйти из командной строки MySQL, а пользователь MySQL 'icinga2' теперь будет использовать родной плагин аутентификации. Далее, включите функцию 'ido-mysql' и проверьте все включенные плагины, используя следующую команду. icinga2 feature enable ido-mysql icinga2 feature list Функция 'ido-mysql' будет включена, чтобы применить новую конфигурацию, перезапустите службу icinga2. systemctl restart icinga2 Таким образом, установка и настройка 'icinga2-ido-mysql' была завершена. Шаг 4 - Установка Apache2 и PHP-пакетов На этом шаге, мы установим пакеты Apache и PHP для icingaweb2 и мы будем использовать PHP 7.3, который доступен в репозитории PPA, потому что на данный момент icingaweb2 еще не поддерживается в новой версии PHP 7.4. Сначала установите пакет 'python3-software-properties' и добавьте репозиторий PHP PPA, используя следующую команду. sudo apt install python3-software-properties sudo add-apt-repository ppa:ondrej/php Далее установите Apache и PHP пакеты с помощью команды apt, описанной ниже. sudo apt install apache2 php7.3 php7.3-common php7.3-gd php7.3-ldap php7.3-intl php7.3-curl libapache2-mod-php7.3 php7.3-mysql php7.3-pgsql php7.3-xml После того, как вся установка будет завершена, отредактируйте конфигурацию 'php.ini' с помощью vim-редактора. vim /etc/php/7.3/apache2/php.ini Снимите комментарий с опции 'date.timezone' и введите свой часовой пояс. date.timezone = Asia/Singapore Раскомментируйте конфигурацию 'cgi.fix_pathinfo' и измените значение на '0'. cgi.fix_pathinfo=0 Сохраните и закройте. Далее перезапустите службу Apache2 и добавьте ее в автозагрузку. systemctl restart apache2 systemctl enable apache2 Служба Apache2 запущена и работает, проверьте её, используя следующую команду. systemctl status apache2 Ниже приведен результат, который вы получите. В результате была завершена установка Apache и PHP пакетов для icingaweb2. Шаг 5 - Установка и настройка Icingaweb2 После установки Apache и PHP-пакетов мы установим пакет icingaweb2 и создадим новую базу данных MySQL для icingaweb2. Начните установку пакетов icingaweb2 и icingacli с помощью команды apt. sudo apt install icingaweb2 icingacli После завершения установки сгенерируйте токен icingaweb2 для установки с помощью приведенной ниже команды. icingacli setup token create Ниже приведен результат, который вы получите. The newly generated setup token is: 9b871ead0a60c94f Теперь скопируйте код токена в надёжное место, он будет использован для установки icingaweb2. Далее войдите в командную строку MySQL, используя нижеприведенную команду mysql. mysql -u root -p Теперь создайте новую базу данных и пользователя, используя следующие запросы. create database icingaweb2; create user icingaweb2@localhost identified with mysql_native_password by "icingaweb2pass"; grant all privileges on icingaweb2.* to icingaweb2@localhost with grant option; flush privileges; Введите 'exit', чтобы выйти из командной строки MySQL. В результате этого установка icingaweb2 завершена и создана новая база данных icingaweb2. Шаг 6 - Установка Icinga2 и Icinga Stack Post Откройте веб-браузер и введите IP-адрес сервера, как показано ниже. Замените IP-адрес на IP-адрес своего сервера. http://IP_адрес/icingaweb2/setup Вставьте код токена установки в поле и нажмите кнопку 'Далее'. Теперь вам нужно выбрать модуль Icinga для установки, оставить модуль 'Monitoring' и нажать 'Далее'. После этого Icinga проверит состояние среды для его установки. Убедитесь, что все необходимые модули находятся в зеленом состоянии, за исключением 'Модулей PostgreSQL', затем нажмите 'Далее'. Теперь вам нужно выбрать Аутентификацию для доступа к icingaweb2, выбрать 'Database ' (База данных) и нажать 'Next ' (Далее). Введите все данные базы данных для 'icingaweb2' и нажмите 'Validate Configuration' (Проверить конфигурацию) для тестирования. После того, как все прошло успешно, нажмите кнопку 'Next ' (Далее). Теперь для аутентификации Backend Authentication выберите 'icingaweb2' и нажмите 'Next ' (Далее). Введите логин и пароль администратора для icingaweb2 и нажмите 'Далее' еще раз. В разделе Application Configuration (Конфигурация приложения) оставьте всё по умолчанию и нажмите 'Далее'. Подтвердите все настройки и нажмите "Далее". И вы получите страницу приветствия на icingaweb2. Снова нажмите "Далее", чтобы настроить backend мониторинга. Установите имя Backend как 'icinga2' с типом 'IDO', затем нажмите 'Далее'. Теперь вам нужно настроить MySQL IDO backend ресурс для приложения icinga2. Введите данные базы данных для icinga2 и нажмите кнопку 'Validate Configuration'. После успешного завершения нажмите кнопку 'Далее'. Для 'Command Transport' выберите 'Local Command File' и оставьте его по умолчанию. Затем нажмите 'Далее'. Для службы Monitoring Security оставьте всё по умолчанию и нажмите 'Далее'. Подтвердите все настройки и нажмите кнопку 'Готово'. Теперь установка Icinga 2 и Icinga web 2 завершена, нажмите кнопку 'Login to Icinga Web 2', и вы будете перенаправлены на страницу входа. Введите пользователя, которого вы настроили в самом начале и нажмите кнопку "Войти". И, наконец, установка и настройка icinga2 и icingaweb2 на сервере Ubuntu 20.04 успешно завершена.
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