В файле подключения не указан куб
Бывают ситуации, когда на рабочей станции отсутствуют такие средства взаимодействия с БД как: MS SQL Server Management Studio, Aquafold Aqua Data Studio, DBeaver и т.п., а вероятность их установки в краткосрочной перспективе близка к нолю. В то же время, присутствует острая необходимость подключения к этой самой БД и работы с данными. Как оказалось, на помощь может прийти старый добрый MS Excel.
В моем случае требовалось подключиться к MS SQL Server, однако, MS Excel умеет устанавливать соединение не только с ним, но и с большинством современных БД: MySQL, PostgreeSQL, IBM DB2 и даже Oracle и Teradata, а также с файлами данных CSV, XML, JSON, XLS(X), MDB и другими.
Теперь немного о действиях, совершенных мной с целью подключения к базе:
В новой книге на ленте выбираем «(1) Данные» -> «(2) Получение внешних данных» -> «(3) Из других источников» -> «(4) С сервера SQL Server».
Далее, в окне Мастера подключения к данным, заполняем «(1) Имя сервера» -> «(2) Учетные сведения»[ -> «(3) Имя пользователя» и «Пароль»]. Таким образом, мы сообщаем MS Excel, с каким сервером мы хотим установить соединение и какой метод аутентификации хотим использовать. Я использовал «проверку подлинности Windows», но возможно также указать учетные данные отличные от установленных в Windows.
Выбираем целевую «(1) Базу данных» -> «(2)(3) Определенную таблицу» или «Несколько таблиц» или же базу в целом (тогда оба «чекбокса» оставляем пустыми).
После всех проделанных манипуляций, Мастер подключения предложит сохранить файл подключения. Потребуется задать «(1) Имя файла». Желательно также указать «(2) Описание» и «(3) Понятное имя файла», чтобы спустя время было понятно какой файл подключения к какой базе или таблице обращается.
Теперь выбрать созданное подключение можно будет следующим образом: «(1) Данные» -> «(2) Получение внешних данных» -> «(3) Существующие подключения».
Открыв только что созданное подключение, в случае если вы соединялись с базой в целом, MS Excel опять предложит выбрать одну или несколько конкретных таблиц:
Определив таблицы, MS Excel предложит выбрать «(1) Способ представления данных» и «(2) Куда следует поместить данные». Для простоты я выбрал табличное представление и размещение на уже имеющемся листе, чтобы не плодить новые. Далее следует нажать на «(3) Свойства».
В свойствах подключения, нужно перейти на вкладку «(1) Определение». Здесь можно выбрать «(2) Тип команды». Даже если требуется выгружать лишь одну таблицу без каких-либо связей, настоятельно рекомендую выбрать SQL команду, чтобы иметь возможность ограничить размер выгружаемой таблицы (например, с помощью TOP(n)). Так, если вы попытаетесь выгрузить целиком таблицу базы, это может привести в лучшем случае к замедлению работы MS Excel, а в худшем к падению программы, к тому же – это необоснованная нагрузка на сам сервер базы данных и на сеть. После того как «(3) Текст команды» будет введен и нажата кнопка «ОК», MS Excel предложит сохранить изменения запроса – отвечаем положительно.
Чтобы получить доступ к базе данных OLAP, сначала необходимо установить подключение к кубу OLAP. Начните с перехода на вкладку ленты Данные (Data). Щелкните на кнопке Из других источников (From Other Sources) и выберите в раскрывающемся меню команду Из служб аналитики (From Analysis Services), как показано на рис. 9.1.
При выборе указанной команды на экране появится диалоговое окно мастера подключения к данным (рис. 9.2). Основная его задача — это помочь вам установить соединение с сервером, которым будет пользоваться программа Excel при управлении данными.
Примеры данных, которыми мы будем пользоваться при рассмотрении материала данного раздела, разработаны с использованием учебного куба данных, который поставляется вместе с SQL Server Analysis Services 2005. Операции, которые вам понадобится выполнить для подключения к реальной базе данных OLAP, такие же, поскольку рассматриваемые концепции одинаковы для всех кубов OLAP.
Рис. 9.1. Воспользуйтесь командой Из служб аналитики
- Первый этап настоящего задания заключается в снабжении Excel важной регистрационной информацией, аналогичный способ используется компанией Apple. Введите в полях диалогового окна имя сервера, регистрационное имя и пароль доступа к данным, как показано на рис. 9.2. Щелкните на кнопке Далее (Next). Если вы подключаетесь с помощью учетной записи Windows, то достаточно установить переключатель Использовать проверку подлинности Windows (Windows Authentication).
Рис. 9.2. Введите регистрационные данные и щелкните на кнопке Далее
Рис. 9.5. Завершив настройку подключения, можете приниматься за создание сводной таблицы
Те, кто знаком с аппаратным «почерком» компании «Технотроникс» в области мониторинга объектов, знают, что наш подход отличает многофункциональность объектовых приборов. Каждый КУБ, большой, или малый, как говорится «и швец, и жнец, и на дуде игрец». Он разом решает множество задач:
- снятие показаний с приборов учета;
- контроль климатических параметров на объекте;
- удаленное управление и перезапуск оборудования;
- контроль безопасности и др.
А что, если заказчику нужно только снимать показания с одного импульсного счетчика? Или, например, необходимо контролировать температуру в одной конкретной точке? Для решения таких задач требуется простое устройство, демократичное по цене, без всякой «функциональной избыточности» и не нуждающееся в настройке портов. Подключай и пользуйся.
КУБ-IP – идеальный контроллер для решения простых задач
Специально для заказчиков, ориентированных на выполнение небольшого количества конкретных задач, мы разработали новый контроллер под названием КУБ-IP. Эта аббревиатура призвана подчеркнуть, что прибор представляет собой набор законченных IP-датчиков и узлов управления, не нуждающихся в настройке и конфигурировании. При этом, каждый элемент может задействоваться отдельно, независимо от других.
Состав контроллера КУБ-IP:
- вход для импульсного счетчика;
- аналоговый вход для датчика температуры и/или влажности;
- вход для дискретного датчика аварийной сигнализации;
- дискретный узел исполнения внешней команды.
Всё познается в сравнении
КУБ-IP имеет суммарно вдвое меньше портов, чем КУБ-Фемто, который до недавнего времени был «низшим» в нашей номенклатуре устройств. Несмотря на свою доступною цену и массовость тиража, у КУБа-Фемто на «вооружении» аж восемь портов, пять из которых являются программируемыми. То есть функции прибора могут еще и трансформироваться владельцем, что в случае с описанной выше потребностью, скорее осложняет дело, нежели является преимуществом устройства. Таким образом, КУБ-IP имеет целый ряд отличительных особенностей, которые делают его наиболее подходящим контроллером для решения однозадачных вопросов:
- компактность и лаконичность корпуса – размер КУБ-IP почти вдвое меньше, чем КУБ-Фемто
Фото 2. КУБ-IP (слева) и КУБ-Фемто (справа)
- приемлемая цена – контроллер стоит 2 478 руб.
- простота монтажа и заменыблока – современная система внешних подключений через разъемы «под кримпер»
Фото 3. Разъемы внешних подключений (КУБ-IP слева и КУБ-Фемто справа)
- простота запуска прибора на площадке заказчика – специализированные порты позволяют свести количество операций по настройке и вероятность сопутствующих ошибок к минимуму.
Мал, да функционален: возможности, которые можно реализовать с помощью КУБ-IP
- дистанционное снятие показаний с импульсного счетчика;
- контроль температуры и влажности;
- контроль вскрытия;
- дистанционное управление электроприборами/перезапуск зависшего оборудования.
Программная интеграция
В зависимости от потребностей, КУБ-IP может быть интегрирован в информационный комплекс заказчика одним из четырех возможных способов.
Здравствуйте. Меня зовут Николай. И у меня паранойя в лёгкой форме, которая не мешает, а наоборот, помогает мне быть хорошим devops-инженером в компании INOSTUDIO. В мои обязанности входит настройка инфраструктур для разработчиков и продукции для клиентов, настройка CI/CD и поддержка, мониторинг оного, бэкапы. В этой статье я хотел бы поделиться частью личного опыта взаимодействия с Kubernetes и рассказать о том, как я к нему пришел.
Как я пришел к Kubernetes
Начинал с виртуализации на различных платформах, потом познал docker, затем облачные сервисы. Во всём этом можно было применить zabbix-agent, с написанным bash, python-скриптом, или собрать отдельный модуль zabbix-agent для настройки discovery-обнаружения контейнеров на хосте и передачи информации о контейнере в zabbix-server. Но при плотном изучении Kubernetes у меня сработала защитная реакция — как все это мониторить? Долго искать ответ на вопрос не пришлось, благо люди уже задавались таким вопросом ранее. Стек, в составе которого Prometheus + Alertmanager + Grafana. Из-за недостаточного опыта возникла проблема с простой и понятной инструкцией как запускать эту связку в кластере.
Какие задачи мониторинга решаем в Kubernetes
Мониторинг Kubernetes решает вопрос оповещения выхода из строя нод, под и прочего. Также анализ потребления ресурсов каждого deployment, statefulset т.д. Например, можно наглядно увидеть изменение потребления ресурсов после последнего деплоя.
Существуют некоторые готовые решения такие как:
Мне показался наиболее подходящим kube-Prometheus-Stack с плагином devopsprodigy-kubegraf-app.
Dashboards плагина выглядят так:
Это малая часть dashboards. Графиков достаточно для любого анализа.
Архитектура Prometheus
Разница между prometheus и prometheus-operator в том, что в prometheus-operator дополнительно включена Grafana с готовыми дашбордами и ServiceMonitors для сбора метрик из сервисов кластера таких как: CoreDNS, API Server, Scheduler и другие.
Prometheus — главная составляющая всей конструкции. Система мониторинга, которая собирает показатели из ваших служб и сохраняет их в базе данных временных рядов. Если кратко, то она собирает метрики, на которые можно посмотреть при помощи Prometheus Web.
Grafana — веб-приложение для аналитики и интерактивной визуализации
Для построения графиков Grafana может брать данные не только из Prometheus, но и из таких систем как: Graphite, Elasticsearch, OpenTSDB, InfluxDB.
Alertmanager — инструмент для обработки оповещений. Он устраняет дубликаты, группирует и отправляет нотификации.
Экспортёры (агенты) — их задача собирать метрики из сервисов и переводить их в понятный вид для Prometheus. Видов экспортёров существует огромное количество например: mysql_exporter , memcached_exporter , jms_exporter и так далее.
В стеке используются экспортёры:
Node-exporter — собирает метрики о вычислительных ресурсах Node в Kubernetes.
Kube-state-metrics — собирает метрики со всех узлов Kubernetes, обслуживаемых Kubelet через Summary API. Создатели экспортёра были вдохновлены проектом Heapster.
Подключение к кластеру
Тестовый проект я буду запускать в Google Cloud Platform . Но так же решение применяется в Azure, AWS. Уверен, оно будет работать и на других платформах.
Для запуска тестового kubernetes cluster в GCP нужно зайти в Kubernetes Engine, нажать Create cluster. Далее выбрать нужные настройки типа: локации, самой локации, описать конфигурацию машин, которые будут выступать в роли нод кластера, и настройку сети кластера. Этого достаточно для демонстрации. Примерно через 10 минут кластер готов к работе.
Подключение к кластеру может быть как через встроенную веб-консоль аккаунта GCP, так и через локальный компьютер. Для работы с GCP из локального компьютера нужно установить пакеты из google-cloud-sdk. Информация по скачиванию и установке пакетов для всех OS .
gcloud auth login
В консоли будет показан url link, по которому нужно перейти в браузер. Затем скопируйте код проверки из браузера в консоль.
Вводим ID проекта, в котором запустили кластер:
gcloud config set project Project-ID
Затем строку подключения к кластеру, которую можно скопировать в окне, открывшемся после нажатия Сonnect на кластере в веб-интерфейсе:
Установка HELM на Linux
Helm — это установщик пакетов для Kubernetes. Обычно его устанавливают локально на ОС, с которой управляется Kubernetes. Helm нам нужен для быстрой установки пакетов Kube-Prometheus-Stack в Kubernetes. Чтобы оставалась возможность обновлять helm, рекомендую сделать установку через apt:
Подготовка к установке Kube-Prometheus-Stack
Перед запуском Kube-Prometheus-Stack нужно описать файлы конфигурации Grafana и Alertmanager.
1. Добавление плагинов в Grafana
В самой Grafana нам понадобится плагин devopsprodigy-kubegraf-app из списка плагинов Grafana Labs. У него достаточно обширные dashboards.
Для добавления плагина мы создадим .yml-файл, который будем использовать при запуске установки Kube-Prometheus-Stack.
В файле прописываем параметр:
2. Добавление параметров в Alertmanager
Заменяем содержимое переменных:
slack_api_url:
channel:
username:
Установка Kube-Prometheus-Stack
Наконец, мы подошли к установке того, ради чего все затевалось.
Для установки нужно добавить репозитории в helm:
Теперь запускаем непосредственно установку Kube-Prometheus-Stack
Спустя некоторое время можно проверить запущенные pods
kubectl get po
Проверяем, что настройки Аlertmanager применились. Для этого проксируем pod alertmanager на локальный порт:
В браузере на странице alertmanager переходим во вкладку Status, где можно удостовериться, что текущие настройки соответствуют конфигу alertmanager.yml.
Генерация token для доступа к кластеру
Для подключения к кластеру Kubernetes ранее установленного в Grafana плагина нужно сгенерировать token.
Настройка плагина в Grafana
Проксируем под Grafana
Переходим на вкладку Configuration →Plugins, выбираем плагин DevOpsProdigy KubeGraf и включаем его. В левой панели появится значок этого плагина — переходим в него — вкладка Clusters. В открывшемся окне добавляем наш кластер kubernetes — Add New Cluster.
Нас интересуют параметры:
Name: любое удобное имя
URL: можно получить введя команду
Информацию о подключаемом кластере можно получить командой:
Skip TLS Verify: Enable
Access via token: Enable
Откроется поле для ввода token, который получили в консоли:
Save & Test
После того как кластер добавится в Grafana можно будет посмотреть его статус приложений, нод и т.д. Будет в распоряжении 5 dashboards:
Протестируем работу Аlertmanager: зайдем на одну из node кластера и сделаем так, чтобы полностью закончилось место на диске. В процессе dd if=/dev/zero …. Сработал триггер, что перегружен процессор:
И множество других оповещений, которые могут возникнуть, когда заканчивается место на ноде kubernetes cluster
Бонус
Если нужно простое оповещение об изменениях состояния в кластере, отправляемые в slack, то можно использовать Kubewatch . Устанавливается так же просто через helm с файлом описания конфигурации.
В итоге мы рассмотрели установку и настройку одного метода мониторинга для визуального отображения информации о кластере Kubernetes и два метода для оповещения о возникших проблемах в кластере. Моей целью было кратко описать рабочую схему установки и настройки мониторинга. Надеюсь, я справился. Мониторинг в данном виде работает и выполняет свое предназначение. Но нет предела совершенству.
Есть мысли по небольшому дополнению/модернизации этого стека. Причина — кластеров Kubernetes становится больше и устанавливать весь стек целиком на каждый кластер стало казаться не очень хорошей идеей, так как заходить на каждый кластер в Grafana для анализа графиков становится все большей рутиной. Есть желание объединять мониторинг в одном Grafana. Рассмотренный плагин для Grafana поддерживает подключение нескольких кластеров, но пока стоит вопрос о правильной настройке со стороны безопасности. Объединять мониторинг кластеров разных сред, да и к тому же разных проектов — не самая лучшая идея.
Так же меня не совсем устраивает форма нотификаций (Prometheus Event Notification). Хочется что-то в ней улучшить, но еще не определился, что именно.
Читайте также: