В файле подключения не указан куб

Обновлено: 04.07.2024

Бывают ситуации, когда на рабочей станции отсутствуют такие средства взаимодействия с БД как: 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. Воспользуйтесь командой Из служб аналитики

Рис. 9.1. Воспользуйтесь командой Из служб аналитики

  1. Первый этап настоящего задания заключается в снабжении Excel важной регистрационной информацией, аналогичный способ используется компанией Apple. Введите в полях диалогового окна имя сервера, регистрационное имя и пароль доступа к данным, как показано на рис. 9.2. Щелкните на кнопке Далее (Next). Если вы подключаетесь с помощью учетной записи Windows, то достаточно установить переключатель Использовать проверку подлинности Windows (Windows Authentication).

Рис. 9.2. Введите регистрационные данные и щелкните на кнопке Далее

Рис. 9.2. Введите регистрационные данные и щелкните на кнопке Далее

Рис. 9.5. Завершив настройку подключения, можете приниматься за создание сводной таблицы

Рис. 9.5. Завершив настройку подключения, можете приниматься за создание сводной таблицы


Те, кто знаком с аппаратным «почерком» компании «Технотроникс» в области мониторинга объектов, знают, что наш подход отличает многофункциональность объектовых приборов. Каждый КУБ, большой, или малый, как говорится «и швец, и жнец, и на дуде игрец». Он разом решает множество задач:

  • снятие показаний с приборов учета;
  • контроль климатических параметров на объекте;
  • удаленное управление и перезапуск оборудования;
  • контроль безопасности и др.

А что, если заказчику нужно только снимать показания с одного импульсного счетчика? Или, например, необходимо контролировать температуру в одной конкретной точке? Для решения таких задач требуется простое устройство, демократичное по цене, без всякой «функциональной избыточности» и не нуждающееся в настройке портов. Подключай и пользуйся.

КУБ-IP – идеальный контроллер для решения простых задач

Специально для заказчиков, ориентированных на выполнение небольшого количества конкретных задач, мы разработали новый контроллер под названием КУБ-IP. Эта аббревиатура призвана подчеркнуть, что прибор представляет собой набор законченных IP-датчиков и узлов управления, не нуждающихся в настройке и конфигурировании. При этом, каждый элемент может задействоваться отдельно, независимо от других.

Состав контроллера КУБ-IP:

  • вход для импульсного счетчика;
  • аналоговый вход для датчика температуры и/или влажности;
  • вход для дискретного датчика аварийной сигнализации;
  • дискретный узел исполнения внешней команды.

Всё познается в сравнении

КУБ-IP имеет суммарно вдвое меньше портов, чем КУБ-Фемто, который до недавнего времени был «низшим» в нашей номенклатуре устройств. Несмотря на свою доступною цену и массовость тиража, у КУБа-Фемто на «вооружении» аж восемь портов, пять из которых являются программируемыми. То есть функции прибора могут еще и трансформироваться владельцем, что в случае с описанной выше потребностью, скорее осложняет дело, нежели является преимуществом устройства. Таким образом, КУБ-IP имеет целый ряд отличительных особенностей, которые делают его наиболее подходящим контроллером для решения однозадачных вопросов:

  • компактность и лаконичность корпуса – размер КУБ-IP почти вдвое меньше, чем КУБ-Фемто

controller_kub_ip_02s.jpg

Фото 2. КУБ-IP (слева) и КУБ-Фемто (справа)

  • приемлемая цена – контроллер стоит 2 478 руб.
  • простота монтажа и заменыблока – современная система внешних подключений через разъемы «под кримпер»

controller_kub_ip_03s.jpg

Фото 3. Разъемы внешних подключений (КУБ-IP слева и КУБ-Фемто справа)

  • простота запуска прибора на площадке заказчика – специализированные порты позволяют свести количество операций по настройке и вероятность сопутствующих ошибок к минимуму.

Мал, да функционален: возможности, которые можно реализовать с помощью КУБ-IP

  1. дистанционное снятие показаний с импульсного счетчика;
  2. контроль температуры и влажности;
  3. контроль вскрытия;
  4. дистанционное управление электроприборами/перезапуск зависшего оборудования.

Программная интеграция

В зависимости от потребностей, КУБ-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 и другие.

Архитектура Prometheus1

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

gcloud auth login

В консоли будет показан url link, по которому нужно перейти в браузер. Затем скопируйте код проверки из браузера в консоль.

Вводим ID проекта, в котором запустили кластер:

gcloud config set project Project-ID

Затем строку подключения к кластеру, которую можно скопировать в окне, открывшемся после нажатия Сonnect на кластере в веб-интерфейсе:

Сonnect

Command-line

Установка 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

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: можно получить введя команду

Информацию о подключаемом кластере можно получить командой:

kubectl cluster-info

Skip TLS Verify: Enable

Access via token: Enable

Откроется поле для ввода token, который получили в консоли:

token1

Save & Test

После того как кластер добавится в Grafana можно будет посмотреть его статус приложений, нод и т.д. Будет в распоряжении 5 dashboards:

5 dashboards


Протестируем работу Аlertmanager: зайдем на одну из node кластера и сделаем так, чтобы полностью закончилось место на диске. В процессе dd if=/dev/zero …. Сработал триггер, что перегружен процессор:

И множество других оповещений, которые могут возникнуть, когда заканчивается место на ноде kubernetes cluster

Бонус

Если нужно простое оповещение об изменениях состояния в кластере, отправляемые в slack, то можно использовать Kubewatch . Устанавливается так же просто через helm с файлом описания конфигурации.

slack-канал

В итоге мы рассмотрели установку и настройку одного метода мониторинга для визуального отображения информации о кластере Kubernetes и два метода для оповещения о возникших проблемах в кластере. Моей целью было кратко описать рабочую схему установки и настройки мониторинга. Надеюсь, я справился. Мониторинг в данном виде работает и выполняет свое предназначение. Но нет предела совершенству.

Есть мысли по небольшому дополнению/модернизации этого стека. Причина — кластеров Kubernetes становится больше и устанавливать весь стек целиком на каждый кластер стало казаться не очень хорошей идеей, так как заходить на каждый кластер в Grafana для анализа графиков становится все большей рутиной. Есть желание объединять мониторинг в одном Grafana. Рассмотренный плагин для Grafana поддерживает подключение нескольких кластеров, но пока стоит вопрос о правильной настройке со стороны безопасности. Объединять мониторинг кластеров разных сред, да и к тому же разных проектов — не самая лучшая идея.

Так же меня не совсем устраивает форма нотификаций (Prometheus Event Notification). Хочется что-то в ней улучшить, но еще не определился, что именно.

Читайте также: