По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В данной статье мы рассмотрим стандартный демон логирования syslog. Он немного устарел, но с ним разобраться стоит потому, что все современные системы логирования построены по такому же принципу и имеют лишь небольшие отличия и небольшие улучшения, немного расширенный функционал. Система логирования в любой операционной системе играет важнейшую роль. Это связано с тем, что с помощью нее осуществляется разбор ошибок, поиск неисправностей и восстановление работоспособности сервисов. Очень часто бывает так что операционная система или сервисы ведут себя не так, как мы ожидаем от них и лучший способ разобраться с проблемой заглянуть в журнал логирования. Мы разберем, как настраивается стандартный демон syslog, понятия источников событий и приоритета событий. В операционной системе Windows тоже есть данный функционал, но развит не так хорошо, как в операционных системах Linux. Итак, стандарт конфигурации событий выглядит следующим образом: Мы пишем для каждого источника события, источник, приоритет и куда такие события отправлять, т.е действие. Формат: источник.приоритет назначение Источников в операционной системе Linux может быть много, более 20 штук. Самые популярные представлены на картинке. В операционной системе Windows, есть 3 уровня приоритетов - информационные, предупреждения и ошибка. У операционной системы Linux приоритетов 8 штук, разберем их: Emergency – чрезвычайная ситуация Alert – тревога Critical – критическое событие Error – ошибка Warning – предупреждение Notice – замечание Info – информационное сообщение Debug – отладочное событие И последняя колонка на картинке – это примеры куда мы можем записывать те или иные события: Файл – мы можем записывать в журнал Консоль – мы можем выводить в консоль Конвейер – мы можем передавать с помощью конвейера сразу следующей команде Удаленная система – можем передавать удаленной системе Группа пользователей – можем передавать группе пользователей К сожалению, открыть файл cat /etc/syslog.conf (CentOS 5) не получится, т.к является устаревшим, но подходит для объяснения принципа настройки. Например современный rsyslog, настраивается практически идентично в разных системах, находится в разных местах на виртуальной машине, в Ubuntu 20.04 расположен в /etc/rsyslog.d/ 50-default.conf Примерно таким образом выглядит конфигурационный файл. В данном файле все настройки демона. Мы можем увидеть, что все события ядра kern.* выводятся в файл /var/log/kern.log. Символ * говорит о том, что события с любым приоритетом. Мы можем изменить указав явно приоритет например kern.info или kern.debug, можем так же изменить куда выводить например в консоль /dev/console. У нас в файле есть строчка закомментированная *.info; *.=notice;*.=warn; - отправлять в /var/log/messages, и если мы ее раскомментируем, то данные все события будут уходить в указанный файл. Есть строчка auth,authpriv.* /var/log/auth.log, которая означает, что все события авторизации, в том числе и с вводом паролей будут записываться в отдельный файл /var/log/auth.log, это сделано специально, в целях информационной безопасности. На отдельный файл проще поставить особые права доступа. Есть в файле еще интересная строчка mail.* -/var/log/mail.log, которая говорит нам о том, что все почтовые события будут записываться в журнал /var/log/mail.log. Обратите внимание, что некоторые файлы имеет значок - перед указанием пути. Этот символ указывает демону на то, что после использования данного журнала, не нужно выгружать из оперативной памяти. Это сделано для того, чтобы более оперативно работать с журналами и в оперативной памяти всегда есть кэш данного файла. Есть и минус такого подхода. Если у нас случится паника ядра, т.е аппаратная ошибка и система вылетит, то те события, которые находились в оперативке, не успеют сбросится на жесткий диск и мы их потеряем. Файлы логов можно читать командой cat, правда не все форматы и не все логи, но популярными являются утилиты less и tail. Причем утилита tail с ключем -f позволяет, читать файл лога в реальном времени. Пользоваться утилитами достаточно просто: less [опции] [файл_лога] tail [опции] [файл_лога] Но работая с данными утилитами не все форматы можно прочитать. Можно порекомендовать для чтения логов утилиту, которая сможет прочесть практически любой формат лога - lnav. Устанавливается стандартно - apt install lnav -y. Синтаксис утилиты - lnsv [опции] [файл_лога] lnav dmesg Получаем вот такой красивый вывод команды. Дополнительно утилита раскрашивает лог для удобства чтения.
img
Такой большой и интересный инструмент - а разворачивать как? В одной из предыдущих статей мы знакомились с таким инструментом разработчика, как ELK. Сегодня мы разберемся, как правильно подготовить этот комплекс для практической работы. Для начала напомним, что ELK это один из наиболее удобных инструментов разработчика, предназначенный для быстрого выявления неполадок в работе объемных программ путем сбора и анализа логов. Этот комплекс состоит из трех приложений: поисковика Elasticsearch, сборщика данных Logstash и визуализатора Kibana. Весь комплекс разрабатывается компанией Elastic. Ознакомимся с системными требованиями. На каждом из серверов в системе рекомендуется иметь не менее 8 физических ядер и не менее 48 Гб оперативной памяти. Кроме того, если данные планируется собирать с крупной системы, то объем внутренней памяти будем оценивать по принципу "чем больше тем лучше". 8 Тб это рекомендуемые требования, но этот показатель может варьироваться. Ну и, разумеется, чем выше скорость соединения между серверами - тем быстрее будет проводиться обработка информации. Рекомендуемый показатель - 1Гб/с. Система из трех таких серверов позволит обрабатывать до тысячи событий в секунду, собирать и отображать 95% данных за отдельные периоды времени (5 минут, сутки),хранить данные до 90 дней и обслуживать до 10 клиентов по протоколу HTTP одновременно. Поскольку все элементы данного решения реализованы на Java, первым делом нужно установить актуальную версию Oracle Java. Также рекомендуется изучить дополнительную информацию о компонентах ELK на предмет совместимости версий. Если на Вашей рабочей станции установлены Ubuntu или Debian, устанавливаем соединение с репозиторием для скачивания Oracle Java. Если вы пользуетесь CentOS то качаем программную среду на сервер с сайта разработчика. После того, как процесс установки завершится рекомендуется проверить актуальную версию с помощью соответствующей команды консоли. Если все хорошо, то это значит, что почва подготовлена, и можно переходить к следующему этапу А им станет скачивание и установка поискового инструмента Elasticsearch. Это также не вызовет особой сложности достаточно скопировать в систему публичный ключ репозитория, установить с ним соединение (пользователи Debian и Ubuntu могут столкнуться с отсутствием загрузочного пакета apt-transport-https его нужно будет установить дополнительно), скачать актуальную версию Elasticsearch и запустить процесс установки. Чтобы работа приложения была корректной, его стоит добавить в автозагрузку. Затем проверяем, штатно ли прошла установка, запустив программу. Итак, все запустилось нормально. Можно переходить к этапу конфигурирования Elasticsearch. Это не займет много времени нужно будет отредактировать пару строк в файле конфигурации /etc/elasticsearch/elasticsearch.yml. Во-первых, чтобы не собирать лишнюю информацию, указываем хост локального интерфейса, через который будет передавать данные Logstash (по умолчанию, данные собираются со всех сетевых интерфейсов), а во-вторых, указываем путь к хранилищу данных, откуда мы и будем с ними работать. Рекомендуется выделить под хранилище значительные объемы памяти чем сложнее проект, тем больше будут весить собираемые логи. После завершения процесса настройки перезапускаем и проверяем программу. Далее нас ждет установка веб-панели Kibana. Этот процесс почти не отличается от установки Elasticsearch, ключи репозиториев будут одинаковыми. В целом, все то же самое устанавливаем соединение с репозиторием, скачиваем, устанавливаем, добавляем в автозагрузку, запускаем, проверяем. Стоит обозначить, что приложение загружается довольно долго, поэтому проверку лучше осуществить через пару минут после отдачи команды на запуск приложения. Редактирование настроек Kibana можно осуществить через файл /etc/kibana/kibana.yml. Здесь нас интересует строка с указанием интерфейса, который будет "слушать" Kibana. Это могут быть все интерфейса, либо один определенный в данном случае нужно будет указать конкретный ip-адрес нужного сервера. Далее проверим сам веб-интерфейс, для этого указываем адрес - например, http://10.1.4.114:5601. Наконец, перейдем к этапу установки Logstash. Здесь все то же самое, только перед проверочным запуском программу нужно настроить. Можно отредактировать основной файл настроек /etc/logstash/logstash.yml, но рациональнее будет создать несколько файлов конфигурации в директории /etc/logstash/conf.d, чтобы группировать настройки по назначению. Создаем файлы input.conf и output.conf. В первом файле мы указываем порт, на который будем принимать информацию, а также параметры ssl, если в этом есть необходимость. Во втором файле указываем параметры передачи данных в Elasticsearch. Данные лучше передавать под указанным дополнительно индексом, также используя маску в виде даты. Также можно отключить функцию отправки данных в общий лог системы, чтобы не занимать место в хранилище дублированными фрагментами информации. Кроме этого, потребуется создать файл с параметрами обработки данных. Дело в том, что не всегда удобно работать с полным объемом, и приходится делать выборку ключевых данных. Создаем файл filter.confи указываем параметры, на основании которых будут фильтроваться необходимые данные. Также при необходимости можно настроить, например, корректное отображение даты или географического местоположения сервера, с которого будет поступать информация. Завершив конфигурирование, можно проверить работу программы, запустив ее и просмотрев внутренний файл лога /var/log/logstash/logstash-plain.log. Основной пакет программ установлен теперь осталось установить программы, которые будут отправлять данные, на сервера. Компания Elastic предлагает использовать Filebeat, но можно воспользоваться и альтернативными вариантами. Здесь процесс установки аналогичен предыдущим. Файл настроек по умолчанию позволяет сразу работать с программой, но можно и подредактировать его при необходимости. Если все сделано правильно, программный комплекс уже начал собирать логи. Следующим шагом будет открытие веб-интерфейса Kibana и настройка паттерна индекса, чтобы лог открывался в веб-интерфейсе по умолчанию, а в сохраняемых данных не было путаницы.
img
Даже если вы новичок в разработке, вы, возможно, слышали о TypeScript. Это относительно новый язык программирования, который был разработан компанией Microsoft и который завоевал сердца многих с самого момента своего выпуска в 2012 году. Что интересно, TypeScript по сути не является самостоятельным языком программирования. На самом деле TypeScript считается расширенной версией языка программирования JavaScript. TypeScript – это расширенная версия JavaScript Расширенная версия языка программирования – это некое расширение, которое добавляет новые функции и расширяет возможности языка. Иными словами, любая написанная на JavaScript программа будет работать и на TypeScript. В этой статье мы вкратце расскажем, что такое TypeScript, зачем он нужен, а также приведем некоторые ключевые отличия, за счет которых он выделяется на фоне JavaScript. Что такое JavaScript? JavaScript ES6 (который также известен как ECMAScript 6) – это клиентский кроссплатформенный прототип-ориентированный язык описания сценариев; создан Бренданом Эйхом. JavaScript широко применяется в разработке клиентской части динамических интерактивных веб-приложений. JavaScript – это язык  с динамической типизацией , то есть проверка соответствия типов происходит в процессе компиляции. Языки с динамической типизацией делают акцент на эффективности работы разработчиков, то есть для того, чтобы довести проект до ума разработчиком потребуется  меньший объем кода .  Языки с динамической типизацией также склонны быть более гибкими, но предлагают код, который, как правило, менее оптимизирован, поскольку для того, чтобы определить, есть ли в коде какие-то ошибки, его  нужно сначала запустить. JavaScript запускается непосредственно в веб-браузере, поэтому для выполнения кода JavaScript не нужны никакие дополнительные ресурсы. Однако отладка череды ошибок за один раз, а не по ходу дела, все равно может стать непомерной задачей.  Примечания : к языкам с динамической типизацией также относятся Python, PHP, Perl и Ruby. После своего появления в 1995 году JavaScript прошел несколько стадий улучшения своей функциональности, что привело к упрощению разработки программного обеспечения. И теперь его можно использовать даже для разработки интерактивных игр! Изначально JavaScript подразумевался как очень простой язык для встраивания в веб-страницу в виде небольших фрагментов кода. А все потому, что в то время веб-браузеры могли обрабатывать всего несколько десятков строк кода без вреда для скорости работы.  Современные же браузеры могут запускать приложения на JavaScript с  сотнями тысяч строк кода.  JavaScript также имеет преимущество благодаря наличию большого исполненного энтузиазма сообщества, подробной документации и большого количества библиотек и фреймворков. Кроме того,  JavaScript поддерживает множество клиентских API , которые могут позволить сократить объем кода, который должен писать разработчик программного обеспечения. Именно поэтому большая часть команд разработки выбирает именно JavaScript. И все же изначально JavaScript не предназначался для использования в больших проектах. Поэтому, несмотря на то, что небольшие проекты можно отладить без проблем, попытка отладить большой проект на JavaScript может оказаться неудачной, а сам процесс трудоемким и длительным.  Примечание : возможно, вы не думали о JavaScript как об объектно-ориентированном языке программирования, но на самом деле он отлично поддерживает ООП! Что такое TypeScript? TypeScript – это язык программирования с открытым исходным кодом, но изначально в 2010 году он выпускался как внутренний продукт Microsoft. TypeScript стал доступен для всех на GitHub в конце 2012 года.  Так как TypeScript считается строгой расширенной версией ECMAScript 2015, то любая программа на JavaScript также может быть рассмотрена как программа на TypeScript. В отличие от JavaScript, TypeScript – это язык программирования  со статической типизацией . Так как это  статический модуль контроля типов, он проверяет поведение определенных переменных перед запуском вашей программы. Это будет так, даже если вы объявляете переменные без указания типа. В таких случаях TypeScript может автоматически назначить типы объявленным переменным. Такой маневр известен как  «выведение типов» и является встроенной функцией и для других языков, например, Kotlin и Scala.  Как только TypeScript назначит тип переменной, он будет использовать его на протяжении всего кода. Такой подход может поспособствовать улучшению согласованности и может помочь устранить потенциальные ошибки еще  до начала компиляции. Однако у всего есть своя цена. Здесь это потеря гибкости, к которой привыкли разработчики JavaScript. Примечание : к языкам со статической типизацией относятся Java, C и C++. Если программист использует язык со статической типизацией, он должен указать тип данных для каждой переменной, которую он объявляет.  В основе TypeScript было 11 целей разработки: Компания Microsoft определила 11 ключевых моментов, которые поспособствовали развитию TypeScript. Статическое определение потенциальных ошибок. Возможность структурирования больших частей кода.  Возможность избежать увеличения времени выполнения программы.  Компиляция в чистый и распознаваемый код на JavaScript. Создание языка, который был бы пригодным для компоновки и на котором было бы легко размышлять. Сохранение полной совместимости с текущими и будущими версиями JavaScript. Сохранение поведения всего кода на JavaScript во время выполнения. Возможность избежать добавления синтаксических структур на уровне выражений. Сделать TypeScript согласованным, и чтобы он допускал возможность стирания. Сделать кроссплатформенный инструмент разработки. Сделать так, чтобы изменение языка не нарушали прошлые версии TypeScript. Преимущества TypeScript TypeScript превосходит JavaScript в двух вещах: TypeScript компилируется в JavaScript : TypeScript преобразует и заменяет свой собственный код действующим кодом на JavaScript в процессе компиляции, позволяя тем самым использовать дополнительные возможности ECMAScript в более старых версиях браузеров, которые обычно их не поддерживают. TypeScript может применять статическую типизацию : статическая типизация выявляет потенциальные проблемы на более ранних этапах жизненного цикла разработки, за счет того, что всем объявленным переменным назначаются типы данных.  Примечание :  полифил – это фрагмент кода (как правило, написанный на JavaScript), который стремиться воспроизвести методы новой функции. Полифиллинг позволяет более старым версиям браузеров поддерживать новые функции, которые обычно ими не поддерживаются.  Транспайлер конвертирует исходный код на одном языке в исходный код на другом языке. В таком случае методы, которые были написаны на TypeScript, компилируются в JavaScript для того, чтобы их можно было запустить в среде JavaScript.  Компилятор TypeScript имеет гибкую изменяемую конфигурацию. Есть большое количество способов регулирования различных аспектов, связанных с проверкой типов и компиляцией. Чем строже проверка, тем больше ошибок может найти компилятор TypeScript. Самая распространенная ошибка в TypeScript – это ошибка, связанная с присваиванием типов. Основная цель модуля контроля типов – убедиться, что для всех значений определены корректные типы. Дополнительные возможности Совместимость : TypeScript поддерживает практически все фреймворки и библиотеки JavaScript; в их числе: React : одностраничное приложение (SPA - single-page application), которое использует виртуальную модель DOM для того, чтобы увеличить объем памяти и улучшить производительности. Vue : написан на TypeScript и легко интегрируется в приложения.  Angular : отлично подходит для быстрого прототипирования, простого тестирования и оптимизации производительности сервера.  Синтаксический сахар : использование строго определенных типов упрощает чтение кода, так как вам не нужно гадать, к какому типу относится та или иная переменная. Всесторонняя поддержка IDE : Visual Studio Code Eclipse Atom WebStorm … и другие! Недостатки TypeScript У TypeScript есть и недостатки. Вы можете оценить их, сопоставив с преимуществами, и решить самостоятельно, подходит он вам или нет.  Вот несколько недостатков, которые следует учесть при принятии решения: Время компиляции : программы, написанные на TypeScript, выполняются быстрее, чем программы, написанные на JavaScript. Кривая обучения: TypeScript немного сложнее, чем JavaScript; для того, чтобы научиться им пользоваться, потребуется время. Несоответствие типов : так как код, написанный на TypeScript, компилируется в код JavaScript, то вы можете столкнуться с нестандартными ошибками и несоответствием типов.  Меньшая гибкость : в TypeScript переменные и параметры менее гибкие. Сравнительная таблица: TypeScript VS JavaScript TypeScript JavaScript Выпущен в 2012 году Выпущен в 1995 году Компилируется в JavaScript Самостоятельный язык Статическая типизация, со строгим контролем типов Динамическая типизация, со слабым контролем типов Компилируемый язык, не может быть выполнен прямо в веб-браузере Интерпретируемый язык, может быть выполнен прямо в веб-браузере Кривая обучения довольно крутая Легкий для изучения Доступно прототипирование Доступно прототипирование Мало документации Подробная документация Растущее сообщество с меньшим количеством ресурсов Большое сообщество разработчиков и ресурсов JavaScript Лучше всего подходит для сложных или крупных проектов Лучше всего подходит для небольших проектов Поддерживает все библиотеки JS Библиотеки JS работают по умолчанию Поддерживает модули, универсальные шаблоны и интерфейсы.  Не поддерживает модули, универсальные шаблоны и интерфейсы Настройка сборки с пакетом npm Не требуется настройка сборки Числа и строки – это интерфейсы Числа и строки – это объекты     Нужно ли мне изучить TypeScript? Если  вы новичок в веб-разработке и планируете работать над небольшими проектами , то для начала вам идеально подойдет JavaScript. Если  вы уже знакомы с JavaScript , то ответ на этот вопрос будет зависеть от того, импонируют ли вам определенные функции TypeScript как разработчику программного обеспечения. В зависимости от ситуации (и ваших приоритетов) иногда может оказаться так, что целесообразнее будет использовать JavaScript, а не TypeScript.  Например, один из самых существенных недостатков компилируемого языка, такого как TypeScript, заключается в  дополнительном времени, которое необходимо для выполнения кода . Если вашим приоритетом является сокращение времени компиляции, то лучше выбрать JavaScript. Если вы больше заботитесь о том, чтобы ваш  код был читабельным , а не о времени его компиляции, то здесь явным преимуществом будет обладать TypeScript. Примечание : возьмите себе на заметку, что разработчики TypeScript обычно получают в среднем более высокую оплату, поскольку их меньше, чем разработчиков JavaScript. И тем не менее, еще одно достижение (в виде нового изученного языка) лишним не будет! Установка Через пакет npm Для начала убедитесь, что у вас есть IDE, диспетчер пакетов Node.js (npm) и компилятор TypeScript. Node.js предоставляет среду, в которой ваш пакет TypeScript сможет работать. Затем откройте командную строку или терминал, и введите следующую команду: npm install -g typescript Если TypeScript был установлен правильно, то вы сможете проверить номер версии с помощью команды tsc –v. Теперь вы можете воспользоваться следующей командой и установить TypeScript в свой локальный проект в качестве зависимости.  npm install typescript --save-dev Через Microsoft Visual Studio Code Для начала убедитесь, что у вас установлена Visual Studio, а также приложение для веб-разработки ASP.NET. Далее : Откройте новый проект в Visual Studio. Щелкните правой кнопкой мыши на папку проекта в обозревателе решений (Solution Explorer).  Щелкните « Manage NuGet Packages » (Управление пакетами NuGet). Во вкладке « Browse » (Обзор) найдите  Microsoft.TypeScript.MSBuild . Нажмите « Install » (Установить). В том случае, если ваш проект не поддерживает NuGet, то вы можете установить расширение TypeScript в Visual Studio, перейдя сюда: Extensions -> Manage Extensions (Расширения -> Управление расширениями).  Подведем итоги Отлично! Мы рассмотрели некоторые основные возможности TypeScript, а также некоторые вопросы, связанные с выбором между TypeScript и JavaScript. Надеюсь, что это краткое введение в TypeScript было для вас информативным и заставило вас задуматься о новом проекте. Кто знает, возможно вы заходите написать его именно на TypeScript.  
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59