LINUX.ORG.RU

Сообщения Bash_Boy

 

logrotate, как заставить НЕ ротировать уже сжатые файлы?

Форум — Admin

Добрый день. Есть у меня настроенная ротация папки с логами. Конфиг выглядит вот так:

/storage/logs/catalog/logs/* {
        daily
        rotate 30
        maxage 30
        dateext
        compress
        delaycompress
        missingok
        notifempty
        postrotate
            find /storage/logs/catalog/logs -type f -mtime +2 -exec bzip2 {} \;
            find /storage/logs/catalog/logs -type f -mtime +31 -exec rm -rf {} \;
            find /storage/logs/catalog/logs -type f -empty -exec rm -rf {} \;
        endscript
}

Почему даже после сжатия файлы, в этой папке, постоянно ротируются? Вот пример:

catalina.out-20200121.bz2-20200129.bz2-20200131.bz2

 ,

Bash_Boy
()

Zabbix, предобработка + регулярные выражения

Форум — Admin

Добрый день! Вопрос к специалистам по системе мониторинга zabbix. У меня есть некий скрипт на одном сервере, который собирает статистику. Статистика довольно простая - количество подключений к серверам. Этот скрипт возвращает забиксу данные следующего вида:

"сервер1 72

сервер2 0

сервер3 25"

и т.д. Заббикс, всё это дело принимает в общий айтем и потом через зависимые айтемы передают на дашборд после предобработки. Предобработка, в зависимых айтемах выглядит следующим образом: Тип:«регулярное выражение» Параметры: «сервер1\s([0-9]+)» Вывод: «\1». т.е. на дашборд приходят только цифровые значения получаемых данных. Тут вопросов нет, всё работает как нужно. Но вот бывают ситуации, когда, например, какой-либо сервер недоступен, ну перегружается или просто выключен, тогда скрипт передаёт следующее: «сервер1 ОШИБКА: 23» И по коду ошибки мы понимаем, что с ним происходит. И вот тут начинаются проблемы с zabbix, он не может отобразить данную ошибку на дашборде, потому как зависимые айтемы имеют тип информации «Numeric (unsigned)», можно было бы в скрипте убрать «ОШИБКА:» и тогда будет всё работать, но мы не будем понимать - это сейчас 23 пользователя на сервере или ошибка №23. Есть мысль обойти эту проблему путём преобразования значений, но тогда нужно использовать второе регулярное выражение. Я создал вот такое выражение: Тип:«регулярное выражение» Параметры: «сервер1\s([A-Z:]+)\s([0-9]+)» Вывод: «666666» В преобразовании, я задал, что коду «666666» (такого количества подключений быть не может) соответствует «ОШИБКА: 23». Выражение работает отлично, дашборд всё показывает, но только если это выражение в единственном экземпляре. Если вставить оба выражения, то при тестировании в пошаговом режиме, выполняется только первый шаг, будь там число или ошибка, просто при ошибке выражение фейлится и на второе не переходит. Как заставить проверять оба выражения? Ну или может вообще какое-то другое решение подскажете…

 

Bash_Boy
()

И снова sudoers

Форум — Admin

Добрый день.

Есть у меня 2 машинки, обе на CentOS 7. Причём машинка №1 (далее М1) - была установлена, как положено с официального DVD. Машинка №2 (далее М2), была просто клонирована (as is). После этого на М2 был сменён сетевой адрес и имя, чтобы они могли работать в одной сети. Никаких других изменений, между ними, нет.

М2 используется для предварительного тестирования того, что будет, в последствии, применяться на М1. В ходе эксперимента на М2 были произведены следующие модификации:

  1. в /etc/zabbix/zabbix_agentd.conf, был добавлен параметр «UserParameter=balancer_check[*],sudo -u root netstat -nap | grep ESTABLISHED | grep 443 | wc -l»;
  2. в /etc/sudoers, был добавлен параметр «zabbix ALL=(ALL) NOPASSWD:/bin/netstat». Тест прошёл успешно. Данные приходят.

После успешного завершения эксперимента, всё тоже самое было проведено на М1, в результате на дашборд приходят следующие данные «sh: /usr/bin/sudo: Permission denied». В чём может быть затык? Проверял без «sudo -u root», данные приходят верные, но с пометкой «(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) 266» Спасибо.

 ,

Bash_Boy
()

Zabbix, хочу свистелок и перделок)

Форум — Admin

Всем привет! Уважаемые знатоки), подскажите по Zabbix, есть ли возможность редактировать почтовые сообщения, чтобы они не были такими унылыми? Мне бы хотелось менять шрифты, размеры, цвета и т.д. и т.п.. Я так и не нашёл ничего подобного ни в самом Zabbix, ни в интернетах.

 

Bash_Boy
()

bash, поиск в файле и дальнейшее сравнение

Форум — Admin

Здравствуйте!
Коллеги и не очень), я в замешательстве. Есть вот такой вот скрипт:

echo stat | nc localhost 2320 > output.txt
SIP="10.21.5.25"
FIND=`grep ${SIP} output.txt`
ALARM="\033[1;31m"
OK="\033[0;32m"
NORMAL="\033[0m"
res(){
        while read response; do
                echo
                case $response in
                        y|Y)
                                echo "Continue the script..."
                                break
                                ;;
                        n|N)
                                echo "Script closed. Exit."
                                exit 0
                                ;;
                        *)
                                echo "Please, enter (y/n)!"
                esac
        done
}
echo "This is SIP: ${SIP}"
echo "This is FIND: ${FIND}"
if [ ${FIND} != ${SIP} ] 2>/dev/null
then
        echo -e "${ALARM}ERROR! Server $SIP not connecting. Please chek it manually.${NORMAL}"
        echo "Want to continue running the script (y/n)?"
        res
else
        echo -e "${OK}Server ${SIP} is connected.${NORMAL}"
fi
echo "Done"

Он работает, хотя непонятно почему, ведь если в переменной "FIND" будет "пусто", то возникнет ошибка в условии сравнения
(на сколько мне известно поправьте, если это не так), но скрипт отрабатывает без ошибок.
Есть второй скрипт (целиком приводить не буду, очень большой), в который входит первый скрипт (см. выше),
в адаптированном варианте, вот его кусок:
log "Checking Server: Name: $AI1 IP: $AI1IP"
echo "$AI1 Zookeeper: "$AI1GR""
# Checking the presence of server ${AI1} ih the list ${ZCFILE}
if [ ${AI1GR} != ${AI1IP} ]; # 2>/dev/null
# If not there ask user what to do
then
        echo -e "${ALARM}ERROR! Server ${AI1} not connecting. Please chek it manually.${NORMAL}"
        echo "Want to continue running the script (y/n)?"
                # Checking response
                res
# If the server in the list continues the script
else
        echo -e "${OK}Server ${AI1} is connected.${NORMAL}"
        log "AI-Siebel Server is now start on ${AI1}."
fi
echo ""

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

 , ,

Bash_Boy
()

RSS подписка на новые темы