ServerAdmin.ru
26.4K subscribers
190 photos
24 videos
8 files
2.45K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​▶️ Мне один читатель предложил переименовать канал в "Мир Забикса". Много выходит материалов по нему, что логично. Это мой авторский канал, а пишу я в том числе о том, чем сам занимаюсь. С Zabbix я работаю регулярно, практически каждый день, поэтому и заметок много.

Со мной поделились ссылкой на серию вебинаров с броским названием Zabbix с нуля до короля. Смотреть там много: 6 уроков по 1-2 часа. Материал свежайший, первая часть вышла месяц назад. Автор с нуля, с самых азов в виде установки, показывает настройку системы мониторинга. Если хотите освоить эту систему, то рекомендую. Материала достаточно, чтобы повторить и настроить свою систему.

Автор в режиме онлайн трансляции всё настраивает, поэтому видео затянуты, материал не сжат, но зато вы видите от и до как специалист всё делает: разворачивает окружение, ставит пакеты, правит конфиги и т.д. Профи в таком виде материал смотреть не интересно, потому что много времени уходит на очевидные для него вещи. А вот для новичков такой формат идеален. Можно подсмотреть программы, методы работы, рассуждения специалиста и побыстрее научиться самому.

🎓 Первая часть: https://www.youtube.com/watch?v=_NQTDra4Fds
Остальные части в разделе Трансляции этого канала. В списке видео их нет. Но там в самом начале есть другие любопытные видео. Например, серия Контроллер домена Ubuntu 20 04. AD DC из трёх частей.

#zabbix #видео #обучение
​​С выходом версии Zabbix Server 6.4 была анонсирована новая схема интеграции с LDAP. В блоге Zabbix вышла статья, которая подробно раскрывает эту тему — Just-in-Time user provisioning explained. Передам кратко её суть.

Раньше, чтобы пользователь мог аутентифицироваться через LDAP, его обязательно надо было создать в локальной базе данных пользователей. Во время аутентификации шла проверка в LDAP на предмет соответствия введённых имени пользователя и пароля. Заданный локальный пароль игнорировался. Очевидно, что такая схема работы неудобна, так как подразумевает двойную работу по заведению пользователя.

В версии 6.4 заводить вручную локального пользователя не надо. После ввода логина и пароля в форму веб интерфейса, Zabbix сам идёт на LDAP сервер и проверяет введённые данные, а также группы и email пользователя, если он там найден. Если всё в порядке, то Zabbix сам создаёт пользователя с соответствующими настройками групп доступа и email.

В статье поэтапно показана процедура настройки LDAP аутентификации. В том числе показан пример запуска LDAP сервера с phpldapadmin в составе для веб интерфейса управления. Этот LDAP каталог подключается к Zabbix Server. Далее очень подробно описан механизм взаимодействия и создания зависимостей между Zabbix и LDAP.

Статья написана подробно и информативно. Если вам интересна данная тема, то рекомендую. Хорошо всё раскрыто. Функционал ожидаемый и очень востребованный.

#zabbix
​​У Dmitry Lambert, Head Of Customer Support Zabbix, в блоге вышло подробное видео на тему установки Zabbix 6.4:

Zabbix 6.4 Installation Guide: Comprehensive Tutorial for CentOS Stream with MySQL

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

В Zabbix есть параметр AllowUnsupportedDBVersions, который позволяет отключить проверку соответствия версии СУБД, если используется неподдерживаемая версия. В некоторых случаях работа на неподдерживаемой версии возможна, хоть и не рекомендована. Если у вас по какой-то причине нет возможности обновить СУБД, а более новая версия Zabbix Server не поддерживает её, можно воспользоваться этим параметром.

И раз уж зашла речь про Zabbix, расскажу небольшую историю, которая недавно со мной произошла. В какой-то момент сервер, который мониторится с помощью Zabbix, стал пропускать проверки. И вообще периодически вылетать с мониторинга и возвращаться. При этом в логах сервера были сообщения:

Zabbix agent item "agent.ping" on host "servername" failed: \
first network error, wait for 15 seconds
resuming Zabbix agent checks on host "servername": \
connection restored

И так постоянно. Мониторинг и сам сервер общаются через интернет, находятся далеко друг от друга. При этом пинги ходят идеально, пакеты не пропадают, отклик стабильный.

Я проверил всё, что только можно. И на сервере, и на клиенте. Ничего не помогает. Стал вручную UDP пакеты с агента на сервер слать и заметил, что они иногда пропадают. Где-то по пути следования пакеты теряются. С агента улетают, на сервер не приходят. Как решить этот вопрос, я не знал. Пришлось подставить костыль. Сильно уменьшил таймаут ожидания на сервере и время повторной проверки отключившегося хоста:
Timeout=5
UnreachableDelay=5

Так хотя бы после первой сетевой проблемы, повторная проверка производится максимум через 10 секунд и хост снова возвращается на мониторинг. До этого по 15 секунд были значения и хост частенько мог отваливаться на время вплоть до минуты. Из-за этого все графики были рваные.

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

#zabbix
​​Расскажу про простой и быстрый способ увидеть лог smtp сессии при обращении к какому-то почтовому серверу. Как вы уже знаете из прошлой заметки про curl, она умеет работать с различными протоколами. В том числе и с smtp.

В общем случае самый эффективный способ поговорить с smtp сервером, это обратиться к нему на 25 порт телнетом. И надавать ему туда своих команд. Примеров в сети много. Но это долго и не всегда нужно. Можно воспользоваться curl:

# curl smtp://mail.site.ru:25 -v \
--mail-from sysadmin@site.ru \
--mail-rcpt sysadmin@site.ru \
--user 'sysadmin@site.ru:password' \
--upload-file ~/email.txt

Содержимое email.txt примерно такое:

From: sysadmin@site.ru
To: sysadmin@site.ru
Subject: test email
Date: Mon, 17 Apr 2023 00:17:16

Dear Sysadmin,
Welcome to this test email. What a lovely day.

В консоли будете наблюдать лог smtp сессии. Если что-то не так, увидите ошибку.

Я вспомнил про curl, потому что один сервер мониторинга Zabbix никак не хотел отправлять почту через конкретный локальный почтовый сервер. Все другие клиенты с ним нормально работают, а Zabbix никак. При этом сам Zabbix сервер с другими почтовыми серверами тоже нормально работал.

Мне захотелось разобраться в проблеме, поэтому погрузился в тематику. Выяснил, что Zabbix отправляет почту через curl. Со стороны почтового сервера было не очень понятно, в чём конкретно проблема, он просто ругался на неправильную аутентификацию. Немного поигрался в консоли с curl и понял, в чём проблема.

Curl почему-то по умолчанию предлагает аутентификацию DIGEST-MD5 и она по какой-то причине происходит с ошибкой. По идее, клиент дальше должен пробовать другие методы, но конкретно в этой ситуации curl получал ошибку аутентификации и больше никаких попыток не делал. Дело было на сервере Centos 7, где curl очень старой версии. В сети нашёл информацию, что на нём реально могут быть проблемы с аутентификацией. Обновил утилиту до последней версии, но мне это не помогло.

Дальше разбираться не стал. Слишком много времени ушло, а проблема не критичная. Обошёл её, сделав исключение для конкретного IP адреса.

Вот эта же проблема, описанная на форуме Zabbix, а вот предложенное решение по обновлению curl на centos 7, которое мне не помогло.

#linux #curl #zabbix
​​Давно не было заметок о Zabbix, хотя я с ним регулярно работаю. В основном привычные настройки делал. Из последнего — настраивал мониторинг сайтов, docker контейнеров, бэкапов. Стандартный шаблон для Docker очень нравится. Полезные метрики, оповещения, всё на автообнаружении сделано. Ручной работы нет. Статьи в целом актуальны по смыслу и идеям реализации, но где-то в деталях и картинках устарели. Планирую после релиза 7.0 весь раздел по Zabbix на сайте актуализировать.

От команды Zabbix последнее время не было каких-то значимых новостей, заметок в блоге или на ютуб канале. Я за всем этим слежу. Из более ли менее интересных событий отмечу следующие:

Появился шаблон оповещений для интеграции с новой технологией Event-Driven Ansible.

