Базовая настройка Zabbix 6.4.0 под CentOS 8 / Rocky Linux 8
Вот прошло уже 2 недели с появления новой версии Zabbix, а именно, версии 6.4.0. И поскольку новым версиям посвещено довольно мало статей, а интерфейс и логику работы они поменяли прямо очень сильно, я решил написать кратенькую инструкцию как с актуальной на данный момент времени вообще жить. Сейчас начнём с основ, а там посмотрим на реакцию публики. Итак.
Собственно, установка
Только обратите внимение, что на этой странице в пункте 1 надо выбрать то, что соответствует вашим пожеланиям, в зависимости от выбора каждого пункта инструкция будет изменяться. Я предпочитаю использовать Zabbix в комплекте с Postgres, потому дальнейшие советы будут про него.
Еще для установки на восьмёрку придётся обновить версии пары пакетов относительно штатных системных, иначе установка пройдёт успешно, но потом ничего работать не будет:
dnf install -y epel-release # Устанавливаем сторонний репозиторий, содержащий нужные нам версии php dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm dnf module reset php dnf module enable php:remi-7.4 -y dnf -qy module disable postgresql dnf install -y postgresql15 postgresql15-server
После установки необходимых пакетов и создания базы данных нужно зайти в конфиг сервера /etc/zabbix/zabbix_server.conf и внести некоторые изменения, я ограничился следующими:
# Данные для подключения к базе, должны соответствовать тому, # что использовалось при установке базы: DBName=zabbix DBUser=zabbix DBPassword=password # Параметры, отвечающие за быстродействие, оптимизированы под меня StartDiscoverers=10 StartHTTPPollers=10 StartVMwareCollectors=5 VMwareCacheSize=32M VMwareTimeout=120 StatsAllowedIP=127.0.0.1. 1,2001:db8::/32,zabbix.your-company.ru
Сохраняем изменения, перезагружаем сервер
systemctl restart zabbix-server.service
… и выполняем первый вход через веб, в процессе которого надо будет указать параметры подключения к базе. А потом еще зайти в интерфейс и сменить пароль администратора с Admin/zabbix на что-нибудь более безопасное.
Если почему-то веб-интерфейс не открывается, то «чиним» фаерволл:
firewall-cmd --add-service=http --permanent firewall-cmd --add-service=https --permanent firewall-cmd --add-service=zabbix-agent --permanent firewall-cmd --add-service=zabbix-server --permanent firewall-cmd --reload
Настройка
А дальше начинается самое интересное… Если вы ранее работали с более старой версией (как например я, который до этого использовал версию 4.5), то интерфейс вы можете не узнать вообще.
Для начала зайдём в Data Collection — Discovery. Тут нам нужно пока 2 правила, первое зададим так:

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

Теперь, если мы зайдём в Monitoring — Discovery, то мы уже увидим какие-то найденные узлы, но сверху можно выбрать конкретное Discovery rule, применить его и мы узнам, какой именно узел, подпадающий под это правило, находится в каком состоянии:

Первые строки соответствуют узлам в статусе «доступен» и отображают непрерывное время доступности, последние же соответствуют узлам в статусе «не доступен» и отображают время недоступности.
Узлы, находящиеся тут, это все узлы, активность которых Zabbix зафиксировал. Реального сбора с них вполне может не идти!
Далее, устанавливаем заббикс-клиент на узел, который мы хотим мониторить. Для этого на каком-то сервере точно также добавляет репозиторий, устанавливаем пакет zabbix-agent, после чего вносим правки в конфиг и перезапускает сервер. В конфиге я лично ограничусь следующими необходимыми и достаточными мне на первое время правками:
Server=zabbix.yourcompany.ru ServerActive=zabbix.yourcompany.ru #Hostname=Zabbix server HostnameItem=system.hostname HostMetadata=Linux
Строчку Hostname надо убрать любым способом, например закомментировать как в моем примере. Конечно, вы можете указать имя сервера и напрямую (и тогда не указывать HostnameItem), но на мой взгляд это неудобно потому, что тогда каждый конфиг будет уникальным, в данном же случае, все конфиги всех серверов оказываются строго идентичными, благодаря чему их можно раскладывать централизованно например при установке через ansible или любой другой механизм. А имя сервера будет браться из его собственного имени хоста, для работы с которым существует две удобные команды:

