Назад Оглавление Далее

Описание программного обеспечения


Оглавление

Введение

Описание базы данных CFM

В процессе установки CFM создаются три базы данных:

База данных cfm_cfg

Конфигурация сетевых устройств для snmp мониторинга хранится в таблицах DEVCFG и SNMPCFG.

Таблица DEVCFG
    DEVNAME	char(25)	PRIMARY KEY,
    IPADDR	char(15)	NOT NULL,
    COMMUNITY	char(15)	NOT NULL DEFAULT 'public',
    DB_SIZE	char(8)		NOT NULL,
    TIME_TIC	char(4)		NOT NULL DEFAULT '120',
    MAX_COUNT	char(1)		NOT NULL,
    MONITOR	ENUM('NO','YES')NOT NULL,
    GRP		char(2)		NOT NULL DEFAULT '0',
    MODEL	char(25)	NOT NULL DEFAULT '-',
    COMMENT	char(250),
    INDEX	(IPADDR).
DEVNAME	  - Имя устройства в сети, должно быть уникальным (обычно имя в DNS).
IPADDR	  - IP адрес устройства.
COMMUNITY - "public" или что-то другое.
DB_SIZE   - Период хранения данных в секундах. Используется для оперативного
	    освобождения устаревших записей из базы cfm_mon.
		(1 год = 31536000 сек,
		 1 месяц = 2592000 сек,
		 1 день= 86400 сек,
		 1 час = 3600 сек. )
TIME_TIC  - Частота опроса данного устройства в секундах.
MAX_COUNT - Число попыток, после которых устройство считается недоступным.
MONITOR   - Индикатор, указывающий, производить опрос данного устройства
	    или нет. Принимает значение YES или NO.
GRP	  - Принадлежность к определённой группе. Используется при отображении
	    на Web (выборка по группе).
	    0 - Температурные датчики,
	    1 - ИБП фирмы APC,
	    2 - ИБП BEST,
	    3 - ИБП Cloride,
	    4 - Оборудование Cisco,
	    5 - Сервера Windows.
	    6 - Сервера Linux,
	    7 - ИБП Symmetra фирмы APC.
MODEL     - Название модели устройства (Например: Cisco 7507). Используется
            при отображениии на Web.
COMMENT   - Краткое описание устройства.
Таблица SNMPCFG
    DEVNAME   char(25) NOT NULL,
    OIDNAME   char(40) NOT NULL,
    OID       char(64) NOT NULL,
    DST       ENUM('GAUGE','COUNTER','DERIVE','ABSOLUTE','CALC') NOT NULL DEFAULT 'GAUGE',
    UNITS     char(250),
    COMMENT   char(250),
    PRIMARY KEY (DEVNAME,OIDNAME).
DEVNAME - Имя устройства в сети, из таблицы DEVCFG.
OIDNAME	- Символьное наименование OID ( от 1 до 40 символов латинского
				алфавита [a-zA-Z0-9_] без пробелов )
OID	- Числовое значение OID (например: .1.3.6.1.2.1.2.2.1.0).
DST	- Используется для вычисления полученного значения в зависимости от его
	  типа. Принимает значения: GAUGE, COUNTER, DERIVE, ABSOLUTE, CALC.
UNITS	- Указывается математическая операция (*,/,+,-) и число.
          Например: *8 - преобразование байтов в биты;
	  sprintf ("%.0f", 8887956*4096/1000000) - преобразование.
COMMENT	- Описание данного OID.
Для хранения статуса устройства используется таблица DEVSTS.
Таблица DEVSTS
    DEVNAME    char(25) PRIMARY KEY,
    IND        tinyint  NOT NULL DEFAULT '0'.
    ERR_COUNT  tinyint  NOT NULL DEFAULT '0'.
DEVNAME - Имя устройства в сети, из таблицы DEVCFG.
IND     - Индикатор состояния устройства: 0 - unknown (состояние неопределено),
					  1 - ok,
                                          2 - failed,
					  3 - invalid (не отвечает на snmp запрос),
					  4 - не мониторится (опрос отключён),
					  5 - down (выключено или недоступно по сети).
ERR_COUNT - Счётчик числа попыток, после которых устройство считается недоступным.
	    При опросе устройств сравнивается с MAX_COUNT таблицы DEVCFG.
	    Если ERR_COUNT = MAX_COUNT в IND заносится '3'.
Для хранения текущих значений OID используется таблица SNMPVAL.
Таблица SNMPVAL
    DEVNAME  char(25) NOT NULL,
    OIDNAME  char(40) NOT NULL,
    C_VAL    char(40) NOT NULL DEFAULT 'U',
    R_VAL    char(40) NOT NULL DEFAULT 'U',
    PRIMARY KEY (DEVNAME,OIDNAME).
DEVNAME - Имя устройства в сети, из таблицы DEVCFG.
OIDNAME	- Символьное наименование OID, из таблицы SNMPCFG.
C_VAL   - Текущее вычисленное (готовое для отображения) значение данного OID.
R_VAL   - Текущее реальное (полученное с устройства) значение данного OID.
	  Используется при вычичслении значений типа COUNTER, DERIVE и ABSOLUTE.
