1.Общее описание, структурная схема и жизненный цикл тестирования Yandex.Tank 2.Базовая пред подготовка сервера с Yandex.Tank 3.Установка Yandex.Tank 4.Создание профиля тестирования/сценария нагрузки для Yandex.Tank 1.Общее описание, структурная схема и жизненный цикл тестирования Yandex.Tank Яндекс.Танк — инструмент для проведения нагрузочного тестирования, разрабатываемый в компании Яндекс и распространяемый под лицензией LGPL. В основе инструмента лежит высокопроизводительный асинхронный […]
Архивы рубрики ‘Centos’
Мониторинг MongoDB в Zabbix
1.Получение Mongo-статистики
1 |
# mongostat --all --noheaders --humanReadable=false -n 1 |
1 |
*0 *0 *0 *0 0 2|0 0.1 49.3 0 3448766464 1941962752 0|0 1|0 158 61275 20 rs0 SEC 2018-08-29T12:01:50+01:00 |
Если используется аутентификация в Mongo, то выполняем команду
1 |
# mongostat -u "mysuperuser" -p "mysuperpassword" --authenticationDatabase "admin" --all --noheaders --humanReadable=false -n 1 |
Где пользователь mysuperuser с паролем mysuperpassword должен иметь право выполнять команду serverStatus Встроенная роль clusterMonitor включает в себя в том числе право на выполнение команды serverStatus https://docs.mongodb.com/manual/reference/privilege-actions/#serverStatus https://docs.mongodb.com/manual/reference/built-in-roles/#clusterMonitor Для просмотра полей вывода команды mongostat и человекоудобном формате выполните команду
1 |
# mongostat --all -n 1 |
2. […]
Мониторинг RabbitMQ в Zabbix
Мониторинг очередей, сообщений в очередях и серверных показателей(файловых дескрипторов, памяти, количества сокетов, дискового пространства) с помощью шаблона и скриптов https://github.com/jasonmcintosh/rabbitmq-zabbix.git Используется API для RabbitMQ, который становится доступным после установки RabbitMQ-плагина Включаем плагин для WEB-интерфейса
1 |
# rabbitmq-plugins enable rabbitmq_management |
После чего WEB-интерфейс RabbitMQ доступен по адресу http://RabbitmQ-server:15672 1.Склонируем репозитарий, зайдем внутрь репозитария, скопируем рекурсивно каталог scripts/rabbitmq в /etc/zabbix/scripts/, скопируем […]
Установка CSF на LXC-контейнер с Centos6. Обновление iptables
После установки CSF (ConfigServer Security & Firewall) на Centos6, запущенном в LXC-контейнере на ноде под ProxMox(Debian9) проверка наличия требуемых модулей Iptables для корректной работы CSF не проходит успешно В результате такой проверки отсутствуют некоторые модули,при этом на ноде,на которой размещен LXC-контейнер, эти модули присутствуют(загружены) Установка CSF Более полная версия с необходимы пакетами доступна здесь https://kamaok.org.ua/?p=800 […]
Оптимизация производительности Zabbix
Zabbix — это платформа, которая в основном состоит из трех компонентов: 1.Сервера Zabbix 2.Базы данных Zabbix 3.Графического интерфейса Zabbix Также рассмотрим несколько других способов оптимизации производительности Zabbix 4.Оптимизация операционной системы 5. Мониторинг состояния Zabbix 1.Оптимизация Zabbix-сервера 1.Использование активных Zabbix-agent проверок вместо пассивных Zabbix-agent проверок (уменьшает нагрузку на Zabbix-сервер и количество TCP-соединений) При этом […]
Мониторинг NTP в Zabbix
1.Получение информации с NTP-службы
1 |
# ntpq -pn 127.0.0.1 |
1 2 3 4 5 6 |
remote refid st t when poll reach delay offset jitter ============================================================================== +176.221.42.125 37.120.191.245 3 u 806 1024 377 8.638 -1.089 0.978 +144.76.19.215 122.227.206.195 3 u 427 1024 377 0.685 -0.124 0.422 5.9.118.105 193.79.237.14 2 u 37d 1024 0 0.434 -31.270 0.000 *138.201.16.225 131.188.3.221 2 u 130 1024 377 0.314 -1.047 0.611 |
2.Настройка скрипта на Zabbix-агенте Выполнить скрипт
1 |
# nano ntp-prepare.sh |
1 2 3 4 5 6 7 8 9 |
#!/bin/bash [ -d /etc/zabbix/scripts ] || mkdir /etc/zabbix/scripts/ chown root:zabbix -R /etc/zabbix/scripts/ chmod 750 /etc/zabbix/scripts/ [ -f /etc/zabbix/scripts/ntp.sh ] || touch /etc/zabbix/scripts/ntp.sh chown root:zabbix /etc/zabbix/scripts/ntp.sh chmod 550 /etc/zabbix/scripts/ntp.sh |
Создание скрипта для снятия NTP-статистики
1 |
# nano /etc/zabbix/scripts/ntp.sh |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
#!/bin/bash VERSION="1.0" function usage() { echo "ntpcheck version: $VERSION" echo "usage:" echo " $0 jitter - Check ntp jitter delay" echo " $0 offset - Check ntp offset" echo " $0 delay - Check ntp delay" } ######## # Main # ######## if [[ $# != 1 ]];then #No Parameter usage exit 0 fi case "$1" in 'jitter') value=`ntpq -pn 127.0.0.1 | /usr/bin/awk 'BEGIN { jitter=0 } $1 ~/\*/ { jitter=$10 } END { print jitter }'` rval=$?;; 'offset') value=`ntpq -pn 127.0.0.1 | /usr/bin/awk 'BEGIN { offset=0 } $1 ~/\*/ { offset=$9 } END { print offset }'` rval=$?;; 'delay') value=`ntpq -pn 127.0.0.1 | /usr/bin/awk 'BEGIN { delay=0 } $1 ~/\*/ { delay=$8 } END { print delay }'` rval=$?;; 'health') primary=`ntpq -pn 127.0.0.1 | grep ^\* |grep -v grep | wc -l` rval=$? if [ "${primary}" -eq "1" ] ; then value="1" else value="0" fi ;; *) usage exit 1;; esac if [ "$rval" -eq 0 -a -z "$value" ]; then rval=1 fi if [ "$rval" -ne 0 ]; then echo "ZBX_NOTSUPPORTED" fi echo $value |
3.Настройка Zabbix-агента
1 |
# nano /etc/zabbix/zabbix_agentd.d/userparameter_ntp.conf |
1 2 |
# NTP monitoring UserParameter=ntp[*],/etc/zabbix/scripts/ntp.sh $1 |
Перезапуск Zabbix-агента # Ubuntu14
1 |
# service zabbix-agent restart |
#Ubuntu16
1 |
# systemctl restart zabbix-agent |
Проверка получений NTP-метрик локально с Zabbix-клиента
1 |
# sudo -u zabbix /etc/zabbix/scripts/ntp.sh delay |
1 |
8.384 |
1 |
# zabbix_get -s 127.0.0.1 -k ntp[delay] |
1 |
8.384 |
С Zabbix-сервера
1 |
# zabbix_get -s ip-address-zabbix-client -k ntp[delay] |
1 |
8.384 |
4.Настройка Zabbix-сервера Скачиваем,распаковываем и импортируем […]
Мониторинг Redis в Zabbix
1.Получение Redis-статистики Если используем подключение к порту
1 |
# redis-cli info |
Если используем подключение к Unix-сокету
1 |
# redis-cli -s /path/to/socke/file |
2. Настройка скрипта на Zabbix-агенте Выполнить скрипт
1 |
# nano redis-prepare.sh |
1 2 3 4 5 6 7 8 9 |
#!/bin/bash [ -d /etc/zabbix/scripts ] || mkdir /etc/zabbix/scripts/ chown root:zabbix -R /etc/zabbix/scripts/ chmod 750 /etc/zabbix/scripts/ [ -f /etc/zabbix/scripts/redis.sh ] || touch /etc/zabbix/scripts/redis.sh chown root:zabbix /etc/zabbix/scripts/redis.sh chmod 550 /etc/zabbix/scripts/redis.sh |
Создание скрипта для проверки Redis-параметров
1 |
# nano /etc/zabbix/scripts/redis.sh |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
#!/bin/bash ##### Help ##### help () { echo "Usage: $0 redis_metric" echo "For example: $0 rejected_connections" } ##### OPTIONS VERIFICATION ##### if [[ -z "$1" ]]; then help exit 1 fi ##### PARAMETERS ##### HOSTNAME=$(hostname -f) AWK=$(which awk) GREP=$(which grep) METRIC="$1" REDIS_CLI=$(which redis-cli) # To use Unix-socket instead of port # REDIS_CLI= "$(which redis-cli) -s /path/to/socket/file" CACHE_TTL="55" CACHE_FILE="/tmp/zabbix.redis.`echo $HOSTNAME | md5sum | cut -d" " -f1`.cache" EXEC_TIMEOUT="1" NOW_TIME=`date '+%s'` ##### RUN ##### 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=`${REDIS_CLI} info 2>&1` echo "${DATACACHE}" > "${CACHE_FILE}" # !!! chmod 640 "${CACHE_FILE}" fi case ${METRIC} in rejected_connections|expired_keys|evicted_keys|keyspace_hits|keyspace_misses|connected_clients|blocked_clients|rdb_last_bgsave_status|total_connections_received|total_commands_processed|used_cpu_sys|used_cpu_user) $GREP -w ${METRIC} "${CACHE_FILE}" | $AWK -F: '{print $2}' ;; total_net_input_bytes|total_net_output_bytes) $GREP -w ${METRIC} "${CACHE_FILE}" | $AWK -F: 'x=$2 {print x/1024/1024}' ;; used_memory_rss|used_memory_peak|used_memory_overhead|used_memory_startup|used_memory_dataset|used_memory_lua|used_memory|maxmemory) $GREP -w ${METRIC} "${CACHE_FILE}" | $AWK -F: 'x=$2 {print x/1024/1024}' ;; *) help ;; esac exit 0 |
3.Настройка Zabbix-агента
1 |
# nano /etc/zabbix/zabbix_agentd.d/userparameter_redis.conf |
1 2 |
# Redis monitoring UserParameter=redis[*],/etc/zabbix/scripts/redis.sh "$1" |
Перезапуск Zabbix-агента
1 2 |
# Ubuntu14 # service zabbix-agent restart |
1 2 |
# Ubuntu16 # systemctl restart zabbix-agent |
Проверка получение Redis-метрики локально с Zabbix-агента
1 |
# sudo -u zabbix /etc/zabbix/scripts/redis.sh used_memory |
1 |
0.439476 |
1 |
# zabbix_get -s 127.0.0.1 -k "redis[used_memory]" |
1 |
0.439476 |
С Zabbix-сервера
1 |
# zabbix_get -s server1.mydomain.com -k "redis[used_memory]" |
1 |
0.439476 |
[…]
Настройка бекапа cайтов по FTP-подключению
1.Настройка бекапа удаленных сайтов по FTP через монтирование удаленных сайтов с помощью curlftpfs и дальнейшего выполнения rsync/tar на удаленный/локальный сервер Загружаем необходимый модуль ядра fuse и добавляем его загрузку в автозагрузку
1 |
# modprobe fuse |
Debian/Ubuntu
1 |
# nano /etc/modules |
1 |
fuse |
Установка curlftpfs
1 |
# apt-get install curlftpfs |
Логины/пароли для подключения к сайтам сохраним в отдельный файл, чтобы они не отображались в командной строке при […]
Мониторинг лог-файлов в Zabbix
Необходимо мониторить выполнение бекапа, а именно 1. Проверять,что бекап запускается согласно расписанию раз в сутки 2. В логе выполнения бекапа отсутствует слово failed, которое добавляется в лог в случае не успешного выполнения какого-либо из этапов бекапа Для реализации этой задачи создадим шаблон,который будет применять к хостам, на которых нужно мониторить выполнение бекапа. Если таких хостов […]