@link77

Как написать скрипт на bash для мониторинга postgresql для zabbix?

Добрый день.
Подскажите пожалуйста. Цель: Необходимо создать скрипт под zabbix на баше для мониторинга доступности 10 баз данных соединенных в кластер. Хочу делать так:

#!/bin/bash

#смотрю слушающие порты на сервера командой

RESULT=$( ss -nltp | grep postgres | tr ':' ' ' | awk '{print $5}' | sort -u ) │
echo $RESULT > /etc/zabbix/scripts/postgresql.tmp

Вывод будет таким:
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441

А далее мне нужно, что бы zabbix агент опросил каждую базу данных по этим портам, послал какой то запрос на каждый порт из этого списка , и если ответа нет, zabbixy приходило "-1", а есть есть то "1". Таким образом будет понятно, какая база "лежит". Как я понимаю нужно делать через psql -p port server_data_base
Но как это будет выглядеть на баше?

Подскажите как это реализовать? Уже много чего прочитал, но так и не понял, как:(
  • Вопрос задан
  • 1134 просмотра
Пригласить эксперта
Ответы на вопрос 2
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Зачем городить велосипед? На share.zabbix.com и просторах интернета есть несколько неплохих шаблонов - отчекрыжьте не нужное вам и всё.
Ответ написан
Комментировать
вот пример, тут и цикл есть и запрос в бд, думаю на основе этого ээ художества, сможешь создать свой скрипь.
#!/bin/sh
#скрипт бэкапа баз данных
###########################
#Создаем папку для архивов.  -p не ругается когда папка уже есь test проверяет есть ли папка  для чистых логов
test ! -d /var/backup/mysql/`date +%Y` && { mkdir -p /var/backup/mysql/`date +%Y` ; }
test ! -d /var/backup/mysql/last && { mkdir -p /var/backup/mysql/last ; }

#прячем от умных, и так не зайдут но всеже.
chmod 600 /var/backup/mysql
chmod 600 /var/backup/mysql/last

# делаем сам дапм файлов sql, свежинькие файлы лежат всегда в ней, очень удобно не нужно заходить в архивы и искать там вчерашние базы, и логируется.
for i in `mysql -uroot -ppass -e'show databases;' | grep -v information_schema | grep -v Database`; do mysqldump -uroot -ppass $i > /var/backup/mysql/last/$i.sql;done >> /dev/null 2>> /var/log/sqlbackup.log
# Архивируем дамп, ну и логируем разумеется
cd /var/backup/mysql/
tar -czvf /var/backup/mysql/`date +%Y`/sqldump-`date +%Y-%m-%u`.tar.gz ./last >> /dev/null > /var/log/sqlbackup.log
#(echo "Subject: Бэкап mysql  klondike-server завершен"; cat /var/log/sqlbackup.log;) | /usr/sbin/sendmail  viktor@7877796.ru
##################  Конец скрипта
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы