Как контролировать 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 минут