• Главная
  • Карта сайта
Не найдено

Моніторинг продуктивності Linux з Grafana

  1. Collectd
  2. InfluxDB
  3. Grafana

М и витратили трохи часу, налаштовуючи Linux (в нашому випадку, CentOS ) В якості домашнього маршрутизатора з - за фрустрації з домашніми маршрутизаторами, доступними на ринку. Це було і хороша вправа і трохи ностальгії від наших ранніх днів з Linux . Після того, як ми закінчили знайомство з основами настройки, ми хотіли знайти спосіб для відстеження різних статистичних даних, таких як мережевий трафік, використання дискового простору, і т. Д. Поважні Cacti, звичайно, варіант, але це почуття трохи спадщина в наші дні . Ми вважаємо за краще використовувати більш новий інструмент з більш сучасним видом. Це те, що привело нас до Grafana. Це основне покрокове керівництво для того, як ми встановили його. Це базова установка, яка включає в себе collectd, InfluxDB, і Grafana на тому ж хості.

Collectd

Що, ви думали, що ми відразу запустимо Grafana? Нам потрібні дані, щоб зібрати перший, і найкращий спосіб зробити це на CentOS, через collectd.

Найпростіший спосіб отримати collectd на CentOS, це через репозиторій Epel. Якщо ви новачок в CentOS або не знайомі з Fedora EPEL repo, ця команда все, що потрібно для початку роботи:

yum install epel-release

Тепер, коли EPEL repo включений, досить легко встановити collectd таким же чином:

yum install collectd

Є інші плагіни collectd доступні в Epel, але основою досить для наших цілей. Ми хотіли б закликати вас досліджувати доступні плагіни, якщо базовий модуль не відповідає вашим потребам.

Тепер, коли встановлено collectd, нам потрібно налаштувати його для відправки даних. Collectd генерує статистику, але ми повинні встановити його де-небудь, щоб Grafana міг використовувати його.

У /etc/collectd.conf є кілька пунктів, які нам потрібно налаштувати. У глобальній секції, розкоментуйте рядки для Hostname, BaseDir, PIDFile, PluginDir, і TypesDB. Вам потрібно змінити Hostname, але за замовчуванням має бути добре для всіх інших. Це має виглядати приблизно так:

Hostname "YourHostNameHere" #FQDNLookup true BaseDir "/ var / lib / collectd" PIDFile "/var/run/collectd.pid" PluginDir "/ usr / lib64 / collectd" TypesDB "/usr/share/collectd/types.db"

Тепер, коли ми маємо основну інформацію додатки, нам потрібно включити плагін, які ми хочемо використовувати. Так, наприклад, у нас є syslog, cpu, disk, interface, load, memory, і network, розкоментуйте їх. Їх значення за замовчуванням гарні для всього, крім мережі. Мережевий модуль використовується для передачі даних нашому збирачеві даних, який в даному випадку є InfluxDB. Мережевий плагін потрібно буде вказувати на ваш InfluxDB сервер. Тому що ми робимо все локально в цьому прикладі, ми вказуємо на localhost. Він повинен виглядати наступним чином:

<Plugin network> Server "127.0.0.1" "8096" </ Plugin>

InfluxDB

Тепер, коли ми закінчили з collectd, ми повинні налаштувати InfluxDB, щоб він тягнув в collectd дані генерації. Оскільки InfluxDB не в Epel, ми повинні витягти його зі свого сховища. Команда нижче дозволяє легко:

cat << EOF> /etc/yum.repos.d/influxdb.repo [influxdb] name = InfluxDB Repository - RHEL \ $ releasever baseurl = https://repos.influxdata.com/centos/\$releasever/\$basearch / stable enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdb.key EOF

Як тільки це буде зроблено, встановіть пакет з yum install influxdb, тепер вона готова до налаштування. Є ще кілька деталей, які ми повинні змінити в конфігураційному файлі /etc/influxdb/influxdb.conf.

У розділі [HTTP] вашого /etc/influxdb/influxdb.conf, встановіть enabled = true and bind-address = ": 8096". Він повинен виглядати наступним чином:

[Http] # Determines whether HTTP endpoint is enabled. enabled = true # The bind address used by the HTTP service. bind-address = ": 8086"

Потім перейдіть в розділ [[collectd]] і налаштуйте його таким чином:

[[Collectd]] enabled = true bind-address = ": 8096" database = "collectd" typesdb = "/ usr / share / collectd"

На даний момент, ми можемо йти вперед і запустити обидві службичтоби переконатися, що вони працюють належним чином. Для початку включимо collectd і переконаємося, що він відправляє дані. Як і в інших сервісах, для цього ми будемо використовувати system. У наведеному нижче прикладі ви побачите команди, використовувані і вихідні дані запущеного демона collectd.