Однако, пока новый агент в списке доступных серверов не появится. И чтобы это исправить надо произвести еще несколько действий. Во-первых, заходим в «Alerts-Action-Autoregistration actions», создаём новое действие («Create Action» в правом верхнем углу), которое по наличию в Metadata слова «Linux» будет добавлять хост в группу «Linux Servers», при этом там создаём условие («Add» в поле «Condition»)

А после нажатия кнопки сохранения («Add») переходим на вкладке «Operations» и там также жмём «Add», добавляем соответствующее действие и опять сохраняем.
Тут кстати важно заметить, что в отличие от старых версий, сейчас есть возможность добавлять узлы не только по метаданным, но также по PSK-ключам, что конечно гораздо безопаснее и о чём подробнее вы можете почитать тут: https://www.zabbix.com/documentation/current/en/manual/discovery/auto_registration#secure-autoregistration
Я же не буду на этом останавливаться потому, что если сервер находится в закрытой корпоративной сети, что является типовой схемой применения системы мониторинга, такие меры безопасности на мой взгляд являются избыточными.

Во-вторых, заходим в «Alerts-Action-Discovery actions», там создаём новое «Discovery action» примерно с такими условиями, как на картинке выше и примерно с такими действиями, как на картинке ниже.

И опять видим что-то новое! Что за «Set host inventory mode?»- спросите вы — Оказывается, если раньше правила автоопределения просто работали, то сейчас мало того, что их поделили на 2 группы, так еще по умолчанию их выполнение не может добавить узел в Inventory! И исправить эту ситуацию можно одним из двух путей: либо через дополнительный пункт в действиях правила автоопределения, как на изображении выше, либо через смену поведения по-умолчанию, которая производится в Administration-General-Other-Default host inventory mode.
Теперь те Linux-сервера, на которых установлен Zabbig agent, будут автоматически добавляться в Inventory hosts, хотя и не сразу… В начале узел должен пропинговаться и стать «Доступен», потом к нему попытается сходить правило Autoregistration action, оно уточнит, точно ли агент настоящий, потом хост он будет добавлен в список узлов Data collection-Hosts, потом к нему будет применено Discovery action и только после этого узел появится в Inventory и начнёт отображаться его доступность. При параметрах, которые приведены в примере, это должно занять менее полутора часов.
Если статья окажется интересна и наберёт положительные отзывы, я напишу как подружить Zabbix с VmWare ESXi.
А если будут просто какие-то пожелания или возражения — пишите, с удовольствием исправлю. Я — не частый автор статей для Хабра, потому с большим вниманием отнесусь к критике и постараюсь исправить возможные ошибки. Рука не набита, как говорится.
Ошибка Zabbix discoverer processes more than 75% busy.
Помощник Админа > Blog > Windows & Linux > Linux > Ошибка Zabbix discoverer processes more than 75% busy.
В Telegram получил сообщение от Zabbix следующего содержания:
Zabbix discoverer processes more than 75% busy

Для устранения данной проблемы требуется скорректировать файл-конфигурации zabbix_server.conf.
Откроем zabbix_server.conf командой:
# nano /etc/zabbix/zabbix_server.conf
Находим параметр с опцией «StartDiscoverers» и меняем значение данного параметра на значение 5, которое по умолчанию равно 1:
### Option: StartDiscoverers #Number of pre-forked instances of discoverers. # # Mandatory: no # Range: 0-250 # Default: #StartDiscoverers=1 StartDiscoverers=5

После изменения настроек требуется сохранить файл и перезагрузить zabbix сервер командой:
# service zabbix-server restart
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
1 Zabbix сервер
Zabbix сервер — это ядро программного обеспечения Zabbix. Zabbix сервер может быть запущен командой:
shell> cd sbin shell> ./zabbix_server
Zabbix сервер стартует как демон.
Zabbix сервер поддерживает следующие параметры командной строки:
-c --config файл> Параметр указывает на конфигурационный файл, по умолчанию это /etc/zabbix/zabbix_server.conf -n --new-nodeid nodeid> конвертирование данных базы данных для новой nodeid -R --runtime-control опция> выполнение административных функций -h --help Отображает это сообщение помощи -v --version Отображает номер версии
Опция -R или —runtime-control поддерживается начиная с Zabbix 1.8.6.
Управление runtime не поддерживается в OpenBSD и NetBSD.
Для получения более подробной помощи по параметрам командной строки выполните:
shell> zabbix_server -h
Примеры параметров командой строки:
shell> zabbix_server -c /usr/local/etc/zabbix_server.conf shell> zabbix_server --help shell> zabbix_server -V
Контроль выполнения
Опции контроля выполнения:
| Опция | Описание |
|---|---|
| config_cache_reload | Перезагрузка кэша конфигурации. Игнорируется если кэш уже загружается. |
Пример использования контроля выполнения для перезагрузки сервером кэша конфигурации:
shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R config_cache_reload
Конфигурационный файл
Файл конфигурации содержит параметры настроек zabbix_server. Этот файл должен существовать и должен иметь права чтения для пользователя ‘zabbix’. Поддерживаемые параметры:
| Параметр | Обязательный | Диапазон | По умолчанию | Описание | |||||
|---|---|---|---|---|---|---|---|---|---|
| AlertScriptsPath | нет | /home/zabbix/bin/ | Размещение пользовательских скриптов оповещений | ||||||
| CacheSize | нет | 128K-1G | 8M | Размер кэша конфигурации, в байтах. Размер распределяемой памяти (shared memory) для данных о хранимых узлах сети и элементах данных. |
|||||
| CacheUpdateFrequency | нет | 1-3600 | 60 | Как часто Zabbix будет выполнять процедуру обновления кэша конфигурации, в секундах. | |||||
| DBHost | нет | В зависимости от реализации используемой библиотеки. | Имя хоста базы данных. Если установлен localhost, то для СУБД MySQL используется сокет. |
||||||
| DBName | да | Имя базы данных. Для SQLite3 должен быть указан путь к файлу базы данных. DBUser и DBPassword игнорируются. |
|||||||
| DBPassword | нет | Пароль к базе данных. Игнорируется при СУБД SQLite. Закомментируйте эту строку, если пароль не используется. |
|||||||
| DBPort | нет | 1024-65535 | 3306 | Порт базы данных, когда не используется локальный сокет. Игнорируется при СУБД SQLite. | |||||
| DBSocket | нет | /tmp/mysql.sock | Путь к сокету СУБД MySQL. | ||||||
| DBUser | нет | Пользователь базы данных. Игнорируется при СУБД SQLite. | |||||||
| DebugLevel | нет | 0-4 | 3 | Задает уровень журналирования (для отладки) 0 — без отладки 1 — критичная информация 2 — информация об ошибках 3 — предупреждения 4 — для отладки (записывает очень много информации) |
|||||
| DisableHousekeeping | нет | 0-1 | 0 | Если установлена 1, то очистка базы данных от устаревших данных отключена. | |||||
| ExternalScripts | нет | /etc/zabbix/externalscripts | Размещение внешних скриптов | ||||||
| Fping6Location | нет | /usr/sbin/fping6 | Размещение fping6. Убедитесь, что исполняемый файл fping6 имеет владельца root и флаг SUID установлен. Оставьте пустым («Fping6Location even»> | FpingLocation | нет | /usr/sbin/fping | Размещение fping. Убедитесь, что исполняемый файл fping имеет владельца root и флаг SUID установлен! |
||
| HistoryCacheSize | нет | 128K-1G | 8M | Размер кэша истории, в байтах. Размер распределяемой памяти (shared memory) для хранения данных истории. |
|||||
| HistoryTextCacheSize | нет | 128K-1G | 16M | Размер кэша текстовой истории, в байтах. Размер распределяемой памяти (shared memory) для хранения данных: символов, текста или журналов. |
|||||
| HousekeepingFrequency | нет | 1-24 | 1 | Как часто Zabbix запускает процедуру очистки базы данных от устаревшей информации (в часах). Удаление ненужной информации из таблиц истории, оповещений и сигнализаций. Если используется PostgreSQL, то предлагаемое значение 24, так как выполняется VACUUM. |
|||||
| MaxHousekeeperDelete | нет | 0-1000000 | 500 | Не более чем ‘MaxHousekeeperDelete’ строк (в соответствии с [tablename], [field], [value]) будет удалено за один цикл задачей очистки истории. SQLite3 не использует этот параметр, удаляются все подходящие строки без лимита. Если установлен 0, то удаляются все подходящие строки без ограничений. В этом случае вы должны понимать, что вы делаете! Эта опция поддерживается начиная с версии 1.8.2. |
|||||
| Include | нет | Вы можете включить индивидуальные файлы или все файлы в папке в файл конфигурации. | |||||||
| ListenIP | нет | 0.0.0.0 | Список IP адресов разделенный запятыми, которые нужно прослушивать для траппера Траппер будет прослушивать все сетевые интерфейсы, если параметр не указан. Несколько IP адресов поддерживается начиная с версии 1.8.3 и выше. |
||||||
| ListenPort | нет | 1024-32767 | 10051 | Прослушиваемый порт для траппера. | |||||
| LogFileSize | нет | 0-1024 | 1 | Максимальный размер файла журнала в МБ. 0 — отключение автоматической ротации журнала. |
|||||
| LogFile | нет | Имя файла журнала. | |||||||
| LogSlowQueries | нет | 0-3600000 | 0 | Как долго должен выполняться запрос к базе данных чтобы он был занесен в журнал (в миллисекундах). 0 — не журналировать медленные запросы Эта опция поддерживается начиная с версии 1.8.2 |
|||||
| NodeID | нет | 0-999 | 0 | Уникальный NodeID для распределенной установки. 0 — одиночный сервер |
|||||
| NodeNoEvents | нет | 0-1 | 0 | Если установлена ‘1’, тогда локальные события не будут отправлены мастер ноде. Эта опция не влияет на способность этой ноды распространять события от своих дочерних нод. |
|||||
| NodeNoHistory | нет | 0-1 | 0 | Если установлена ‘1’, тогда локальная история не будет отправлена мастер ноде. Эта опция не влияет на способность этой ноды распространять историю от своих дочерних нод. |
|||||
| PidFile | нет | /tmp/zabbix_server.pid | Имя PID файла. | ||||||
| ProxyConfigFrequency | нет | 1-604800 | 3600 | Частота отправки в секундах Zabbix сервером данных о конфигурации для Zabbix прокси. Используется только для прокси в пассивном режиме. Эта опция поддерживается начиная с версии 1.8.3. |
|||||
| ProxyDataFrequency | нет | 1-3600 | 1 | Частота запроса в секундах Zabbix сервером данных истории с Zabbix прокси. Используется только для прокси в пассивном режиме. Эта опция поддерживается начиная с версии 1.8.3. |
|||||
| SSHKeyLocation | нет | Размещение публичных и приватных ключей для проверок по SSH | |||||||
| SenderFrequency | нет | 5-3600 | 30 | Как часто Zabbix будет пытаться повторно отправлять не отправленные оповещения (в секундах). | |||||
| SourceIP | нет | Исходный IP адрес для исходящих подключений. | |||||||
| StartDBSyncers | нет | 1-100 | 4 | Количество форков Синхронизаторов БД. Верхний предел 64 до версии 1.8.5. Эта опция поддерживается в версии 1.8.3 и в более новых |
|||||
| StartDiscoverers | нет | 0-250 | Количество форков автообнаружения. Верхний предел 255 до версии 1.8.5. |
||||||
| StartHTTPPollers | нет | 0-1000 | 1 | Количество форков пуллеров HTTP. Верхний предел 255 до версии 1.8.5. |
|||||
| StartIPMIPollers | нет | 0-1000 | 0 | Количество форков пуллеров IPMI. Верхний предел 255 до версии 1.8.5. |
|||||
| StartPingers | нет | 0-1000 | 1 | Количество форков пингеров по ICMP. Верхний предел 255 до версии 1.8.5. |
|||||
| StartPollersUnreachable | нет | 0-1000 | 1 | Количество форков пуллеров для недоступных узлов сети (включая IPMI). Верхний предел 255 до версии 1.8.5. Эта опция отсутствует в версии 1.8.3. |
|||||
| StartPollers | нет | 0-1000 | 5 | Количество форков для пуллеров. Верхний предел 255 до версии 1.8.5. |
|||||
| StartProxyPollers | нет | 0-250 | 1 | Количество форков пуллеров для пассивных прокси. Верхний предел 255 до версии 1.8.5. Эта опция поддерживается в версии 1.8.3 и в более новых |
|||||
| StartTrappers | нет | 0-1000 | 5 | Количество форков трапперов. Верхний предел 255 до версии 1.8.5. |
|||||
| Timeout | нет | 1-30 | 3 | Параметр указывает как долго ждать ответа от агента, устройства SNMP или внешней проверки (в секундах). | |||||
| TmpDir | нет | /tmp | Папка для временных данных. | ||||||
| TrapperTimeout | нет | 1-300 | 300 | Параметр указывает как много секунд траппер может потратить на обработку новых данных. | |||||
| TrendCacheSize | нет | 128K-1G | 4M | Размер кэша тенденций, в байтах. Размер распределяемой памяти (shared memory) для хранения данных о тенденциях. |
|||||
| UnavailableDelay | нет | 1-3600 | 60 | Как часто узел сети будет проверяться на доступность в период его недоступности, в секундах. | |||||
| UnreachableDelay | нет | 1-3600 | 15 | Как часто узел сети будет проверяться на доступность в период его недостижимости, в секундах. | |||||
| UnreachablePeriod | нет | 1-3600 | 45 | Через сколько секунд недостижимости узел сети считается недоступным. | |||||
Начиная с версии 1.8.6 Zabbix прокси не запустится, если в конфигурационном файле указан ошибочный (не подходящий под обозначение параметр=значение) или неизвестный параметр.
Zabbix
установка битов SUID или SGID позволит пользователям запускать исполняемые файлы от имени владельца (или группы) запускаемого файла.
Мы установили SUID на исполняемый файл /usr/bin/fping, то обычный пользователь сможет использовать эту команду без использования sudo, так, что она будет выполнятся от имени пользователя root.
Восьмеричные значения для SUID и SGID — 4000 и 2000.
Символьные: u+s и g+s.
Настройка Zabbix
Опубликовано: 04.01.2015 | Автор: Николай
4.1.1. Создаем Host group для более удобного наблюдения за сайтами (Configuration → Host groups → Create hostgroup)
В Group name пишем Web monitoring.
4.1.2. Добавляем Host или Сайт в Zabbix (Configuration → Hosts → Create hosts) Вкладка Host — Указываем Host name и DNS name, выбираем нужную Group.
4.1.3. Добавляем элементы данных в наш сайт (Configuration → Hosts → Applications → Create application)
В Name пишем имя сайта – www.site.ru
4.1.4. Создадим сценарий для сайта (Configuration → Web → Create scenario)
В Application выбираем наш сайт
В Name – site
Update time – 60
Agent – Internet Explorer 9.0
В вкладке Step пропишем, что проверять.
Required status codes – 200 (Означает, что сайт доступен)
4.1.5. Возвращаемся к нашему хосту и сделаем тригер (Configuration → Hosts → Triggers)
Выбираем Create trigger
В Name – Site www.site.ru
В Expression добавим:
Item – Response code for step — web.test.rspcode[]
Function – Last (most recent) T value is NOT N
N – 200
4.1.6. Добавляем Host или Коммутатор в Zabbix (Configuration → Hosts → Create hosts) Вкладка Host — Указываем Host name и IP address, выбираем нужную Group.
Для мониторинга служб на понадобятся сторонние программы (сылка). Распакуем их C:Program FilesZabbix
5.1. В конфигурационном файле zabbix_agentd.conf на машине с ОС Windows нужно добавить в самом конце документа эту строку — UserParameter=windows.services,»C:Program FilesZabbixservices.exe»
И включить параметр EnableRemoteCommands=1
Для проверки работоспособности используем команду:
C:zabbix_agentd.exe -c «C:zabbix_agentd.conf» -t «system.run[C:Program FilesZabbixservices.exe]»
5.2. В Zabbix импортируем шаблон, и подключаем его к нужной машине (как в п. 2.3.). При отключении или отключении службы, будет срабатывать триггер.
Создадим триггер на примере пинга какого-нибудь сервера.
Для начала нужно установить пакет fping
apt-get install fping
# chown root:zabbix /usr/bin/fping
# chmod 710 /usr/bin/fping
# chmod ug+s /usr/bin/fping
6.1.1. Создаем Host group для более удобного наблюдения за пингом (Configuration → Host groups → Create host group)
В Group name пишем Ping monitoring.
6.1.2. Создаем шаблон в Zabbix (Configuration → Templates → Create template)
Назовём его Ping_VIP
В Items добавим три значения loss, ping и sec со следующими параметрами
Создадим триггер, перейдем в Triggers → Create trigger
Построим графики, перейдем в Graphs → Create graph и создадим три графика loss, ping и sec
6.1.3. Добавляем Host или Сайт в Zabbix (Configuration → Hosts → Create hosts)
6.1.4. Вкладка Host — Указываем Host name и IP address, выбираем нужную Group.
6.1.5. Вкладка Templates, добавляем наш шаблон Ping monitoring
6.1.6. Переходим в Actions и создаём действие (Configuration → Actions → Create action)
Создаём условия во вкладке Conditions
Добавим пользователей, кому отсылать уведомления (Вкладка Operations)
- Настройка отправки отчетов на email
Administration → Media types → Email
Administration → Users → Admin → Media (Добавляем почтовые ящики)
Configuration → Actions → Triggers → Enable
Если необходима отправка SMS на мобильный, то можно зарегистрироваться на площадке [urlspan]www.smstraffic.ru[/urlspan] и подключить к мобильному номеру почтовый ящик вида [urlspan]79008007060@site.smsmail.ru[/urlspan]
7. Ошибки возникающие в процессе работы
Zabbix proxy poller processes more than 75% busy
Zabbix icmp pinger processes more than 75% busy
Zabbix unreachable poller processes more than 75% busy
Это оптимальные параметры под мою систему (Hosts = 150)
Литература:
Мониторинг с помощью Zabbix: установка Zabbix (FreeBSD)
Опубликовано: 30.11.2014 | Автор: Николай
Как и многие коллеги-администраторы, долгое время я пользовался для мониторинга всего и вся чем-то самописным. В последнее время стало изрядно лениво лазить по конфигурационным файлам, чтоб добавить хост, сервис и т.п., а потом еще и проверять в веб-интерфейсе, все ли видно хорошо. Захотелось некой удобной софтины для мониторинга, с конфигурацией в БД, удобным веб-интерфейсом. В результате был выбран Zabbix и честно говоря, вполне себя оправдывает, разве что требователен к ресурсам.
# cd /usr/ports/net-mgmt/zabbix-server # make install ┌────────────────────────────────────────────────────────────────────┐ │ Options for zabbix-server 1.8.1,2 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ [X] MYSQL Use MySQL backend │ │ │ │ [ ] PGSQL Use PostgreSQL backend │ │ │ │ [ ] SQLITE Use SQLite backend │ │ │ │ [ ] IPV6 Support for IPv6 │ │ │ │ [ ] LDAP Support for checking LDAP servers │ │ │ │ [X] JABBER Use jabber media type │ │ │ │ [X] FPING Use fping for pinging hosts │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─└────────────────────────────────────────────────────────────────┘─┤ │ [ OK ] Cancel │ └────────────────────────────────────────────────────────────────────┘
Пока он ставится, немного расскажу о идеологии софтины. Состоит она из нескольких частей: сервера, агента, фронтенда. Сервер умеет опрашивать агентов или сами объекты мониторинга (в случае с последними поддерживаются протоколы SNMP и IPMI). Агент ставится на объект мониторинга (версии агента есть для широкого перечня операционных систем, включая винды) и шлет данные на сервер, также умеет выполнять на объекте заданные команды, фронтенд стоит на веб-сервере и показывает весь процесс. К базе данных обращаются сервер и фронтенд, агентам она не нужна. Создаем ее (исходим из того, что MySQL у нас на том же хосте, где zabbix-сервер):
# mysql CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbixpassword'; GRANT USAGE ON * . * TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbixpassword' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; CREATE DATABASE IF NOT EXISTS `zabbix` ; GRANT ALL PRIVILEGES ON `zabbix` . * TO 'zabbix'@'localhost'; quit; # cd /usr/local/share/zabbix/server/create # cat schema/mysql.sql data/data.sql data/images_mysql.sql | mysql -uzabbix -pzabbixpassword zabbix # echo zabbix_server_enable="YES" >> /etc/rc.conf # cp /usr/local/etc/zabbix/zabbix_server.conf.sample /usr/local/etc/zabbix/zabbix_server.conf # ee /usr/local/etc/zabbix/zabbix_server.conf
Настройки по умолчанию достаточно разумны, потому файл /usr/local/etc/zabbix/zabbix_server.conf небольшой, для справки потом можно будет заглянуть в дефолтный файл:
# Исходящий IP, с него будут осуществляться соединения с агентами и объектами мониторинга SourceIP=192.168.1.10 # Лог-файл LogFile=/var/log/zabbix_server.log # Размер лог-файла, в мегабайтах, 0 отключает ротацию лога LogFileSize=10 # Уровень дебага, 0 - отключить, 1 - критические ошибки, 2 - ошибки, 3 - предупреждения, 4 - дебаг DebugLevel=3 # Хост БД DBHost=localhost # Название БД DBName=zabbix # Пользователь БД DBUser=zabbix # Пароль БД DBPassword=zabbixpassword # Путь к Mysql-сокету DBSocket=/tmp/mysql.sock # Порт SQL-сервера, если используем сокет - не надо # DBPort=3306
Если заббикс стоит, как в моем случае, в джейле, то на хост-машине надо в /etc/sysctl.conf добавить:
security.jail.sysvipc_allowed=1 kern.ipc.shmall=2097152 kern.ipc.shmmax=2147483648
На этом все, сервер можно запускать:
# touch /var/log/zabbix_server.log # chown zabbix:zabbix /var/log/zabbix_server.log # /usr/local/etc/rc.d/zabbix_server start
Теперь займемся фронтендом.
# cd /usr/ports/math/php5-bcmath # make install # cd /usr/ports/net-mgmt/zabbix-server/work/zabbix-1.8.1/frontends/php # cp -R * /usr/local/www/vhosts/zabbix.jared.kiev.ua # cd /usr/local/www/vhosts/zabbix.jared.kiev.ua/conf/ # cp zabbix.conf.php.example zabbix.conf.php # ee zabbix.conf.php
Тут вписываем параметры доступа к БД и прочее:
Все, теперь можно смело заходить в фронтенд с логином Admin и паролем zabbix и заниматься дальнейшей настройкой системы.
Zabbix 2 — мониторим MySQL
Опубликовано: 30.11.2014 | Автор: Николай
Новая версия Zabbix 2, помимо прочих плюшек, умеет легко и красиво мониторить основные параметры MySQL-серверов. Более того, в ней для этого есть стандартный шаблон Template Default MySQL. И как оказалось, настраивается он в пару нажатий.
Итак, на хосте, который надо мониторить, нам понадобится следующее:
1. Выполняем в MySQL запрос вида
GRANT USAGE ON *.* TO ‘zabbix’@’%’ IDENTIFIED BY ‘superpassword’;
2. В zabbix_agentd.conf проверяем подключение дополнительных конфигов и путь к ним:
Include=/etc/zabbix/conf.d/
3. Если при установке агента файл userparameter_mysql.conf не распаковался, создаем его в каталоге из п.2:
UserParameter=mysql.status[*],echo «show global status where Variable_name=’$1′;» | HOME=/var/lib/zabbix mysql -N | awk »
UserParameter=mysql.size[*],echo «select sum ($(case „$3“ in both|»») echo «data_length+index_length»;; data|index) echo «$3_length»;; free) echo «data_free»;; esac)) from information_schema.tables$([[ «$1» = «all» || ! «$1» ]] || echo « where table_schema=’$1’»)$([[ «$2» = «all» || ! «$2″ ]] || echo «and table_name=’$2’»);» | HOME=/var/lib/zabbix mysql -N
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V
4. В этом файле обращаем внимание на переменную HOME=/var/lib/zabbix. Именно в этот каталог надо положить файл .my.cnf со следующим содержанием:
[client]
user = zabbix
password = superpassword
5. Все, теперь осталось подключить шаблон к хосту и наблюдать за цифрами и веселыми картинками.
6.2.2 MySQL
Файл конфигурации misc/conf/zabbix_agentd.conf содержит список пользовательских параметров, которые могут быть использованы для наблюдения за MySQL.
### Set of parameter for monitoring MySQL server (v3.23.42 and later) ### Change -u and add -p if required #UserParameter=mysql[ping],mysqladmin -uroot ping|grep alive|wc -l #UserParameter=mysql[uptime],mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T" #UserParameter=mysql[threads],mysqladmin -uroot status|cut -f3 -d":"|cut -f1 -d"Q" #UserParameter=mysql[questions],mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S" #UserParameter=mysql[slowqueries],mysqladmin -uroot status|cut -f5 -d":"|cut -f1 -d"O" #UserParameter=mysql[qps],mysqladmin -uroot status|cut -f9 d":" #UserParameter=version[mysql],mysql -V
6.2.2.1 mysql[ping]
Проверить в рабочем ли состоянии MySQL
Результат: 0 - не запущен 1 - в рабочем состоянии
6.2.2.2 mysql[uptime]
Количество секунд с момента запуска MySQL
6.2.2.3 mysql[threads]
Количество потоков MySQL
6.2.2.4 mysql[questions]
Количество обрабатываемых запросов
6.2.2.5 mysql[slowqueries]
Количество медленных запросов
6.2.2.6 mysql[qps]
Запросов в секунду
6.2.2.7 mysql[version]
Версия MySQL. Пример: mysql Ver 11.16 Distrib 3.23.49, для pc-linux-gnu (i686)