На днях в блоге вышла очень хорошая статья, описывающая принципы создания новых метрик с использованием различных преобразований. Для примера там взяли типовой шаблон для Nginx и показали, как к базовым метрикам добавить новые. Например, показать динамику изменения числа запросов к веб серверу и вывести метрику на дашборд. Таких примеров там много, статья большая. Рекоvендую, если осваиваете Zabbix.

Ещё одна интересная статья про добавление в Zabbix метеокарты. К сожалению, статья слишком поверхностная и у меня быстро не получилось повторить настройку. Более детально разбираться не было времени. Хотел для личного использования настроить.

В Zabbix 6.4 появилась возможность выгружать события из Zabbix в режиме реального времени в другие системы. В статье описан пример реализации этой функциональности.

Цикл видео про настройку мониторинга Kubernetes с помощью Zabbix (1, 2, 3 части)

25 мая будет вебинар на русском языке — Обзор системы мониторинга Zabbix.

💡Релиз Zabbix 7.0 LTS обещают к концу этого года. Думаю, перенесут на начало 2024, как это обычно бывает. Там много полезного обещают завести. Например, сбор метрик из сторонних TSDB, наконец-то обновление раздела Inventory. Я думал, они его в конце концов уберут. Обновление мониторинга сайтов обещают, но пока даже не начали разработку. Скорее всего отложат.

#zabbix
​​На днях реализовал мониторинг безопасности Linux сервера с помощью Lynis и Zabbix. Я давно планировал реализовать что-то подобное, но всё руки не доходили. Lynis делает неплохие проверки, которые легко читаются и понимаются. В нём есть хорошая база, на которую удобно ориентироваться.

Изначально планировал написать полноценную статью, но, как обычно, не нашёл для этого времени. Целый день потратил на реализацию, так что когда напишу статью — неизвестно. Пусть хоть заметка будет. Может кому-то пригодиться.

Основная идея мониторинга — получать оповещения от Zabbix на тему безопасности. В первую очередь интересуют пакеты с уязвимостями, во вторую — права доступа на системные бинари и директории. Ну и всё остальное тоже не будет лишним. Lynis в этом плане хорош, так как закрывает базу. Про его возможности читайте отдельно, не буду сейчас останавливаться.

Основная проблема данной задачи — длительность проверки Lynis. Она может длиться минуту-две. Из-за этого неудобно запускать проверку через Zabbix, ждать вывода и потом его парсить. Нужны очень большие таймауты. К тому же вывод у Lynis очень длинный. Пришлось идти другим путём, менее удобным и гибким — писать bash скрипт, запускать его по таймеру и анализировать вывод.

Со скриптом тоже есть варианты. Можно результат работы скрипта обработать и сразу отправить через zabbix_sender. Отмёл этот подход, потому что проверки выполнять часто не имеет смысла, они слишком ресурсозатратные и долгие. А если по какой-то причине из-за потери пакетов sender не отправит результат, то до следующей проверки он не появится в мониторинге, а проверки редкие.

В итоге написал скрипт, результат его работы вывел в 2 текстовых файла:
lynis-exitcode.txt — в Lynis есть отличный параметр error-on-warnings=yes. Если его активировать, то статус выхода lynis после проверки будет ненулевым, если есть какие-то замечания по безопасности. Скрипт выводит exit code команды в этот файл.
lynis-warnings.txt — в этот файл через парсинг лога Lynis я вывожу все его замечания и список пакетов с уязвимостями.

Сам скрипт выложил на pastebin. Я положил его в /etc/zabbix/scripts, туда же кладу логи. Настройте выполнение скрипта через systemd.timers. Мне кажется, достаточно раз в час выполнять или даже реже, пару раз в день.

Далее сделал простой шаблон под Zabbix 6.0 с двумя айтемами типа лог, которые забирают значения из lynis-exitcode.txt и lynis-warnings.txt. И там же один триггер, который срабатывает, если в файле lynis-warnings.txt нет строки All is OK, которую туда пишет скрипт, если exit code после работы Lynis равен 0 (т.е. всё в порядке). Когда срабатывает триггер, на почту прилетает оповещение, в тексте которого есть информация из lynis-warnings.txt, куда записаны предупреждения и список проблемных пакетов.

Для того, чтобы отключить ту или иную проверку на хосте, надо в файл конфигурации Lynis, который живёт по адресу /etc/lynis/default.prf добавить исключения по одному в каждой строке:
skip-test=CRYP-7902
skip-test=PKGS-7392
skip-test=MAIL-8818

Отладка работы примерно так и выглядит. Запускаете скрипт, смотрите результат. Будут какие-то замечания. Сделайте для них исключение и снова запустите скрипт. Так и проверяйте всю последовательность действий вплоть до оповещений. Потом, соответственно, так же на хосте настраиваются исключения, если какие-то проверки для него неактуальны. Например, тест tls сертификатов. Он по какой-то причине очень долго идёт. Я его отключил.

Заметка получилась немного сумбурная. Тема не для новичков, а для тех, кто умеет работать с Zabbix и bash. В коротком очерке её не раскрыть. Надеюсь, получится написать статью. Там уже подробно всё распишу.

Мне понравился результат. Удобно сразу получить информацию о проблеме на почту. Подробную информацию по коду ошибки можно получить либо в полном логе Lynis на самом сервере в файлах /var/log/lynis.log и /var/log/lynis-report.dat или на сайте https://cisofy.com/lynis/controls/ в разделе с описанием проверок.

#zabbix
Написал запланированную статью по настройке интеграции Lynis и Zabbix для оповещения о результатах аудита безопасности системы:

Мониторинг безопасности сервера с помощью Lynis и Zabbix
⇨ https://serveradmin.ru/monitoring-bezopasnosti-servera-s-pomoshhyu-lynis-i-zabbix

В статье постарался максимально подробно раскрыть тему. Приложил весь необходимый материал: скрипт, шаблон.

Решение получилось немного корявое, так как неудобно делать раскатку на много хостов. Приходится добавлять скрипты, настраивать таймер, собирать логи. Плюс, настройки самого Lynis могут быть разные на разных хостах. Менять приходится вручную.

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

#zabbix #security
​​Рассказываю про отличный сервис, который позволит выводить уведомления, к примеру, от системы мониторинга в пуши смартфона или приложение на десктопе. При этом всё бесплатно и можно поднять у себя.

Речь пойдёт про сервис ntfy.sh. Сразу покажу, как им пользоваться, чтобы было понятно, о чём идёт речь. Идёте по ссылке в веб приложение: https://ntfy.sh/app. Разрешаете ему отправлять уведомления. Подписываетесь на новую тему. После этого получаете ссылку вида: ntfy.sh/Stkclnoid6pLCpqU

Теперь идёте в любую консоль и отправляете с помощью curl себе уведомление:

# curl -d "Test Message" ntfy.sh/Stkclnoid6pLCpqU

Получаете оповещение от веб приложения. То же самое можно сделать, установив на смартфон приложение. Сервис бесплатный. При этом серверная часть open source. Вы можете развернуть сервер у себя и отправлять уведомления через него. Есть репозитории под все популярные системы. Инструкция прилагается.

Таким образом любой сервис, умеющий выполнять вебхуки, может без проблем отправлять уведомления вам на смартфон или десктоп. Например, в Zabbix достаточно в способах оповещений добавить новый с типом Webhook, в качестве скрипта использовать примерно следующее:

var response,
  payload,
  params = JSON.parse(value),
  wurl = params.URL,
  msg = params.Message,
  request = new CurlHttpRequest();
  request.AddHeader('Content-Type: text/plain');
  response = request.Post(wurl, msg);

В качестве URL укажите свою подписку в ntfy. Теперь это оповещение можно добавлять пользователям. Им будет приходить уведомление с текстом, который передаёт макрос {ALERT.MESSAGE}.

Либо совсем простой пример для какой-то операции в консоли:

# rsync -a /mnt/data user_backup@10.20.1.1:/backups/srv01 \
 && curl -H prio:low -d "SRV01 backup succeeded" ntfy.sh/Stkclnoid \
 || curl -H tags:warning -H prio:high -d "SRV01 backup failed" ntfy.sh/Stkclnoid

Если бэкап успешен, отправляем одно уведомление, если нет, то другое.

Такой вот простой и удобный сервис.

⇨ Сайт / Исходники

#мониоринг #zabbix #devops
​​У Zabbix вчера была рассылка с новостями. Давно ничего не писал про него, потому что новостей особо не было. Буднично проходили новости об очередных обновлениях и конференциях в разных странах. А в этот раз они немного подробностей дали по поводу новой версии 7.0, у которой уже 3-я альфа вышла. Так что работа идёт и релиз всё ближе.

Команда Zabbix показала новые виджеты дашборда, которые будут в новой версии. Можете оценить на прикреплённой картинке. Впечатления двоякие. Вроде бы прикольно, но выглядит как-то колхозно всё это. Не получается им к какому-то единому стилю прийти из-за того, что обновления сильно растянуты. Сначала интерфейс обновили, потом частично графики в виджетах, потом новые виджеты стали добавлять, при этом часть графиков так и осталась в старом дизайне, которому уже около 10-ти лет. Мне кажется, им стоило один раз собраться и в каком-то релизе выкатить полное обновление интерфейса и графиков. А то это так и будет вечно продолжаться.

Помимо новых визуализаций, появится виджет с топом триггеров. Я так понял, что это виджет из отчёта 100 наиболее активных триггеров (в русском интерфейсе). Он показывает триггеры, которые чаще всего меняли своё состояние (срабатывали) за указанный период времени. Кстати, удобный отчёт, который позволяет подредактировать триггеры, которые слишком часто срабатывают.

Из тех обновлений, что точно будут в 7.0, отмечу:
увеличится поддержка версий до MySQL 8.1 MariaDB 11
появится шаблон для мониторинга за PostgreSQL через ODBC
появится шаблон для Cisco SD-WAN
появится возможность выполнения удалённых команд при активных проверках
некоторые настройки переедут в модальные окна (способы оповещений, скрипты и т.д.)
увеличат возможности обработки в aggregation functions

Вот и всё наиболее значимое, что было объявлено в последних трех релизах альфы. Пока как-то негусто изменений. По обещанному обновлению модуля инвентаризации, поддержке сторонних TSDB, асинхронному сбору данных не сделано ничего в тех версиях, что опубликованы.

#zabbix
​​Много раз в заметках упоминал про сервис по рисованию различных схем draw.io. Судя по отзывам, большая часть использует именно его в своей работе. Схемы из draw.io относительно легко можно наложить на мониторинг на базе Grafana. Если вы с ней работаете, то особых проблем не должно возникнуть. Если нет, то не скажу, что настройка будет простой. Но в целом, ничего особенного. Мне когда надо было, освоил Grafana за пару дней для простого мониторинга.

Речь пойдёт про плагин к Графане — flowcharting. Он есть в официальном списке плагинов на сайте, так что с его установкой вопросов не должно возникнуть. Сразу скажу, что с помощью этого плагина можно нарисовать схему и связать через через Графану его с мониторингом на Zabbix.

Последовательность настройки схемы с помощью плагина следующая:

1️⃣ Вы берёте схему в draw.io и выгружаете её в xml формате.
2️⃣ Создаёте dashboard в Grafana и добавляете туда панель flowcharting.
3️⃣ Загружаете xml код схемы в эту панель и получаете визуализацию.
4️⃣ Сопоставляете объекты на схеме с объектами в Графане, сразу переименовывая их так, чтобы было удобно.
5️⃣ Дальше к объектам можно добавлять метрики, как это обычно делается в Grafana. Соответственно, в качестве Data Source можно использовать тот же Zabbix.

Сразу приведу ссылки, которые помогут вам быстро начать действовать, если плагин заинтересовал.

Страница плагина в Grafana
Инструкция по настройке
▶️ Плейлист Flowcharting Grafana (29 видео)

Все видео в плейлисте на португальском языке. Можно включить перевод субтитров на русский. В целом, там важно смотреть, как и что он делает. А что говорит, не так важно. В плейлисте полностью раскрыта тема построения мониторинга с помощью этого плагина. В том числе и в связке с Zabbix (26-й ролик).

Плагин давно не обновлялся. Я не уверен, что он нормально заработает на свежих версиях, хотя, по идее должен. Я до сих пор пользуюсь 7-й версией. И там он работает.

#мониторинг #zabbix #grafana