Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Мониторинг доступности БД / 25 сообщений из 49, страница 1 из 2
18.07.2016, 06:17
    #39275338
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Добрый день
Поставили такую задачу - мониторить доступность БД и на основании мониторинга выдавать отчет о недоступности БД, этот отчет будет связан с другими отчетами по работе процессов программы (всякие импорты, автопроведения документов, автоматическая печать документов и прочее). Как лучше реализовать?
...
Рейтинг: 0 / 0
18.07.2016, 06:27
    #39275339
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Gallemar,

По идее доступность БД определяется возможностью коннекта.
...
Рейтинг: 0 / 0
18.07.2016, 08:38
    #39275362
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Gallemar> Как лучше реализовать?

В каком-то из продуктов ибсургеона это есть.
Ну или самому налабать за 5 минут утилиту,
которая будет держать коннект в течение
нужного промежутка времени, проверять
запросом каждые 10 секунд и сигналить,
если БД/сервер отвалятся.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.07.2016, 12:25
    #39275528
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Gallemar,

http://ib-aid.com/en/ibsurgeon-free-tools/
response checker.
...
Рейтинг: 0 / 0
18.07.2016, 12:33
    #39275536
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
kdv,спасибо, но кроме FB попросили аналогично мониторить весь БД зоопарк
...
Рейтинг: 0 / 0
18.07.2016, 12:34
    #39275537
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Gallemar,

для остального зоопарка должны быть другие решения
...
Рейтинг: 0 / 0
18.07.2016, 12:35
    #39275538
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Gallemarкроме FB попросили аналогично мониторить весь БД зоопарк

Google Firebird nagios plugin
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.07.2016, 12:51
    #39275548
miwaonline
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Gallemarkdv,спасибо, но кроме FB попросили аналогично мониторить весь БД зоопарк
Nagios.
Можно еще Zabbix или Cacti. Но лично я - за Nagios (просто использую его уже кучу лет). Плагин или ищется в гугле или за сравнимое время пишется на python/perl/shell.
...
Рейтинг: 0 / 0
19.09.2016, 11:11
    #39311190
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Вернулся к этому вопросу. Пока проверяю доступность базы таким образом - каждую минуту Планировщиком Windows запускается батник с выполнением скрипта:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
set names WIN1251;
set CLIENTLIB 'fbclient.dll';
connect 'srv-250:D:\Monitoring\FB_log_database.fdb' user 'SYSDBA' password 'masterkey';
execute block
as
declare variable T_avail integer;
begin for execute statement('select 1 from rdb$database')
on external 'srv-250:Supermagdk.fdb'
          with autonomous transaction
          as user 'bujhm' password 'va7953am'
          into :T_avail
 
do 
begin 
insert into DATABASE_AVAILABILITY (avail,time_write)
    values (:T_avail,current_timestamp);
  end
end;
commit;

потом в системе отчетов смотрю сколько было записей за сутки и считаю 60*24 - count(id) - получаю время,когда база недоступна.
Насколько правдивым будет такой отчет?
...
Рейтинг: 0 / 0
19.09.2016, 11:21
    #39311193
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Gallemar,

ИХМО, гораздо интереснее не моменты когда сервак был доступен, а наоборот, когда был не доступен.

З.Ы. Автономка там ни к чему
...
Рейтинг: 0 / 0
19.09.2016, 11:40
    #39311205
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Симонов ДенисGallemar,
ИХМО, гораздо интереснее не моменты когда сервак был доступен, а наоборот, когда был не доступен.
Ты прав. Но с этим не получилось - написал програмку,чтобы раз в минут делала реконнект к БД и в случае неудачи делала соответствующую запись, но данные оказались некорректные,т.к. подключение в случае проблем просто висело долго по времени и в итоге не фиксировалось,что БД в ауте. Может я что-то не понимаю,если можешь подскажи.
...
Рейтинг: 0 / 0
19.09.2016, 12:16
    #39311227
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
GallemarНо с этим не получилось - написал програмку,чтобы раз в минут делала реконнект к БД и в случае неудачи делала соответствующую запись, но данные оказались некорректные,т.к. подключение в случае проблем просто висело долго по времени и в итоге не фиксировалось,что БД в ауте.
Напиши многопоточную программу. Минуту нет коннекта - шлепаешь поток и фиксируешь факт в базе.
...
Рейтинг: 0 / 0
19.09.2016, 13:36
    #39311259
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Gallemarподключение в случае проблем просто висело долго по времени и в итоге не фиксировалось,что БД в ауте.

гм, что? :-)

даже если есть таймаут, а потом ошибка, это все равно ошибка, и вполне резонно, зная время начала последней попытки записать, что вот в такое-то время база была не рабочая.
То есть, если приложение тыкает в базу 1 раз в минуту, то отсутствие записи от "тыке" в очередную минуту - свидетельство проблем.

Надо фиксировать не только "неудачу", а в первую очередь "удачу". А по отсутствии удач, смотреть, что же за неудача произошла.
Например, в IBTM сразу видно, что отсчеты по какой-то причине не велись, и значит, либо не было доступа к серваку, либо база была недоступна, и т.д. А что именно происходило - видно в логе ошибок.
...
Рейтинг: 0 / 0
19.09.2016, 14:11
    #39311272
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Gallemar, почему не использовать keepalive и стандартный метод отлова потери соединения через WSAEVENT?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SOCKET tcpSocket;
...
tcp_keepalive optsKeepAlive;
optsKeepAlive.onoff = 0x0ffff;  // true
optsKeepAlive.keepalivetime = msecKeepAliveTime;
optsKeepAlive.keepaliveinterval = msecKeepAliveInterval;
::setsockopt(tcpSocket, SOL_SOCKET, SO_KEEPALIVE,  (char*)&optsKeepAlive.onoff, sizeof(optsKeepAlive.onoff));
...
Рейтинг: 0 / 0
19.09.2016, 14:22
    #39311279
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
забыл в продолжение:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
if(::WSAIoctl(tcpSocket, SIO_KEEPALIVE_VALS,
              &optsKeepAlive, sizeof(optsKeepAlive), NULL, 0,
              &cntBytesReturned, NULL, NULL))
{
  ::closesocket(tcpSocket);
  WSACloseEvent(evnts);
  exit(1);
}
...
Рейтинг: 0 / 0
19.09.2016, 16:31
    #39311391
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
rdb_devGallemar, почему не использовать keepalive и стандартный метод отлова потери соединения через WSAEVENT?
потому что нормальный робот НЕ ДОЛЖЕН держать постоянное соединение с БД для проверки ее доступности. Он должен коннектиться к ней через регулярные интервалы времени. Коннект-дисконнект, и т.д.

Есть разные глюки, один из глюков (ФБ или системы) может быть "работа существующих соединений и невозможность новых соединений". В этом случае БД (и сервер) считаются НЕДОСТУПНЫМИ.
...
Рейтинг: 0 / 0
19.09.2016, 16:59
    #39311415
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
я бы хотел добавить к постам kdv, что если надо чтобы в БД записывалась информация о том что БД недоступна с ошибкой, а не только инфа о том что доступна, то мониторить её надо с другого компьютера и в БД на другом сервере. Иначе с высокой вероятностью недоступной будет и БД лога.
...
Рейтинг: 0 / 0
19.09.2016, 17:26
    #39311427
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Hello, Симонов Денис!
You wrote on 19 сентября 2016 г. 17:23:33:

Симонов ДенисИначе с высокой вероятностью недоступной будет и БД лога.
логам не место в БД.
для лога абсурден ROLLBACK, INSERT, UPDATE, DELETE.
только APPEND.
в плоский файл.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.09.2016, 18:47
    #39311466
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Мимопроходящий,

я не спорю. Но в этом случае если потребуется анализ, то этот файл лога надо импортировать в БД, что в прочем не сложно
...
Рейтинг: 0 / 0
19.09.2016, 18:57
    #39311472
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Мимопроходящий, ты прав,зема. Только я специально перевел логи в отдельную бд,для статистики удобнее.
...
Рейтинг: 0 / 0
19.09.2016, 19:00
    #39311474
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Hello, Симонов Денис!
You wrote on 19 сентября 2016 г. 18:56:13:

Симонов Денис> если потребуется анализ, то этот файл лога надо импортировать в БД, что в прочем не сложно
все новомодные Big Data выросли именно из этого
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.09.2016, 22:52
    #39312316
Мониторинг доступности БД
GallemarДобрый день
Поставили такую задачу - мониторить доступность БД и на основании мониторинга выдавать отчет о недоступности БД, этот отчет будет связан с другими отчетами по работе процессов программы (всякие импорты, автопроведения документов, автоматическая печать документов и прочее). Как лучше реализовать?Пробуй батник из аттача (делал его когда-то давно для 2.5.х).
Требуется добавить куда-нить в PATH-список утилиту psList из пакета SysInternals.

Пример вывода на консоль:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
20.09.2016 22:45:00.79... Success.
20.09.2016 22:45:03.88... Success.
20.09.2016 22:45:06.98... Success.
20.09.2016 22:45:10.07... Hanged ISQL detected.
20.09.2016 22:45:13.16... Hanged ISQL detected.
20.09.2016 22:45:16.27... Success.
20.09.2016 22:45:19.38... Success.
20.09.2016 22:45:22.49... Success.
20.09.2016 22:45:25.58... ERROR while ISQL worked with database.
20.09.2016 22:45:28.68... ERROR while ISQL worked with database.
20.09.2016 22:45:31.77... ERROR while ISQL worked with database.
20.09.2016 22:45:34.87... ERROR while ISQL worked with database.
20.09.2016 22:45:37.96... Success.
20.09.2016 22:45:41.05... Success.


Пример лога, в котором регистрируются моменты времени ДОСТУПНОСТИ базы:
Код: plaintext
1.
2.
3.
4.
                                2016-09-20 22:26:39.0740

                                2016-09-20 22:26:52.7460

                                2016-09-20 22:27:19.4490


Аналогичный лог для случаев, когда либо ISQL не может приаттачиться к базе (или завершить соединение), либо база недоступна:
Код: plaintext
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.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
20.09.2016 22:27:02.10 Hanged ISQL detected.
-----
isql                820   8   1   30  11952     0:00:00.031     0:00:03.921
-----

20.09.2016 22:27:07.71 Hanged ISQL detected.
-----
isql                820   8   1   30  11952     0:00:00.031     0:00:09.546
-----

22:27:34.96 ERROR while ISQL worked with database.
-----
Statement failed, SQLSTATE = HY000
database e40 shutdown
After line 0 in file check-avail-db_tmp.sql
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
-----

22:27:39.69 ERROR while ISQL worked with database.
-----
Statement failed, SQLSTATE = HY000
database e40 shutdown
After line 0 in file check-avail-db_tmp.sql
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
-----

20.09.2016 22:45:13.16 Hanged ISQL detected.
-----
isql               1932   8   1   30  11952     0:00:00.046     0:00:01.812
-----

20.09.2016 22:45:16.27 Hanged ISQL detected.
-----
isql               1932   8   1   30  11952     0:00:00.046     0:00:04.906
-----

22:45:28.68 ERROR while ISQL worked with database.
-----
Statement failed, SQLSTATE = HY000
database e40 shutdown
After line 0 in file check-avail-db_tmp.sql
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
-----

22:45:31.77 ERROR while ISQL worked with database.
-----
Statement failed, SQLSTATE = HY000
database e40 shutdown
After line 0 in file check-avail-db_tmp.sql
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
-----

22:45:34.87 ERROR while ISQL worked with database.
-----
Statement failed, SQLSTATE = HY000
database e40 shutdown
After line 0 in file check-avail-db_tmp.sql
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
-----

22:45:37.96 ERROR while ISQL worked with database.
-----
Statement failed, SQLSTATE = HY000
database e40 shutdown
After line 0 in file check-avail-db_tmp.sql
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
-----
...
Рейтинг: 0 / 0
20.09.2016, 23:10
    #39312321
Мониторинг доступности БД
Пардон, забыл добавить: еще нужна также утилита 'pskill' для срубания зависшего isql'я.
Батник с проверкой на её наличие (и вызовом при необходимости) - см новый аттач.
...
Рейтинг: 0 / 0
21.09.2016, 04:39
    #39312344
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг доступности БД
Спасибо,Паша. Куда пропал? Я тебе звонил летом пару раз.
...
Рейтинг: 0 / 0
21.09.2016, 09:34
    #39312431
Мониторинг доступности БД
Да тута я, тута... Дел много просто, на форум редко захожу.
А летом, когда ты звонил, я в отпуске был. Помочь бы всё равно не смог, только бабло за роуминг заплатил бы...
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Мониторинг доступности БД / 25 сообщений из 49, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]