[Jperrin @ monitor ~] $ sudo systemctl enable collectd [jperrin @ monitor ~] $ sudo systemctl start collectd [jperrin @ monitor ~] $ sudo systemctl status collectd ● collectd.service - Collectd statistics daemon Loaded: loaded (/ usr / lib / systemd / system / collectd.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2017-08-02 11:22:18 PDT; 6min ago Docs: man: collectd (1) man: collectd.conf (5) Main PID: 18366 (collectd) CGroup: /system.slice/collectd.service └─18366 / usr / sbin / collectd Aug 2 11:22: 18 monitor collectd [18366]: plugin_load: plugin "disk" successfully loaded. Aug 2 11:22:18 monitor collectd [18366]: plugin_load: plugin "interface" successfully loaded. Aug 2 11:22:18 monitor collectd [18366]: plugin_load: plugin "load" successfully loaded. Aug 2 11:22:18 monitor collectd [18366]: plugin_load: plugin "memory" successfully loaded. Aug 2 11:22:18 monitor collectd [18366]: plugin_load: plugin "network" successfully loaded. Aug 2 11:22:18 monitor collectd [18366]: Systemd detected, trying to signal readyness. Aug 2 11:22:18 monitor collectd [18366]: Initialization complete, entering read-loop. Aug 2 11:22:18 monitor systemd [1]: Started Collectd statistics daemon.

Тепер, коли collectd працює, запустіть InfluxDB і переконайтеся, що він може зібрати дані з collectd.

[Jperrin @ monitor ~] $ sudo systemctl enable influxdb [jperrin @ monitor ~] $ sudo systemctl start influxdb [jperrin @ monitor ~] $ sudo systemctl status influxdb ● influxdb.service - InfluxDB is an open-source, distributed, time series database Loaded: loaded (/usr/lib/systemd/system/influxdb.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2017-07-29 18:28:20 PDT; 1 weeks 6 days ago Docs: https://docs.influxdata.com/influxdb/ Main PID: 23459 (influxd) CGroup: /system.slice/influxdb.service └─23459 / usr / bin / influxd -config / etc / influxdb / influxdb.conf Aug 2 10:35:10 monitor influxd [23459]: [I] 2017-08-12T17: 35: 10Z SELECT mean (value) FROM collectd.autogen.cpu_value WHERE host = ~ / ^ monitor $ / AND type_instance = 'interrupt' AND time> 417367h GR ...) service = query Aug 2 10:35:10 monitor influxd [23459]: [httpd] 172.20.1.40, 172.20.1.40, :: 1 - - [12 / Aug / 2017: 10: 35: 10 -0700] "GET /query?db=collectd&epoch=ms&q=SELECT+mean%28%22value%22%29+FROM+%22load_shortte...ean%28%22value% Aug 2 10 : 35: 10 monitor influxd [23459]: [I] 2017-08-02T17: 35: 10Z SELECT mean (value) FROM collectd.autogen.cpu_value WHERE host = ~ / ^ monitor $ / AND type_instance = 'nice' AND time > 417367h GROUP B ...) service = query

Як ми можемо бачити у висновку вище, служба працює, і дані збираються. Звідси, єдине, що залишилося зробити, це представити його через Grafana.

Grafana

Щоб встановити Grafana, ми створимо ще один репозиторій, як ми це робили з InfluxDB. На жаль, люди Grafana не тримають версії реліз окремо в repo, так це виглядає, як ніби ми з допомогою EL6 repo, навіть якщо ми робимо цю роботу на EL7.

cat << EOF> /etc/yum.repos.d/grafana.repo [grafana] name = grafana baseurl = https: //packagecloud.io/grafana/stable/el/6/$basearch repo_gpgcheck = 1 enabled = 1 gpgcheck = 1 gpgkey = https: //packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana sslverify = 1 sslcacert = / etc / pki / tls / certs / ca- bundle.crt EOF

Тепер, коли сховище знаходиться на місці і включено, ми можемо встановити Grafana, так само, як ми це робили з іншими: yum install grafana. Як тільки це буде зроблено, ми можемо почати працювати над конфігурацією. Для цього уроку ми тільки збираємося встановити ім'я користувача і пароль адміністратора, тому що ми робимо це для підручника та одного примірника користувача. Я б абсолютно рекомендую вам прочитати документи, якщо ви хочете, щоб почати робити трохи більше з Grafana.

Для виконання цього досить базову конфігурацію, просто розкоментувати лінії admin_user і admin_password в розділі [security] у файлі /etc/grafana/grafana.ini і встановити власні значення. В цьому випадку ми використовуємо admin / admin, тому що це те, що ви робите в прикладах, чи не так?

[Security] # default admin user, created on startup admin_user = admin # default admin password, can be changed before first start of grafana, or in profile settings admin_password = admin

Тепер ви можете почати Grafana з systemctl start grafana-server і налаштувати його через веб - інтерфейс Тепер ви можете почати Grafana з systemctl start grafana-server і налаштувати його через веб - інтерфейс. Після того, як ви увійти в перший раз, вам буде запропоновано налаштувати кілька речей, в тому числі джерело даних і приладову панель. Тому що ми робимо все це на локальному хості, ви зможете обдурити і використовувати налаштування джерела даних в скріншоті. Не хвилюйтеся, ми майже там, і там тільки трохи залишилося зробити.

Якщо у вас є налаштований джерело даних, вам буде запропоновано створити свою першу панель. Хоча можна, звичайно, зробити це, трохи лякає для першого запуску з Grafana. Простим вирішенням цієї проблеми є імпорт одного з шаблонів на сайті Grafana. Ми використовували https://grafana.com/dashboards/554. Він надає хорошу групу метрик і графіків в якості основи для використання і побудови.

Після того як ви все налаштували, вже пора починати за ваші особисті переваги і далі робити. Ми б ще раз рекомендували ознайомитися з документацією, тому що є маса варіантів і змін не описаних тут.

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту і натисніть Ctrl + Enter.

Aug / 2017: 10: 35: 10 -0700] "GET /query?
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью