Поиск по сайту:

Как контролировать Linux-сервер с помощью Netdata и Grafana |


Знаете ли вы, что метрики Netdata можно визуализировать в Grafana? Это руководство проведет вас через этапы установки Netdata и настройки метрик для визуализации в Grafana. Базой данных, которая будет использоваться для хранения показателей мониторинга Netdata, является InfluxDB. Netdata — это мощный распределенный инструмент мониторинга работоспособности и производительности в режиме реального времени, используемый для инфраструктурных систем и различных приложений.

Вы можете высоко оптимизировать агент мониторинга, установленный на всех ваших системах и контейнерах. Grafana, с другой стороны, — это инструмент, который позволяет вам запрашивать и визуализировать ваши метрики независимо от того, где они хранятся.

Шаг 1. Установите Netdata

Netdata можно установить в любую систему Linux, запустив сценарий кикстарта, предоставленный разработчиками.

Для RHEL 8 и FreeBSD используйте:

  • Как установить Netdata на RHEL 8/CentOS 8
  • Как установить Netdata на RHEL 8/CentOS 8

Для любого другого варианта Linux запустите приведенный ниже автоматический сценарий для установки Netdata.

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

При этом будут установлены все системные зависимости Netdata перед сборкой Netdata в системе. Служба должна запуститься автоматически после установки.

Если не работает, запустите его вручную.

 systemctl enable --now netdata

Проверьте статус услуги.

