Как да

Как да наблюдаваме Uptime на Linux Server с Prometheus

Как да наблюдаваме Uptime на Linux Server с Prometheus

„Някои риби обичат да плуват нагоре по течението. Някои хора обичат да преодоляват предизвикателствата.”
- Амит Рей

Осигурявайки, че вашата инфраструктура се поддържа на високите нива на SLA, които компаниите и организациите винаги изискват, тогава няма да имате друг избор освен да разберете как можете да измервате, наблюдавате и подавате отчети, които улавят истината за производителността на системите. Няма пряк път за това, когато се задават тези студени и хладни въпроси. Можете да изберете да представите празно объркано лице или лице, изпълнено с топлина, увереност и обзаведено с достатъчно конкретни доклади.

За да постигнем последното, това ръководство ще ни преведе през това как можем да уловим ъптайм на системите на Linux Server. И за да постигнем това, трябва да работим с инструмент, известен като Прометей. Знаем, че сте чували за Прометей, но с оправдание за повторното му прилагане, позволете ни да го представим още веднъж. Prometheus е инструмент за наблюдение, предназначен за записване на метрики в реално време в база данни с времеви редове. Това е софтуерен проект с отворен код, написан на Go и показателите Prometheus се събират с помощта на HTTP изтегляния, което позволява по-висока производителност и мащабируемост.

В този урок, както подсказва заглавието, ще обсъдим как можете да наблюдавате времето за работа на Linux сървъра, използвайки Prometheus. Ще го инсталираме и ще използваме надеждните му възможности, за да извлечем данните, които ни интересуват. Затова ще започнем.

Стъпка 1: Подгответе вашия сървър

В зависимост от средата, в която са сървърите ви, трябва да актуализирате и инсталирате всички основни пакети, които обикновено използвате, като текстов редактор (vim или nano), wget или curl и други, без които не можете.

#### За Ubuntu #### sudo apt update && sudo apt upgrade sudo apt install vim wget curl -y #### За CentOS #### sudo yum update sudo yum install vim wget curl -y

Стъпка 2: Инсталирайте Prometheus

Тъй като Прометей е централният етап на това ръководство, ние ще продължим да го създаваме и да се уверим, че е готов да ни служи. За наш късмет имаме изчерпателни ръководства за инсталиране. Независимо дали сте включени CentOS или Debian или Ubuntu, вие сте сортирани. Проверете връзките по-долу, за да инсталирате Prometheus.

Инсталирайте Prometheus Server на Ubuntu | Debian
Как да инсталираме Prometheus на RHEL | CentOS 8

Инсталирайте node_exporter

Първо, нека създадем Потребител на Node Exporter System, който ще улесни безопасността при неговото стартиране. Създайте такъв потребител, както следва:

sudo useradd -M -r -s / bin / false node_exporter

След това изтеглете и инсталирайте Node Exporter, както следва. Насочете браузъра си към страницата за изтегляне на Prometheus и изтеглете най-новата версия на Node Exporter.

curl -s https: // api.github.com / repos / prometheus / node_exporter / releases / latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -

За да инсталираме Node Exporter, ние просто ще копираме node_exporter двоичен файл от архивната папка в / usr / local / bin което е в променливата на средата PATH.

tar -xvf node_exporter *.катран.gz cd node_exporter * / sudo cp node_exporter / usr / local / bin

Създайте node_exporter обслужване.

котка << EOF | sudo tee /etc/systemd/system/node_exporter.service [Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=node_exporter ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=default.target EOF

Презаредете Systemd и стартирайте услугата.

sudo systemctl daemon-reload sudo systemctl старт node_exporter sudo systemctl разреши node_exporter

След това, в случай че имате защитна стена, ще трябва да разрешите порт 9100 node_exporter използва по подразбиране.

## На Ubuntu sudo ufw позволяват 9100 ## На CentOS sudo firewall-cmd --add-port = 9100 / tcp - permanent && sudo firewall-cmd --reload

Стъпка 3: Добавете цел към Monitor чрез Prometheus

На целевия възел инсталирайте node_exporter само

Инсталирайте node_exporter

Създайте потребител на системата за експортиране на възли

sudo useradd -M -r -s / bin / false node_exporter

След това изтеглете и инсталирайте Node Exporter, както следва. Насочете браузъра си към страницата за изтегляне на Prometheus и изтеглете най-новата версия на Node Exporter.

curl -s https: // api.github.com / repos / prometheus / node_exporter / releases / latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -

За да инсталираме Node Exporter, ние просто ще копираме node_exporter двоичен файл от архивната папка в / usr / local / bin.

tar -xvf node_exporter *.катран.gz cd node_exporter * / sudo cp node_exporter / usr / local / bin

Проверете инсталацията, като проверите версията на софтуера:

$ node_exporter - версия node_exporter, версия 1.0.1 (клон: HEAD, ревизия: 3715be6ae899f2a9b9dbfd9c39f3e09a7bd4559f) потребител на компилация: [имейл защитен] дата на изграждане: 20200616-12: 44: 12 go версия: go1.14.4

Създайте node_exporter обслужване.

котка << EOF | sudo tee /etc/systemd/system/node_exporter.service [Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=node_exporter ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=default.target EOF

Презаредете systemd и стартирайте услугата.

sudo systemctl daemon-reload sudo systemctl старт node_exporter sudo systemctl разреши node_exporter

След това, в случай че имате защитна стена, ще трябва да разрешите порт 9100 че node_exporter използва по подразбиране.

## На Ubuntu sudo ufw позволяват 9100 ## На CentOS sudo firewall-cmd --add-port = 9100 / tcp - permanent && sudo firewall-cmd --reload

Актуализирайте конфигурациите на Prometheus Server

След node_exporter е инсталиран, ще трябва да актуализираме нашия конфигурационен файл на сървъра Prometheus, за да получим целта на новия възел / сървър.

Добавете секциите в края на конфигурационния файл, както следва

$ sudo vim / etc / prometheus / prometheus.yml # Тази глобална глобална конфигурация: scrape_interval: 15s # Задайте интервала за изстъргване на всеки 15 секунди. По подразбиране е на всяка 1 минута. оценка_интервал: 15 секунди # Оценявайте правилата на всеки 15 секунди. По подразбиране е на всеки 1 минута. # scrape_timeout е зададено на глобалното подразбиране (10 секунди). # Предупреждение за конфигуриране на Alertmanager: alertmanagers: - static_configs: - цели: # - alertmanager: 9093 # Заредете правила веднъж и периодично ги оценявайте в съответствие с глобалния 'interval_valuation'. rule_files: # - "first_rules.yml "# -" втори_правила.yml "# Конфигурация за изстъргване, съдържаща точно една крайна точка за изстъргване: # Тук това е самият Прометей. scrape_configs: # Името на заданието се добавя като етикет 'job ='към всички времеви серии, изтрити от тази конфигурация. - job_name: 'prometheus' # metrics_path по подразбиране на '/ metrics' # схема по подразбиране на 'http'. static_configs: - цели: ['localhost: 9090'] - име_на работа: възел static_configs: - цели: ['172.28.204.30: 9100 ']

След това рестартирайте прометей

sudo systemctl рестартирайте прометей

Когато се върнете в браузъра, трябва да видите страница отдолу с новия възел в списъка

Стъпка 4: Добавете износител на Blackbox

Износителят на черна кутия позволява претърсване на крайни точки в черна кутия HTTP, HTTPS, DNS, TCP и ICMP. Той работи независимо, след което Prometheus се свързва с него, издава заявки до крайните точки, изложени от черна кутия, и извършва действие, както е конфигурирано.

Първо, нека създадем потребител на системата за експортиране на черна кутия, която ще улесни безопасността при нейното стартиране. Създайте такъв потребител, както следва:

sudo useradd -M -r -s / bin / false blackbox

Инсталирайте износител на Blackbox

Ще изтеглим и инсталираме Blackbox exporter от страницата с най-новите версии

cd ~ curl -s https: // api.github.com / repos / prometheus / blackbox_exporter / releases / последни | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -

Извлечете изтегления файл, копирайте двоичните файлове в директория в ПЪТ променлива на средата

tar xvzf blackbox_exporter- *.linux-amd64.катран.gz cd blackbox_exporter- *.linux-amd64 sudo cp blackbox_exporter / usr / local / bin

Потвърдете инсталацията:

$ blackbox_exporter - версия blackbox_exporter, версия 0.18.0 (клон: HEAD, ревизия: 60c86e6ce5a1111f7958b06ae7a08222bb6ec839) потребител на компилация: [имейл защитен] дата на изграждане: 20201012-09: 46: 31 go версия: go1.15.2

Уверете се, че черната кутия може да чете двоичните файлове

$ sudo chown черна кутия: blackbox / usr / local / bin / blackbox_exporter

Преди да излезем от същата директория, ще създадем конфигурационни файлове на blackbox и ще се уверим, че потребителят на blackbox има необходимите права да чете файловете, както е показано по-долу

cd ~ / blackbox_exporter- *.linux-amd64 sudo mkdir -p / etc / blackbox sudo cp blackbox.yml / etc / blackbox sudo chown -R blackbox: blackbox / etc / blackbox / *

След копиране на двоичните файлове в директорията в ПЪТ, ще продължим да създаваме файл за услуги на Systemd за него, както следва:

$ sudo vim / etc / systemd / system / blackbox.услуга [Unit] Описание = Blackbox Exporter Service Wants = мрежа-онлайн.target After = мрежа-онлайн.target [услуга] Тип = прост потребител = blackbox Group = blackbox ExecStart = / usr / local / bin / blackbox_exporter \ --config.file = / etc / blackbox / blackbox.yml \ - уеб.listen-address = ": 9115" Рестартиране = винаги [Install] WantedBy = multi-user.мишена

Както можете да видите от служебния файл, blackbox ще слуша на порт 9115. Както можете да предположите, ще трябва да разрешим този порт на защитната стена, в случай че имате такъв, както следва

## На Ubuntu sudo ufw allow 9115 ## На CentOS sudo firewall-cmd --add-port = 9115 / tcp - permanent && sudo firewall-cmd --reload

Добавянето на файл с услуга изисква презареждане на демон, след което можем да стартираме нашата услуга за черна кутия. Изпълнете командите по-долу, за да накарате нашия износител да измърмори.

sudo systemctl daemon-reload sudo systemctl разреши blackbox sudo systemctl старт черна кутия

След това можете да проверите състоянието, за да потвърдите, че износителят работи реално:

$ sudo systemctl статус черна кутия ● черна кутия.услуга - Услуга за износител на Blackbox заредена: заредена (/ etc / systemd / system / blackbox.обслужване; хора с увреждания; предварително зададен от доставчика: активиран) Активен: активен (работи) от четвъртък 2020-12-03 08:13:03 UTC; Преди 4 минути преди 20 секунди Основен PID: 2161 (blackbox_export) Задачи: 7 (ограничение: 2204) Памет: 2.2M CGroup: / система.парче / черна кутия.услуга └─2161 / usr / local / bin / blackbox_exporter --config.file = / etc / blackbox / blackbox.yml - уеб.адрес за слушане =: 9115 

След като стигнем до този момент, трябва да имаме достъп до уеб интерфейса на износител на черни кутии, както е споделено на екранната снимка по-долу, след като насочим браузъра към „http: // ip-or-fqdn: 9115

Стъпка 5: Мониторинг на крайни точки с помощта на Blackbox Exporter

Сега, когато имаме инсталиран и работещ Blackbox Exporter, е време да се възползваме от скъпоценните камъни, които предлага, за да улесним живота си. В случай, че имате някакви http или https крайни точки, които бихте искали да наблюдавате, тогава Blackbox Exporter идва с модули, които да ви помогнат да направите това. Помислете за модулите, за които войниците се сондат HTTP, HTTPS, DNS, TCP и ICMP от името на износителя.

Ще наблюдаваме прости крайни точки, които съществуват в конфигурационния файл по подразбиране за експортиране на черни кутии, като ги свързваме към нашия сървър prometheus като пример. Конфигурационният файл за експортиране по подразбиране за черна кутия идва с предварително дефинирани модули, които можем да използваме за свързване с нашия сървър prometheus. Можете да видите модулите в „/ etc / blackbox / blackbox.yml ” файл, където сте инсталирали черна кутия.

Свържете износителя на Blackbox с Prometheus

На вашия сървър Prometheus добавете следната конфигурация в края на файла, който ще чете модулите на Blackbox Exporter.

$ sudo vim / etc / prometheus / prometheus.yml # any [job_name] - job_name: 'ICMP_Probe_Blackbox' metrics_path: / probe params: module: [icmp] static_configs: - target: # Името на хоста или IP адресът на хоста, към когото насочвате - 172.28.204.30 relabel_configs: - етикети на източника: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: екземпляр - target_label: __address__ # Къде е инсталиран износителят на Blackbox заместване на плуст порт: 172.28.204.30: 9115 # Използване на модула [ssh_banner] - име_на работа: 'SSH_Probe_Blackbox' metrics_path: / probe params: module: [ssh_banner] static_configs: - цели: # Хостът, към който насочвате плюс ssh порт - 172.28.204.30:22 relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ # Къде е инсталиран износителят на Blackbox, заместване на плуст порт: 172.28.204.30: 9115 # Използване на [http_2xx] модул - име на работа: 'Blackbox_tcp' metrics_path: / probe params: module: [http_2xx] static_configs: - цели: # http хостът, към който насочвате - http: // 172.28.204.30 relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ # Къде е инсталиран износителят на Blackbox заместване на плуст порт: 172.28.204.30: 9115

След това рестартирайте прометей

sudo systemctl рестартирайте прометей

Когато преминем към уеб интерфейса на Prometheus и се опресним, трябва да видим всички сонди, добавени като споделени на екранната снимка по-долу.

Стъпка 6: Преглед на сонди

Можем да видим състоянието на нашите сонди на вашия интерфейс Prometheus. За да направите това, кликнете върху „Графика“В раздела след това в областта за търсене, написано„Израз“, Напишете сонда и трябва да видите много предложения, които се появяват.

Ние ще избираме проба_успех като пример, след това кликнете върху „Изпълни

След бране проба_успех, кликнете върху раздела Графика под него, както е показано по-долу:

Трябва да видите сондите за успех, както е илюстрирано

Стъпка 7: Визуализирайте всичко на Grafana

Grafana предоставя визуално достойни функции, които не можем да смеем да забравим да добавим към тази екосистема за наблюдение. В случай, че нямате инсталирана Grafana, имаме невероятни ръководства, които ще ви помогнат да започнете бързо. Те са споделени по-долу за вас:

Как да инсталирате Grafana на CentOS 8 / RHEL 8
Инсталирайте Grafana на Fedora
Настройте Grafana 7 на Ubuntu | Debian Linux

След като инсталирате Grafana, уверете се, че можете да достигнете IP и порта на вашия сървър Prometheus, след което продължете да го добавяте като ваш източник на данни, както е показано на следващия. Влезте след това:

Преместете мишката върху иконата на зъбно колело с настройки, след което изберете „Източници на данни

След това кликнете върху „Добавете източник на данни

Изберете Прометей

Въведете необходимите данни, като например къде работи Promethueus и т.н. Можете също така да му дадете име, което предпочитате.

След като приключите, превъртете надолу и щракнете върху „Запазване и тестване„. Ако всичко върви добре, трябва да видите добро съобщение на зелено, както е показано по-долу

След като вашият източник на данни е добавен, трябва да добавим табло за управление, което ще обобщи това, което трябва да видим / наблюдаваме. Преместете мишката върху + и кликнете върху „Внос

Въведете табло за управление от Sparanoid, който има идентификационен номер 7587. Кликнете върху "Внос “

Ще се покаже нова страница с подробности за създателя на таблото за управление. Изберете своя източник на данни на прометей, след което кликнете върху „Внос

В момента, в който щракнете върху Импортиране, таблото в неговия блясък трябва да се покаже, както е споделено по-долу

И трябва да приключим с настройките за мониторинг

Заключителни думи

Prometheus е гъвкав и ви позволява да направите много повече от изстъргване на метрики за визуализация. Може да бъде вашият сървър за наблюдение, за да получите статус на sshd, http и https крайни точки, вашият MySQL пристанище и много други. Следващото място, което трябва да бъде, е документацията на Prometheus, по-специално QUERYING PROMETHEUS

Наблюдавайте Apache Kafka с Прометей и Графана

Следете производителността на Linux сървъра с Prometheus и Grafana за 5 минути

Молотов ще позволи на френските телевизионни зрители да се присъединят към VR кафене и да гледат телевизия с приятели
Понякога преглеждате ли любимото си шоу и започвате ли да искате да го гледате с ваш приятел, когото познавате, че се радва на същото шоу? Това може д...
Изненадваща новина, че популярните приложения използват данни за местоположението за реклама
Можете ли да издържите още една статия за начина, по който се злоупотребява с личните данни? Ако можете, важно е да знаете - всичко това е така. Този ...
Apple News може да стартира абонаментна услуга следващата пролет
Apple планира услуга за абонамент за новини, която е по-малко популярна в момента. Не е този, който оставя крайните потребители или новинарски агенции...