MegaRAID Patrol read MegaRAID Patrol read periodically verifies all sectors(including system reserved area) of drives including hot spare connected to a controller. The goal is to protect data integrity by detecting drive failure before the failure can damage data. The corrective actions depend on the drive group configuration and the type of errors. Patrol read […]
Архивы за месяц Октябрь, 2017
Усиление безопасности WordPress с помощью .htaccess
Как правило, изменения необходимо вносить в корневой файл .htaccces за исключением случаев, когда необходимо защитить отдельные каталоги(например, wp-content/uploads) По умолчанию корневой .htaccess в WordPress имеет вид
1 2 3 4 5 6 7 8 9 10 |
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress |
Между строками, указанными ниже, никаких изменений не вносим # BEGIN WordPress # END WordPress Например, все строки будем добавлять после строки # END WordPress 1.Запрет доступа к […]
Мониторинг 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 |
[…]
Настройка Redis
Настройка основного конфигурационного файла Redis — redis.conf (его расположение на файловой системе зависит от дистрибутива и способа установки) 1.Увеличиваем количество входящих соединений Прроверяем текущее значение
1 |
# cat /proc/sys/net/core/somaxconn |
1 |
128 |
1 |
# nano /etc/redis.conf |
1 |
tcp-backlog 511 |
Выставим somaxconn больше,чем tcp-backlog
1 |
# sysctl -w net.core.somaxconn=1024 |
Для автозагрузки используем
1 |
# nano /etc/sysctl.conf |
1 |
net.core.somaxconn=1024 |
2.Настройка переменной ядра для работы с памятью vm.overcommit_memory Определяет условия разрешения и отказа запросов […]
Использование AWK. Полезные команды AWK
Описание AWK было взято из книги Linux.Администрирование и системное проrраммирование 2-е издание. Марк Г.Собель AWK является языком сканирования и обработки данных с помощью шаблонов, позволяющим вести поиск записей (в качестве которых обычно выступают строки), соответствующих указанным шаблонам, в одном или нескольких файлах. При обработке строк выполняются такие действия, как запись строк в стандартный вывод или […]