$ systemctl status netdata
● netdata.service - Real time performance monitoring
   Loaded: loaded (/usr/lib/systemd/system/netdata.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2023-08-19 22:53:20 UTC; 36s ago
  Process: 47285 ExecStartPre=/bin/chown -R netdata /run/netdata (code=exited, status=0/SUCCESS)
  Process: 47283 ExecStartPre=/bin/mkdir -p /run/netdata (code=exited, status=0/SUCCESS)
  Process: 47281 ExecStartPre=/bin/chown -R netdata /var/cache/netdata (code=exited, status=0/SUCCESS)
  Process: 47280 ExecStartPre=/bin/mkdir -p /var/cache/netdata (code=exited, status=0/SUCCESS)
 Main PID: 47287 (netdata)
    Tasks: 79 (limit: 10843)
   Memory: 171.8M
   CGroup: /system.slice/netdata.service
           ├─47287 /usr/sbin/netdata -P /run/netdata/netdata.pid -D
           ├─47290 /usr/sbin/netdata --special-spawn-server
           ├─47461 /usr/libexec/netdata/plugins.d/go.d.plugin 1
           ├─47465 /usr/libexec/netdata/plugins.d/ebpf.plugin 1
           ├─47467 /usr/libexec/netdata/plugins.d/debugfs.plugin 1
           ├─47472 /usr/libexec/netdata/plugins.d/apps.plugin 1
           └─47486 /usr/libexec/netdata/plugins.d/systemd-journal.plugin 1

Aug 19 22:53:21 cent8.mylab.io ebpf.plugin[47465]: set name of thread 47482 to EBPF SHM
Aug 19 22:53:21 cent8.mylab.io ebpf.plugin[47465]: thread created with task id 47483
Aug 19 22:53:21 cent8.mylab.io ebpf.plugin[47465]: set name of thread 47483 to EBPF FUNCTIONS
Aug 19 22:53:21 cent8.mylab.io debugfs.plugin[47467]: Zswap is disabled
Aug 19 22:53:21 cent8.mylab.io debugfs.plugin[47467]: Failed to find powercap zones.
Aug 19 22:53:22 cent8.mylab.io apps.plugin[47472]: Using now_boottime_usec() for uptime (dt is 5 ms)

Вы также можете попробовать Netdata в Docker-контейнере, выполнив:

docker run -d --name=netdata \
  -p 19999:19999 \
  -v /proc:/host/proc:ro \
  -v /sys:/host/sys:ro \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  --cap-add SYS_PTRACE \
  --security-opt apparmor=unconfined \
  netdata/netdata

Шаг 2. Установите InfluxDB и Grafana

Следующий шаг — установка InfluxDB и Grafana. У нас есть руководства для серверов Debian, Ubuntu и CentOS.

Установите Графану:

Как установить Grafana в Ubuntu и Debian

Установите Grafana и InfluxDB на CentOS 7.

Как установить Grafana на RHEL 8

Установите InfluxDB:

Установите InfluxDB в Ubuntu и Debian

Как установить InfluxDB в Fedora

Как установить InfluxDB на RHEL 8/CentOS 8

Шаг 3. Настройте Netdata для использования InfluxDB

Мы настроим Netdata для использования InfluxDB в качестве базы данных временных рядов. Откройте конфигурацию netdata, найдите блок [backend] и установите его.

[backend]
    enabled = yes
    type = opentsdb
    destination = localhost:4242

Это должно выглядеть примерно так, как показано ниже.

Теперь откройте конфигурацию InfluxDB и включите службу OpenTSDB.

$ sudo vim /etc/influxdb/influxdb.conf
[[opentsdb]]
   enabled = true
   bind-address = ":4242"
   database = "opentsdb"

Перезапустите службы influxdb и netdata после внесения изменений.

sudo systemctl restart influxdb netdata 

Убедитесь, что вы прослушиваете порт 4242.

~# ss -tunelp | grep 4242
 tcp    LISTEN   0 128  *:4242  *:* users:(("influxd",pid=27646,fd=15)) uid:998 ino:176788 sk:17 v6only:0 <->      

Netdata должна начать отправлять метрики в InfluxDB.

$ influx -username 'monitoring' -password 'StrongPassword'
 Connected to http://localhost:8086 version 1.7.4
 InfluxDB shell version: 1.7.4
 Enter an InfluxQL query
> SHOW DATABASES
name: databases
name
----
_internal
opentsdb 

Вы можете видеть, что база данных opensdb создана. Давайте проверим, есть ли в этой базе данных метрики Netdata.

> USE opentsdb 
> SHOW MEASUREMENTS LIMIT 10
   name: measurements
   name
   netdata.apps.cpu.VMs
   netdata.apps.cpu.X
   netdata.apps.cpu.apps.plugin
   netdata.apps.cpu.charts.d.plugin
   netdata.apps.cpu.containers
   netdata.apps.cpu.cron
   netdata.apps.cpu.dhcp
   netdata.apps.cpu.go.d.plugin
   netdata.apps.cpu.iscsi
   netdata.apps.cpu.kernel 

Шаг 4. Настройте Grafana для использования InfluxDB

Войдите в свою Grafana, используя http://serverip:3000 и войдите в систему как администратор и пароль. Нажмите «Добавить источник данных:

Выберите тип источника данных InfluxDB из списка.

Укажите URL-адрес сервера, имя базы данных и данные аутентификации, если у вас включена HTTP-аутентификация.

Сохраните и проверьте предоставленные настройки.

Шаг 5. Создайте/импортируйте панель мониторинга Netdata Grafana.

Я нашел рабочую панель управления Netdata для графаны. Импортируйте его, указав номер панели мониторинга.

Нажмите «Загрузить», чтобы импортировать панель мониторинга. Выберите источник данных InfluxDB, который вы добавили ранее, чтобы завершить импорт.

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

Заключение

Вы узнали, как использовать Netdata, InfluxDB и Grafana для мониторинга серверов приложений, серверов баз данных и других приложений, работающих в вашей инфраструктуре. Если вас интересуют другие руководства по мониторингу, посетите:

Мониторинг системы Linux с помощью Grafana и Telegraf

Мониторинг кластера Ceph с помощью Prometheus и Grafana

Как мониторить сервер Redis с помощью Prometheus и Grafana за 5 минут

Как отслеживать производительность Linux-сервера с помощью Prometheus и Grafana за 5 минут

Как отслеживать DNS-сервер BIND с помощью Prometheus и Grafana

Мониторинг MySQL/MariaDB с помощью Prometheus за пять минут

Как отслеживать веб-сервер Apache с помощью Prometheus и Grafana за 5 минут

Статьи по данной тематике: