Придумал и набросал пару строк для резервного копирования mysql базы данных и директории с http файлами.
Читать далее «Резервное копирование Zabbix»Архивы рубрик:Zabbix
Установка и настройка Zabbix агента в Ubuntu
В Ubuntu/Debian Zabbix агент устанавливается довольно легко.
Изначально достаточно ввести команду установки:
Как увеличить число последних событий в панели Zabbix
Заметил что в панели Zabbix отображается максимум 20 последних событий, а остальные необходимо смотреть в группах узлов сети.
Читать далее «Как увеличить число последних событий в панели Zabbix»Решение ошибки запуска Zabbix сервера и агента
Столкнулся со следующими ошибками запуска zabbix-server и zabbix-agent в Ubuntu:
service zabbix-server start start: Rejected send message, 1 matched rules; type="method_call", sender=":1.55" (uid=1000 pid=30492 comm="start zabbix-server ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")
service zabbix-agent start start: Rejected send message, 1 matched rules; type="method_call", sender=":1.51" (uid=1000 pid=30423 comm="start zabbix-agent ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")
Решается данная ошибка выполнением команд от имени root:
sudo service zabbix-server start
sudo service zabbix-agent start
Все.
SQL запросы для Zabbix
Напишу несколько полезных примеров sql запросов для базы данных Zabbix:
Поиск хоста по имени:
SELECT * FROM hosts WHERE host like '%name%'; SELECT * FROM hosts WHERE name like '%name%';
Поиск элементов данных указанного хоста:
SELECT * FROM items WHERE hostid = '10105';
Поиск истории значений для указанного элемента данных:
SELECT * FROM history WHERE itemid = '24526';
Удалим всю историю элемента данных до 01.11.2014 (время указано в Unix формате, конвертеры можно найти через поисковик):
DELETE FROM history WHERE itemid = '24526' AND clock < '1414800000';
Удаление всей истории данных до 01.11.2014:
DELETE FROM history WHERE clock < '1414800000';
Массово менял интервал и динамику изменений в элементы данных шаблонов и хостов я следующими запросами (первый определяет ID шаблона или хоста, второй изменяет интервалы):
SELECT * FROM `hosts` WHERE host="Template ICMP Ping"; UPDATE items SET delay=3600 WHERE hostid=10105 AND delay=600; UPDATE items SET trends=180 WHERE hostid=10047 AND trends=365;
Настройка низкоуровневого обнаружения в Zabbix
Низкоуровневое обнаружение позволяет автоматически создавать элементы данных, триггеры, графики.
Массово его лучше не использовать, так как на практике заметил что оно дает значительную нагрузку на систему.
Приведу пример настройки обнаружения для просмотра загрузки портов управляемого коммутатора.
Для начала открываем «Настройка» — «Шаблоны«, создаем новый шаблон или напротив готового нажимаем «Обнаружение«.
Нажимаем «Создать правило» и заполняем основные параметры:
Установка и настройка Zabbix агента в Windows
Для начала скачиваем архив с последней версией Zabbix агента под Windows с официального сайта https://www.zabbix.com/ru/download_agents
Читать далее «Установка и настройка Zabbix агента в Windows»Решение проблемы Zabbix «icmp pinger processes more than 75% busy»
Сообщение «Zabbix icmp pinger processes more than 75% busy» означает что процесс или процессы выполняющие пинг хостов перегружены.
Для решения этой проблемы необходимо открыть конфигурационный файл zabbix сервера, например через редактор nano:
sudo nano /etc/zabbix/zabbix_server.conf
Далее найти в нем параметр StartPingers, если он равен 1 и закомментирован, то можно увеличить его например на 5 и раскомментировать (убрать перед ним символ #).
Этим мы увеличиваем количество процессов выполняющих ICMP Ping, соответственно нагрузка будет распределена и уменьшена.
Для сохранения изменений в редакторе nano используется комбинация клавиш Ctrl+O, потом Enter. Для выхода Ctrl+X.
После манипуляций необходимо выполнить перезагрузку Zabbix сервера командой:
service zabbix-server restart
Также нагрузку можно снизить увеличив «Интервал обновления» в параметрах шаблона. Для этого необходимо зайти в Web интерфейс Zabbix под администратором и нажать Настройка — Шаблоны, на необходимом шаблоне выбрать «Элементы данных», открыть элемент данных выполняющий пинг и найти «Интервал обновления (в сек)«. Значения 180 (это три минуты) или большего думаю вполне достаточно.
Решение ошибки с Detect operating system в Zabbix
Стандартно скрипт «Detect operating system» не работает в Zabbix, при попытке его выполнить появляется ошибка «sudo: no tty present and no askpass program specified» поэтому для его работы необходимо сделать несколько действий.
Первое — это установить nmap:
apt-get install sudo nmap
Второе — разрешить пользователю Zabbix запускать nmap, для этого откроем файл /etc/sudoers в любом редакторе, например nano:
sudo nano /etc/sudoers
и допишем в него следующую строку:
zabbix ALL=(root) NOPASSWD: /usr/bin/nmap
либо можно не открывать в редакторе, а выполнить команду:
sudo echo "zabbix ALL=(root) NOPASSWD: /usr/bin/nmap" >> /etc/sudoers
После данных манипуляций скрипт должен работать, определять операционную систему, показывать список открытых портов и т.д.
Мониторинг параметров MySQL в Zabbix
Создадим директорию для скриптов:
sudo mkdir /etc/zabbix/scripts/
sudo chown root:zabbix -R /etc/zabbix/scripts/
sudo chmod 750 /etc/zabbix/scripts/
Сам скрипт для мониторинга параметров MySQL:
#!/bin/bash ##### OPTIONS VERIFICATION ##### if [[ -z "$1" || -z "$2" ]]; then exit 1 fi ##### PARAMETERS ##### RESERVED="$1" METRIC="$2" USER="${3:-user}" PASS="${4:-pass}" # MYSQLADMIN="/usr/bin/mysqladmin" MYSQL="/usr/bin/mysql" CACHE_TTL="55" CACHE_FILE="/tmp/zabbix.mysql-stats.cache" EXEC_TIMEOUT="1" NOW_TIME=`date '+%s'` ##### RUN ##### if [ "${METRIC}" = "alive" ]; then ${MYSQLADMIN} -u${USER} -p${PASS} ping | grep alive | wc -l | head -n1 exit 0 fi if [ "${METRIC}" = "version" ]; then ${MYSQL} -V | sed -e 's/^.*\(ver.*\)$/\1/gI' | head -n1 exit 0 fi # if [ -s "${CACHE_FILE}" ]; then CACHE_TIME=`stat -c"%Y" "${CACHE_FILE}"` else CACHE_TIME=0 fi DELTA_TIME=$((${NOW_TIME} - ${CACHE_TIME})) # if [ ${DELTA_TIME} -lt ${EXEC_TIMEOUT} ]; then sleep $((${EXEC_TIMEOUT} - ${DELTA_TIME})) elif [ ${DELTA_TIME} -gt ${CACHE_TTL} ]; then echo "" >> "${CACHE_FILE}" # !!! DATACACHE=`${MYSQLADMIN} -u${USER} -p${PASS} extended-status 2>&1` echo "${DATACACHE}" > "${CACHE_FILE}" # !!! chmod 640 "${CACHE_FILE}" fi # cat "${CACHE_FILE}" | grep -iw "$METRIC" | cut -d'|' -f3 | head -n1 # exit 0
Установим скрипту владельца и права:
sudo chown root:zabbix /etc/zabbix/scripts/mysql-stats.sh
sudo chmod 550 /etc/zabbix/scripts/mysql-stats.sh
Проверка работы скрипта:
sudo -u zabbix /etc/zabbix/scripts/mysql-stats.sh none questions ИМЯ ПАРОЛЬ
Просмотр списка возможных параметров по которым можно просматривать статистику:
mysqladmin -uroot -p extended-status
Добавляем указанную ниже строку в конфигурационный файл zabbix-агента /etc/zabbix/zabbix_agentd.conf:
UserParameter=mysql-stats[*],/etc/zabbix/scripts/mysql-stats.sh "none" "$1" [USER] [PASSWORD]
Перезапуск zabbix агента чтобы изменения вступили в силу:
/etc/init.d/zabbix-agent restart
Проверка:
sudo zabbix_get -k 'mysql-stats[questions]' -s 127.0.0.1