-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
161 lines (125 loc) · 10.6 KB
/
README
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
Система слежения за работоспособностью различных компонентов системы
(мониторинга) и "горячего" реагирования на внештатные ситуации.
http://www.opennet.ru/dev/alertmon/
По всем вопросам следует обращаться к автору: Maxim Chirkov <[email protected]>
---------------------------------------------------------------------------
Комплект поставки:
Для обслуживаемых серверов:
topmon.pl - основной скрипт мониторинга, запускается периодически
через cron.
topmon.conf - пример файла конфигурации с детальным описанием
поддерживаемых настроек и параметров конфигурации.
Доп. примеры см. в директории examples.
snmp_export.pl - скрипт для вызова из snmpd, для экспорта информации
о текущих алертах на центральный сервер мониторинга
на работает web-интерфес контроля за состоянием
обслуживаемых серверов и построения графиков.
plugins/ - модули расширения, см. README.plugins.
add-ons/ - разные полезные мелочи, скрипт для преобразования
файлов конфигурации от alertmon2, чистки директорий с
логами и т.д.
install.pl - скрипт для установки (можно просто все скопировать
в /usr/local/alertmon).
Для сервера мониторинга (web-интерфейс и сводная инфорация по всем системам):
Cодержимое директории servermon/
snmp_lookup.pl - скрипт для размещения на центральном сервере мониторинга,
для опроса всех машин на которых выполняется snmp_export.pl
и синхронизации данных о текущих алертах в локальном
хранилище. Запускается через cron.
servermon.conf - конфигурационный файл в котором представлен список
машин в сети мониторинга и некоторые параметры по
умолчанию.
create_graph.pl - скипт для прорисовки графиков из командной строки
(устарел, заменен на create_one.cgi)
Cодержимое директории servermon/cgi-bin
show_alerts.cgi - Индексный CGI-скрипт с основным интерфесом мониторнига;
create_one.cgi - CGI-скрипт для рисования одного графика;
show_graph.cgi - CGI-скрипт для вывода групп графиков;
templates/ - директория с темплейтами, определяющими внешний вид
системы мониторинга.
---------------------------------------------------------------------------
Назначение:
При администрировании группы разнесенных по сети UNIX серверов возникает
потребность в небольшой программе мониторинга, от которой требуется
определять внештатные ситуации, сообщать о них администратору, вести лог
возникающих проблем и автоматически пытаться восстановить нормальный
режим работы. Так же желательно на каждом из этих серверов осуществлять
функции слежения за работой "соседей", при нарушении функционирования
которых начинать бить тревогу, на случай если "сосед" окажется не в
состоянии самостоятельно дать знать о себе. Таким образом строится
распределенная система мониторинга, отличающаяся от централизованной
большей оперативностью, точностью и надежностью.
Именно для выполнения этих задач и была написана данная программа.
---------------------------------------------------------------------------
Выполняемые функции:
- Выявление аномалий работы системы через графики с динамикой изменения
различных зарактеристик системы (графики как общие/суммарные, так и
детальные/частные).
- Расследования причин сбоев в работе программного обеспечения (например,
перегрузка из-за флуда) путем анализа детальных дампов состояния системы.
- Посылка уведомления об обнаруженных проблемах на email (пейджер) или
слежение посредством web-интерфейса.
- Контроль работоспособности процессов в системе, с возможностью перезапуска
упавшего процесса.
- Контроль превышения максимально допустимого числа процессов.
- Контроль наличия свободного дискового пространства.
- Контроль работы DNS серверов.
- Контроль достижимости хостов (tcp, udp, icmp).
- Проверка работоспособности сетевых сервисов (pop3, smtp, http, ftp и т.д.).
- Вызов внешних скриптов проверки (например, контролируется Load Average,
целостность рутинга, работоспособность gated, активность интерфейсов,
число сетевых соединений и т.д.).
- Несколько установленных на разных машинах alertmon'ов образуют
распределенную систему мониторинга с возможностью централизованного
наблюдения за состоянием каждой машины.
---------------------------------------------------------------------------
Установка:
Для установки скопируйте alertmon.pl в любое место по Вашему усмотрению
(рекомендую /etc), отредактируйте параметры конфигурации в скрипте
Для работы alertmon.pl необходимо установить модули Net::DNS и Net::Ping,
если они отсутствуют.
Обеспечьте периодическое выполнение скрипта посредством программы cron:
# crontab -e
*/5 * * * * /etc/alertmon.pl
Если необходимо задействовать не только функции мониторинга, но
восстановления нормального функционирования (например, перезапустить gated
при его "зависании"), то скрипт должен выполняться с правами root
пользователя (uid 0).
Для осуществления слежения за состоянием контролируемого объекта -
следует установить cgi скрипт alertview.cgi в cgi-bin директорию вашего
web сервера, предварительно отредактировав параметры конфигурации внутри
этого файла и ограничить доступ к этому скрипту посредством настроек
.htaccess:
AuthType Basic
AuthName Monitoring
AuthUserFile <путь к файлу с паролем, создается с помощью программы htpasswd>
require valid-user
Например:
cd /usr/local/apache/cgi-bin
mkdir alert
cd alert
cp ~/src/alert/alertview.cgi /usr/local/apache/cgi-bin/alert/alertview.cgi
vi alertview.cgi
cat > .htaccess
AuthType Basic
AuthName Monitoring
AuthUserFile /usr/local/apache/.passwd
require valid-user
^D
/usr/local/apache/bin/htpasswd -c /usr/local/apache/.passwd username
Для централизованного наблюдения за несколькими хостами с установленным
alertmon (сетью мониторов) необходимо скопировать с cgi-bin директорию
скрипт alertsum.cgi, предварительно описав хосты где установлен монитор
внутри этого скрипта.
---------------------------------------------------------------------------
Интеграция с NetSaint:
Изменяем параметры настройки (описываем все хосты на которых запущен alertmon)
в файле for_netsaint/check_alert.sh.
Копируем for_netsaint/check_alert.sh в libexec (где лежат plugin'ы)
директорию NetSaint'а.
В файле конфигурации NetSaint commands.cfg добавляем строку вида:
command[check_alert]=/usr/local/netsaint/libexec/check_alert.sh $ARG1$
В файле hosts.cfg, для каждого хоста на котором функционирует alertmon
прописываем:
service[some-host]=Alert mon;0;24x7;5;10;1;admins;120;24x7;0;1;0;;check_alert!# service[hook-host]=Alert mon;0;24x7;5;10;1;admins;120;24x7;0;1;0;;check_alert!name
где "name" - имя хоста описанное внутри for_netsaint/check_alert.sh.