По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В последние годы рынок программного обеспечения прогрессирует ударными темпами. Чтобы удержаться на плаву, компании-разработчики программного обеспечения постоянно разрабатывают новые решения и совершенствуют уже существующее программное обеспечение. И если в первом случае анализируются желания, озвучиваемые пользователями, то во втором более эффективным методом сбора данных оказывается телеметрия. Что же это такое? Говоря по-простому, сетевая телеметрия — это процесс автоматизированного сбора данных, их накопление и передача для дальнейшего анализа. Если говорить о программном обеспечении, то анализ проводится разработчиками софта с целью оптимизации существующих программ, либо разработки и внедрения новых решений. Телеметрия в сети осуществляется посредством сбора данных с использованием сетевого протокола NetFlow или его аналогов. Зачем же нужен NetFlow? Сетевой протокол NetFlow был разработан в конце прошлого века компанией Cisco. Изначально он использовался как программа-распределитель пакетов данных для оптимизации работы маршрутизаторов, однако с течением времени она была заменена на более эффективную программу. Тем не менее, такой функционал, как сбор полезной статистики по использованию сетевого трафика и поныне оставляет Netflow актуальным. Правда, специализация этого протокола уже не соответствует исходной. Тем не менее, Netflow обладает функционалом, который невозможно реализовать, применяя альтернативные сетевые технологии. Система постоянного наблюдения за работой сетевых приложений и действиями пользователей; Сбор и учет информации об использовании сетевого трафика; Анализ и планирование развития сети; Распределение и управление сетевым трафиком; Изучение вопросов сетевой безопасности; Хранение собранных посредством телеметрии данных и их итоговый анализ; Хотя уже существуют программные решения, обладающие схожим функционалом, решение от компании Cisco до сих пор остается одним из лучших в этой сфере. Кстати, теперь это решение называется Cisco Stealthwatch и на 95% обладает функционалом для решения исключительно задач, связанных с информационной безопасностью. Отметим, что технологию сбора данных посредством NetFlow поддерживают не все роутеры или коммутаторы. Если Ваше устройство имеет поддержку данного протокола, то оно будет замерять проходящий трафик и передавать собранные данные в NetFlow-коллектор для последующей обработки. Передача будет осуществляться в формате датаграмм протокола UDP или пакетов протокола SCTP, поэтому на скорость работы интернета существенным образом это не повлияет. В настоящее время решения NetFlow (как и многих других приложений) подразделяются на три типа: Базовые технологии. Отличаются низкой ценой и довольно скудным функционалом анализа сетевого трафика. Тем не менее, для большинства пользователей или же для изучения технологии этого вполне достаточно «Продвинутые» корпоративные варианты. Здесь базовый функционал дополнен более широким набором инструментов для предоставления расширенной отчетности анализа данных. Также эти решения содержат готовые модели оптимизации для разных сетевых устройств. «Флагманские» корпоративные решения. Отличаются наивысшей ценой, однако при этом и наиболее широким функционалом, а также позволяют осуществлять мониторинг информационной безопасности в крупных организациях. «А как же быть с приватностью? Ведь сбор данных ставит под угрозу частную жизнь пользователей, тайну переписки, личные сообщения и прочее» - спросит беспокойный читатель. Согласно политике приватности компании Cisco, персональные данные пользователей остаются в полной безопасности. Посредством телеметрии NetFlow анализируется исключительно передача сетевого трафика, не угрожая приватности пользователей. Примеры решений Также приведем несколько самых популярных сетевых анализаторов, работающих под протоколом NetFlow: Solarwinds NetFlow Traffic Analyzer – мощный инструмент для анализа динамики трафика в сети. Программа осуществляет сбор, накопление и анализ данных, выводя их в удобном для пользователя формате. При этом можно проанализировать поведение трафика за определенные временные промежутки. Для ознакомления на сайте производителя доступна бесплатная 30-дневная версия Flowmon – программа, предоставляющая комплекс инструментов для изучения пропускной способности сети, нагрузки на сеть в определенные периоды времени, а также обеспечения безопасности сети от DDOS-атак PRTG Network Monitor - универсальное решение для сбора, хранения и обработки данных о поведении сети. В отличие от других подобных программ, данный инструмент работает на основе сенсоров – логических единиц, отвечающих за сбор данных по определенным аспектам изучаемого устройства. ManageEngine NetFlow Analyzer – схожая с остальными по функционалу программа. Её выделяют из ряда других такие возможности, как гибкая настройка аналитики, а так же возможность мониторить поведение сети из любого места, благодаря приложению для телефона. Как можно заметить, все вышеуказанные программы не только обладают схожим базовым функционалом, но и конкурируют между собой, продумывая и внедряя новые технические решения. Выбор, какой из нескольких десятков программ начать пользоваться – целиком и полностью дело конечного пользователя.
img
Ошибочно можно подумать, что на вопрос «Какой язык программирования самый быстрый?» можно легко ответить. На самом же деле, когда речь идет о скорости и о программировании, то здесь возникает множество технических нюансов. Для начала определим - быстрее не значит лучше, это зависит от варианта использования. (Но мы к этому еще вернемся.) Здесь мы подробно рассмотрим, что делает язык программирования «быстрым», почему это так важно и как вы можете начать изучать некоторые из самых быстрых языков программирования. Что делает язык программирования быстрым? Ключевая особенность языка программирования, которая определяет его скорость, заключается в том, компилируемый он или интерпретируемый. Компилируемые языки, такие как Lisp, C++, Go, Rust и Swift, должны быть преобразованы в машинный код (см. ассемблер ниже), который уже непосредственно взаимодействует с аппаратной составляющей. Интерпретируемые языки, такие как Python, JavaScript, Ruby и PHP, работают путем преобразования исходного кода в машинный код налету. Поскольку этот процесс преобразования происходит непосредственно во время выполнения кода и увеличивает нагрузку, то можно сделать вывод, что интерпретируемые языки работают медленнее, чем компилируемые. Есть несколько других факторов, определяющих скорость языка. Возьмите, например, Java и C#. Эти языки являются и компилируемыми, и интерпретируемыми. Однако вместо компиляции в код на языке ассемблера они компилируются в байт-код. Скомпилированный байт-код интерпретируется для запуска на виртуальной машине, оптимизированной для прямого взаимодействия с аппаратной составляющей. Байт-код – это своего рода язык ассемблера для виртуальной машины. Такой процесс делает эти языки более быстрыми, чем, например, JavaScript, который преобразует текстовый исходный код непосредственно в машинный. Другой фактор – это статическая или динамическая типизация. Языки со статической типизацией определяют типы всех переменных при компиляции языка, а языки с динамической типизацией проверяют тип переменных во время выполнения кода. Эта проверка типов в режиме реального времени несет за собой некоторые затраты вычислительных ресурсов, что делает языки с динамической типизацией медленнее, чем языки со статической типизацией. Какие языки программирования самые быстрые? Самый быстрый язык программирования должен напрямую взаимодействовать с машиной. Давайте рассмотрим некоторые из самых быстрых языков, с которыми вы можете столкнуться, а также посмотрим для чего они используются. Assembly (ассемблер) На самом деле язык ассемблера не является каким-то одним конкретным языком. Это просто название, которое дают любому низкоуровневому языку программирования, который напрямую взаимодействует с аппаратным обеспечением компьютера. Это означает, что ассемблер для вашего ноутбука будет отличаться от ассемблера для вашего мобильного телефона, поскольку у них разные процессоры, требующие разных инструкций. Обычно ассемблер используют только разработчики, которые работают непосредственно с аппаратной составляющей или которые создают языки программирования. Lisp Lisp – это один из первых языков программирования. Ему уже более 60 лет. Было множество разновидностей этого языка, и многие другие языки программирования использовали некоторый набор функциональных возможностей, характерный для Lisp. Clojure, например, - это современный диалект Lisp, реализованный для виртуальной машины Java. Однако Lisp находится в этом списке не благодаря Clojure. Common Lisp компилируется непосредственно на языке ассемблера, а это означает, что код, который вы пишете на Lisp, будет ассемблерным при запуске в качестве исполняемого файла. Lisp все еще используется, но чаще вы можете его встретить именно как Clojure, а не Common Lisp. C/C++ C и C++ также являются компилируемыми языками. С – это простой процедурный язык программирования, который был разработан в начале 1970-х годов и который широко используется и по сей день (в основном во встроенных приложениях из-за его скорости и небольшого размера). С++ - это язык, расширяющий С и добавляющий объектно-ориентированные функции. Именно из-за этого он заменил С во многих приложениях. С++ используется в тех случаях, когда важна производительность, например, при разработке 3D-видеоигр или операционных систем. Go Go, также известный как Golang, - это язык программирования, разработанный Google. Он компилируется в ассемблер, как и большинство других языков, упомянутых здесь, но у него гораздо больше современных функций, более простой синтаксис и на нем легче писать (в сравнении с давним лидером среди быстрых языков С/С++). Golang часто используется в сетевых серверах и распределенных системах, где его скорость может повысить производительность этих систем. Rust Rust – еще один компилируемый язык программирования, который также является более безопасной альтернативой С/С++. Он ориентирован на скорость, безопасность памяти и параллельную обработку. Он часто используется в игровых движках, компонентах браузера и движках моделирования виртуальной реальности, где скорость в приоритете. C# C# - это язык, подобный Java. Он сначала компилируется в байт-код, а затем интерпретируется виртуальной машиной. Это делает его похожим на интерпретируемый язык, но при этом добавляет скорости. C#, разработанный Microsoft, прост в освоении и содержит множество сторонних библиотек, которые упрощают и ускоряют разработку. Он часто используется для создания настольных приложений, видеоигр и веб-сервисов. Java Java компилируется в байт-код, который затем интерпретируется виртуальной машиной Java (JVM). Это один из первых языков, использующий такую процедуру, поэтому он быстро стал (и остается) таким популярным. Использование виртуальной машины подразумевает, что приложение Java может быть перемещено из одной операционной системы в другую без изменения кода, если для второй операционной системы доступна версия JVM. Эта кроссплатформенная функция в сочетании со скоростью делает Java популярным языком программирования для многих прикладных задач, включая веб-разработку, разработку настольных приложений, разработку игр, разработку мобильных приложений и т.д. Swift Swift – это современный язык программирования, разработанный Apple, который компилируется в ассемблер. Он был разработан с целью замены старого языка Objective-C. Он используется для разработки ваших любимых продуктов Apple, таких как Apple TV, Apple Watch, iPhone и iPad. Swift на сегодняшний день – самый популярный язык разработки для Mac OS X и iOS. Но при этом он также является кроссплатформенным и начинает использоваться и в других прикладных задачах. Не всегда дело в скорости Хотя скорость и важна при выборе языка программирования, но есть множество других факторов, о которых тоже не стоит забывать. При написании кода бывают ситуации, когда другие характеристики языка программирования могут оказаться важнее скорости. В конце концов, если бы скорость была в приоритете для каждого проекта, то языки программирования, не вошедшие в этот список, не применялись бы вовсе, и мы бы писали код на ассемблере. Так или иначе, правда в том, что некоторые из самых популярных языков программирования даже не вошли в этот список. Скорость относительна, и во многих случаях программа на С++ будет в 10 раз быстрее программы на Python, но в данном случае это не имеет значения. В конце концов, если операция завершится за 0,001 секунды, а не за 0,01 секунды, вы действительно почувствуете разницу? Однако разница будет заметна, если вам придется выполнять одну и ту же операцию тысячи раз в цикле. В большинстве случаев скорость разработки куда важнее скорости выполнения. Медленную программу можно масштабировать для повышения ее производительности, выделяя на нее больше ресурсов, а вычислительные ресурсы намного дешевле, чем оплата времени разработки для написания кода на более сложном для написания языке низкого уровня. Более медленные языки программирования популярны, потому что на них легче писать, они имеют множество доступных сторонних библиотек и могут быть быстрее развернуты. Все это ускоряет процесс разработки. Хотя скорость языка программирования не всегда является самой важной характеристикой, у нее все же есть определенные преимущества.
img
OpenNMS - бесплатный, расширяемый, легко масштабируемый продукт уровня предприятия с открытым исходным кодом. Он проверяет состояние удалённых устройств и собирает информацию об этих хостах при помощи SNMP и JMX (Java Management Extensions). Система основана на Java поэтому поддерживает все популярные операционные системы. OpenNMS работает под управлением таких операционных систем, как Linux и Windows и поставляется с веб-консолью для упрощения добавления сетевых устройств и приложений в систему. Вся информация, введенная в систему, хранится в базе данных Postgres. Системные требования OpenNMS Debian 9.0 и выше, Ubuntu 16.04 LTS и выше; Пакет OpenJDK 11 Development Kit; 2 CPU, 2 Гб RAM, 20 Гб жесткого диска. В этом материале покажем, как устанавливать свежую версию системы мониторинга OpenNMS Horizont на Debian и Ubuntu. Шаг 1. Развертывание Java-OpenJDK 11 на Ubuntu Для начала скачает свежую версию OpenJDK Java 11 при помощи следующей команды: $ sudo apt-get install openjdk-11-jdk Затем убеждаемся, что установлена самая последняя версия Java $ java -version После этого устанавливаем переменную среду для всех пользователей при загрузке. Чтобы сделать это нужно добавить в файл /etc/profile следующие строки. export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 Сохраняем файл и выполняем следующую команду, чтобы система заново прочитала файл /etc/profile. $ source /etc/profile Шаг 2. Установка OpenNMS Horizon на Ubuntu Чтобы развернуть OpenNMS Horizon, в файл /etc/apt/sources.list.d/opennms.list следует добавить репозиторий и GPG ключ, а затем обновить кеш apt командой ниже: $ cat EOF | sudo tee /etc/apt/sources.list.d/opennms.list deb https://debian.opennms.org stable main deb-src https://debian.opennms.org stable main EOF $ wget -O - https://debian.opennms.org/OPENNMS-GPG-KEY | apt-key add - $ apt update Далее скачиваем мета-пакеты OpenNMS (opennms-core и opennms-webapp-jetty) со всеми зависимостями (jicmp6 и jicmp, postgresql и postgresql-libs). $ sudo apt install opennms Затем с помощью утилиты tree, проверяем, что мета-пакеты OpenNMS установлены в директорию /usr/share/opennms $ cd /usr/share/opennms $ tree -L 1 На заметку: Чтобы предотвратить внеплановые обновления, после установки рекомендуется отключить репозиторий OpenNMS $ sudo apt-mark hold libopennms-java libopennmsdeps-java opennms-common opennms-db Шаг 3. Инициализация и установка PostgreSQL В Debian и Ubuntu сразу после установки пакетов программа установки определяет базу данных Postgres, запускает службу и добавляет его в автозапуск при старте системы. Чтобы проверить, работает ли служба, выполните указанную ниже команду: $ sudo systemctl status postgresql Далее делаем вход под пользователем postgre и создаём пользователя opennms и задаем пароль. $ sudo su - postgres $ createuser -P opennms $ createdb -O opennms opennms А теперь в целях безопасности назначим пользователю postgres пароль: $ psql -c "ALTER USER postgres WITH PASSWORD 'YOUR-POSTGRES-PASSWORD';" На данном этапе следует настроить доступ OpenNMS Horizon к базе данных. Для этого редактируем файл конфигурации. $ sudo vim /usr/share/opennms/etc/opennms-datasources.xml Найдите в данном файле указанные ниже разделы и введите учетные данные jdbc-data-source name="opennms" database-name="opennms" class-name="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/opennms" user-name="opennms-db-username" password="opennms-db-user-passwd" / jdbc-data-source name="opennms-admin" database-name="template1" class-name="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/template1" user-name="postgres" password="postgres-super-user-passwd" / Сохраните изменения и закройте файл. Шаг 4. Инициализация и запуск OpenNMS Horizon Чтобы инициализировать OpenNMS, необходимо интегрировать его с Java. Итак, для обнаружения среды Java и добавления её в файл конфигурации /usr/share/opennms/etc/java.conf выполните следующую команду: $ sudo /usr/share/opennms/bin/runjava -s Затем, следует проинициализировать базу данных и найти библиотеки, указанные в файле /opt/opennms/etc/libraries.properties, с помощью следующей команды: $ sudo /usr/share/opennms/bin/install -dis После этого запускаем службу OpenNMS используя systemd, затем добавляем её в автозапуск и проверяем статус следующими командами: $ sudo systemctl start opennms $ sudo systemctl enable opennms $ sudo systemctl status opennms Если в системе установлен межсетевой экран ufw, следует открыть порт 8980 $ sudo ufw allow 8980/tcp $ sudo ufw reload Шаг 5. Подключение к веб-консоли OpenNMS Теперь запускаем любимый браузер и открываем страницу веб-консоли OpenNMS. http://SERVER_IP:8980/opennms или http://FDQN-OF-YOUR-SERVER:8980/opennms Далее для входа в систему вводим логин и пароль по умолчанию - admin/admin После этого вы попадете в панели администратора В целях безопасности следует поменять предустановленный пароль администратора. Для этого переходим на панели меню выбираем "admin → Change Password", в разделе "User account self-service" нажимаем "Change Password". Вводим текущий пароль, новый пароль и подтверждаем его, затем нажимаем "Submit". После этого выходим из системы и заходим в нее с новым паролем. А теперь, время изучать, детальные настройки системы и тонкости управления OpenNMS Horizon через веб-интерфейс, добавлять узлы и приложения, согласно Руководству Администратора OpenNMS.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59