Конфигурация системы оповещения хранится в таблице ALARMCFG.
Таблица ALARMCFG
    DEVNAME    char(25) NOT NULL,
    OIDNAME    char(40) NOT NULL,
    MIN_RED    char(10),
    MIN_ORANGE char(10),
    MIN_YELLOW char(10),
    MIN_BLUE   char(10),
    MAX_BLUE   char(10),
    MAX_YELLOW char(10),
    MAX_ORANGE char(10),
    MAX_RED    char(10),
    LEGEND     char(6),
    TEXTMIN    char(100),
    TEXTMAX    char(100),
    TEXTNORM   char(100),
    SUBJECT    char(50),
    ADDR1      char(30),
    ADDR2      char(30),
    ADDR3      char(30),
    ADDR4      char(30),
    ADDR5      char(30),
    ADDR6      char(30),
    SENDM      ENUM('0','1') DEFAULT '1',
    PRIMARY KEY (DEVNAME,OIDNAME).
DEVNAME  - Имя устройства в сети, из таблицы DEVCFG.
OIDNAME	 - Символьное наименование OID, из таблицы SNMPCFG.
MIN_xxx  - Четыре значения для проверки данного параметра на минимальное значение.
           Цвета определяют степень критичности.
MAX_xxx  - Четыре значения для проверки данного параметра на максимальное значение.
           Цвета определяют степень критичности.
LEGEND	 - (вольт, ампер, Hz, гр.С, °C, КВт, %, b/sec).
TEXTMIN  - Текстовое описание события при достижении минимального значения.
           Данная строка используется при визуальном отображении события
	   (например при формировании письма электронной почты).
TEXTMAX  - Текстовое описание события при достижении максимального значения.
           Данная строка используется при визуальном отображении события
	   (например при формировании письма электронной почты).
TEXTNORM - Текстовое описание события при возвращении к нормальному значению.
           Данная строка используется при визуальном отображении события
	   (например при формировании письма электронной почты).
SUBJECT  - Заголовок письма эл.почты.
ADDR1..6 - Адреса электронной почты, для оповещения об аварийных событиях.
SENDM    - Посылать или нет электронные сообщения для данного OIDNAME. Может
           принимать только значения "0" - NO и "1" - YES.
Для создания графиков используется таблица GRAPHCFG.
В каждой записи таблицы содержатся все необходимые сведения для создания графика в векторном формате (svg).
Таблица GRAPHCFG
    GRAPH    char(30) 	PRIMARY KEY,
    DEVNAME  char(25)	NOT NULL,
    START    char(8) 	NOT NULL,
    WIDTH    char(5)	NOT NULL,
    HEIGHT   char(4)	NOT NULL,
    Y_LABEL  char(20),
    RIGID    ENUM('0','1') DEFAULT '0',
    TRANS    ENUM('0','1') DEFAULT '0',
    COLOR    char(6)	NOT NULL DEFAULT 'ECECEC',
    OID1     char(40),
    OID2     char(40),
    OID3     char(40),
    OID4     char(40),
    OID1_RGB char(6)	NOT NULL DEFAULT '00CC00',
    OID2_RGB char(6)	NOT NULL DEFAULT '0000FF',
    OID3_RGB char(6)	NOT NULL DEFAULT 'DF09F2',
    OID4_RGB char(6)	NOT NULL DEFAULT 'FF6347',
    OID1_LEG char(30)	NOT NULL DEFAULT '-',
    OID2_LEG char(30)	NOT NULL DEFAULT '-',
    OID3_LEG char(30)	NOT NULL DEFAULT '-',
    OID4_LEG char(30)	NOT NULL DEFAULT '-',
    TITLE    char(100)	NOT NULL,
    INDEX (DEVNAME).
GRAPH    - Имя создаваемого графика, должно быть уникальным.
DEVNAME  - Содержит имя устройства (поле DEVNAME из таблицы DEVCFG).
START    - Смещение назад по шкале времени в секундах от текущего времени.
           Используется для вычисления начального времени при построении
	   графика (Например: 86400 - строится график за последний день).
WIDTH    - Ширина графика в пикселах.
HEIGHT   - Высота графика в пикселах.
Y_LABEL  - Пояснительный текст по оси Y.
RIGID    - Выравнивание графика по максимальному и минимальному значению. Может
           принимать только значения "NO" и "YES".
TRANS    - Трансформировать график по размеру рабочей области браузера. Может
           принимать только значения "NO" и "YES".
COLOR    - Цвет фона графика.
OID1     - Имя 1-ого параметра. Берётся из таблицы SNMPCFG для данного устройства.
OID2     - Имя 2-ого параметра. Берётся из таблицы SNMPCFG для данного устройства.
OID3     - Имя 3-ого параметра. Берётся из таблицы SNMPCFG для данного устройства.
OID4     - Имя 4-ого параметра. Берётся из таблицы SNMPCFG для данного устройства.
OID1_RGB - Цвет 1-ого параметра на графике в шестнадцатеричном виде (00CCFF).
OID2_RGB - Цвет 2-ого параметра на графике в шестнадцатеричном виде (0000FF).
OID3_RGB - Цвет 3-ого параметра на графике в шестнадцатеричном виде (DF09F2).
OID4_RGB - Цвет 4-ого параметра на графике в шестнадцатеричном виде (FF6347).
OID1_LEG - Подпись для 1-ого параметра.
OID2_LEG - Подпись для 2-ого параметра.
OID3_LEG - Подпись для 3-ого параметра.
OID4_LEG - Подпись для 4-ого параметра.
TITLE    - Заголовок графика (текстовая строка).
Таблица OFFICE содержит сведения о помещениях, в которых установлено контролируемое оборудование и/или производится мониторинг температурного режима. Данная таблица используется cgi-скриптами при отображении информации.
Таблица OFFICE
    ID_O    smallint not null auto_increment primary key,
    ROOM    char(6)  not null,
    STREET  char(20) not null,
    BILDING char(4)  not null,
    NOTES   char(100).
ID_O	- Порядковый номер помещения (необходим, т.к. номера помещений в
	  разных зданиях могут совпадать).
ROOM	- Номер помещения.
STREET	- Название улицы.
BILDING - Номер дома.
NOTES	- Примечания (например назначение помещения).
Таблица TEMPRCFG используется для организации мониторинга температуры в оффисных и технологических помещениях.
Таблица TEMPRCFG
    ID_T    int      NOT NULL auto_increment primary key,
    ROOM    char(6)  NOT NULL,
    DEVNAME char(25) NOT NULL,
    OIDNAME char(40) NOT NULL,
    T_ALARM char(3)  NOT NULL,
    ID_O    smallint.
ID_T	- Порядковый номер (необходим, т.к. могут совпадать номера помещений в
	  разных зданиях и в одном помещении может быть несколько датчиков).
ROOM	- Номер помещения.
DEVNAME - Имя устройства в сети, из таблицы DEVCFG.
OIDNAME - Символьное наименование OID, из таблицы SNMPCFG.
T_ALARM - Значение температуры для начала генерации сигнала тревоги.
ID_O	- Порядковый номер помещения (из таблицы OFFICE).
Таблица USERS используется для хранения адресов электронной почты и телефонов ответственных лиц. Используется службой оповещения.
Таблица USERS
    ID_U    int      UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    MAIL    char(30) NOT NULL,
    NAME    char(60) NOT NULL,
    PHONE1  char(8),
    PHONE2  char(15),
    PHONE3  char(30),
    JOB     char(60).
    ADRESS  char(100).
ID_U    - Уникальный индекс ответственного лица.
MAIL    - Адрес электронной почты ответственного лица.
NAME    - Ф.И.О.
PHONE1  - служебный телефон.
PHONE2  - домашний телефон.
PHONE3  - сотовый телефон.
JOB     - должность сотрудника.
ADRESS  - адрес сотрудника (если на предприятии есть диспетчерская служба).
Таблица CROSSID используется для привязки пользователей к технологическим помещениям и устройствам. Используется в подсистеме отображения для показа ответственных лиц.
Таблица CROSSID
    DEVNAME  char(25)  NOT NULL DEFAULT 'NO',
    ID_U     int(10)   UNSIGNED NOT NULL.
    ID_O     int(10)   UNSIGNED,
DEVNAME - Имя устройства в сети, из таблицы DEVCFG.
ID_U    - Уникальный индекс ответственного лица.
ID_O    - Уникальный индекс технологического помещения.

База данных cfm_mon

Используется для хранения значений опроса устройств. Имя таблицы соответствует имени устройства. Таблицы создаются автоматически в процессе старта демона опроса устройств cfmd.pl.

Таблицы 'devname'
    TIME char(10) PRIMARY KEY,
    "имя OID"   char(40),
	.............
	.............
    "имя OID"   char(40).

База данных cfm_traps

Для хранения трапов используется таблицы трапов. Имя таблицы соответствует имени устройства.

Таблицы 'devname'
    DTIME char(27) PRIMARY KEY,
    GENID   char(2),
    SPECID  char(4),
    COMMENT char(255).

Модуль опроса устройств cfmd.pl

Модуль оповещения cfm_note.pl

Модуль оповещения предназначен для рассылки электронных писем ответственным лицам при возникновении критического события. Критические события для каждого устройства храняться в таблице ALARMCFG. Конфигурирование оповещений производиться через АРМ администратора (меню: Правка->Оповещение).

В момент запуска демон cfm_note.pl загружает в оперативную память содержимое таблицы ALARMCFG, записывает свой PID в файл /var/run/cfm_note.pid и переходит в фоновый режим. Сообщения о работе демона и ошибках выполнения заносяться в файл /var/log/cfm.log.

В процессе работы каждые 30 секунд происходит проверка состояния всех устройств. Состояние устройства определяется по соответствующим значениям в таблицах DEVSTS и SNMPVAL путём сравения текущих значений из этих таблиц со значениями конфигурационных данных из оперативной памяти. Для каждого устройства осуществляются следующие действия:


Назад Оглавление Далее
Hosted by uCoz