Возможно вы искали: 'Q.U.B.E.'

May 15 2025 19:25:42
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Построение графиков для мониторинга состояние оборудования (monitoring snmp linux gentoo lm_sensor)

Построение графиков для мониторинга состояние оборудования (monitoring snmp linux gentoo lm_sensor)

Ключевые слова: monitoring, snmp, linux, gentoo, lm_sensor, (найти похожие документы)

From: Дмитрий Попов <incvega@gmail.com.>
Newsgroups: email
Date: Mon, 27 Dec 2007 14:31:37 +0000 (UTC)
Subject: Построение графиков для мониторинга состояние оборудования

Связка: GENTOO+NET-SNMP+APACHE+PGSQL+PHP+BASH+ lm_sensor.
Живая система: http://eagle.gameway.ru

Схема



План работ:

1) Подготовка ядра (включение lm_sensor)
2) Компилирование пакета NET-SNMP с lm_sensor
3) Установка PGSQL
а) Создание базы таблиц
4) Перенаправление данных с сенсоров в базу.(bash)
5) Установка Apache + PHP+ GD
6) Установка библиотеки JpGraph
7) Строим график.






1. Подготовка ядра

Введение

Для начала, пройдемся по основным моментам. В начале необходимо четко
спланировать для чего ваш сервер собственно предназначен. Продумайте
какая нагрузка на нем будет. В моем примере на машине установленно все
программы, но это делалось все в домашних условиях. Если действительно
кто-то захочет повторить эту связку , я бы рекомендовал разбить на 3
основные части.


1) PgSQL
2) Apache+php+gd
3) Net-SNMP и lm_sensors


Первые два пункта на ваше усмотрение, а вот 3й, это думаю базовые
пакеты которые необходимо поставить на "любой" cервер. На практике
бывает а "вот вот не плохо бы иметь график по тем-то данным" и
начинается апгрейд программ и хвост который тянет только проблемы за
собой. Вывод: планируйте зарание.

Как показала практика данные не бывают лишними, другое дело их
использовать! В данном материале я показал только одну маленькую часть
того , что можно построить имея под рукой базовые пакеты не прибегая к
установке таких программ как MRTG,RDDTOOL итд, мне захотелосьсамому
пощупать, как это строиться и как это работает. Тем более когда вы
закладывается собственную математику вы точно понимаете как это
работает и вы уверенны что это правильно работает! Я использовал
готовую библиотеку "JpGraph" в которой опеределены уже все классы для
построения графиков и это очень форсировало проект. И так результат
всех моих изобретений доступен 24 часа на http://eagle.gameway.ru .
Если кого заинтересовал этот проект для реализации в крупной сети:
incvega@gmail.com


1.1 Выбор дистрибутива

Я использовал для своих эксперементов Gentoo Linux 2007.0 уверен, что
это все работает и на других дистрибутивах выбор за вами .

Нам необходимо включить поддержку lm_sensors для нашего оборудования.

И так подготовим наше ядро:

root# cd /usr/src/linux
root# make menuconfig


Результат ваших страданий должен быть отражен в .config каждый найдет,
тот модуль кторый ему нужен. Добавлю только, что использовалось в
качестве тестов

CPU: Intel Celetron
MB: Gigabyte ICH7

# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=m
CONFIG_I2C_ALGOPCF=m
CONFIG_I2C_ALGOPCA=m

#
# I2C Hardware Bus support
#
CONFIG_I2C_ALI1535=m
CONFIG_I2C_ALI1563=m
CONFIG_I2C_ALI15X3=m
CONFIG_I2C_AMD756=m
CONFIG_I2C_AMD756_S4882=m
CONFIG_I2C_AMD8111=m
CONFIG_I2C_I801=m
CONFIG_I2C_I810=m
CONFIG_I2C_PIIX4=m
CONFIG_I2C_ISA=m
CONFIG_I2C_NFORCE2=m
CONFIG_I2C_OCORES=m
CONFIG_I2C_PARPORT_LIGHT=m
CONFIG_I2C_PROSAVAGE=m
CONFIG_I2C_SAVAGE4=m
CONFIG_I2C_SIMTEC=m
CONFIG_SCx200_ACB=m
CONFIG_I2C_SIS5595=m
CONFIG_I2C_SIS630=m
CONFIG_I2C_SIS96X=m
CONFIG_I2C_STUB=m
CONFIG_I2C_TINY_USB=m
CONFIG_I2C_VIA=m
CONFIG_I2C_VIAPRO=m
CONFIG_I2C_VOODOO3=m

#
# Miscellaneous I2C Chip support
#
CONFIG_SENSORS_DS1337=m
CONFIG_SENSORS_DS1374=m
CONFIG_SENSORS_EEPROM=m
CONFIG_SENSORS_PCF8574=m
CONFIG_SENSORS_PCA9539=m
CONFIG_SENSORS_PCF8591=m
CONFIG_SENSORS_MAX6875=m
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set

#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set

#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set
CONFIG_HWMON=y
CONFIG_HWMON_VID=m
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_AD7418=m
CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_K8TEMP=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_DS1621=m
CONFIG_SENSORS_F71805F=m
CONFIG_SENSORS_FSCHER=m
CONFIG_SENSORS_FSCPOS=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_GL520SM=m
CONFIG_SENSORS_CORETEMP=m
CONFIG_SENSORS_IT87=m
CONFIG_SENSORS_LM63=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_LM77=m
CONFIG_SENSORS_LM78=m
CONFIG_SENSORS_LM80=m
CONFIG_SENSORS_LM83=m
CONFIG_SENSORS_LM85=m
CONFIG_SENSORS_LM87=m
CONFIG_SENSORS_LM90=m
CONFIG_SENSORS_LM92=m
CONFIG_SENSORS_MAX1619=m
CONFIG_SENSORS_MAX6650=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_PC87427=m
CONFIG_SENSORS_SIS5595=m
CONFIG_SENSORS_SMSC47M1=m
CONFIG_SENSORS_SMSC47M192=m
CONFIG_SENSORS_SMSC47B397=m
CONFIG_SENSORS_VIA686A=m
CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
CONFIG_SENSORS_W83793=m
CONFIG_SENSORS_W83L785TS=m
CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_HDAPS=m
CONFIG_SENSORS_APPLESMC=m


Далее

eagle linux # emerge -pv lm_sensors

These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] sys-apps/lm_sensors-2.10.4 USE="-sensord" 911 kB


Суммарный результат вашего старания должен быть такой

eagle linux # lsmod
Module Size Used by
it87 19856 0
hwmon_vid 6400 1 it87
i2c_isa 7168 1 it87
i2c_i801 11280 0
eagle linux # sensors
it8718-isa-0290
Adapter: ISA adapter
in0: +1.36 V (min = +0.00 V, max = +4.08 V)
in1: +1.82 V (min = +0.00 V, max = +4.08 V)
in2: +3.34 V (min = +0.00 V, max = +4.08 V)
in3: +4.08 V (min = +0.00 V, max = +4.08 V) ALARM
in4: +3.07 V (min = +0.00 V, max = +4.08 V)
in5: +0.03 V (min = +0.00 V, max = +4.08 V)
in6: +1.23 V (min = +0.00 V, max = +4.08 V)
in7: +4.08 V (min = +0.00 V, max = +4.08 V) ALARM
in8: +4.08 V
fan1: 1901 RPM (min = 0 RPM)
fan2: 2872 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
temp1: -53°C (low = +127°C, high = +127°C) sensor = thermistor
temp2: -2°C (low = +127°C, high = +127°C) sensor = thermistor
temp3: +42°C (low = +127°C, high = +90°C) sensor = diode
vid: +1.088 V
eagle linux #


Необходимо добавить его соответсвующий уровень загрузки (rc.d) у меня
он в default:

eagle linux # rc-config show
Status of init scripts in runlevel default
apache2 [started]
lm_sensors [started]
local [started]
named [started]
net.eth0 [started]
netmount [started]
ntpd [started]
postgresql [started]
snmpd [started]
sshd [started]
syslog-ng [started]
vixie-cron [started]


2. Компилирование пакета NET-SNMP с lm_sensor


В Gentoo этот процес занимает не долгое время и поиск. Выбираем флаги
и собираем его с нашим lm_sensor.


eagle linux # emerge -pv net-snmp

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild U ] net-analyzer/net-snmp-5.4.1-r1 [5.4] USE="ipv6
lm_sensors perl python%* ssl tcpd -X -diskio* -doc -elf* -mfd-rewrites
-minimal -rpm (-selinux) -sendmail -smux" 5,003 kB

Total: 1 package (1 upgrade), Size of downloads: 5,003 kB


Необходимо отредактировать по вашему вкусу snmpd. и добавить его
соответсвующий уровень загрузки (rc.d) у меня он в default:

eagle linux # rc-config show

Status of init scripts in runlevel default
apache2 [started]
lm_sensors [started]
local [started]
named [started]
net.eth0 [started]
postgresql [started]
snmpd [started]
sshd [started]
syslog-ng [started]
vixie-cron [started]


Тестирование сводится к тому чтобы увидеть следующее:

eagle snmp #snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.13.16

LM-SENSORS-MIB::lmTempSensorsIndex.1 = INTEGER: 0
LM-SENSORS-MIB::lmTempSensorsIndex.2 = INTEGER: 1
LM-SENSORS-MIB::lmTempSensorsIndex.3 = INTEGER: 2
LM-SENSORS-MIB::lmTempSensorsDevice.1 = STRING: temp1
LM-SENSORS-MIB::lmTempSensorsDevice.2 = STRING: temp2
LM-SENSORS-MIB::lmTempSensorsDevice.3 = STRING: temp3
LM-SENSORS-MIB::lmTempSensorsValue.1 = Gauge32: 4294914296
LM-SENSORS-MIB::lmTempSensorsValue.2 = Gauge32: 4294965296
LM-SENSORS-MIB::lmTempSensorsValue.3 = Gauge32: 42000
LM-SENSORS-MIB::lmFanSensorsIndex.1 = INTEGER: 0
LM-SENSORS-MIB::lmFanSensorsIndex.2 = INTEGER: 1
LM-SENSORS-MIB::lmFanSensorsIndex.3 = INTEGER: 2
LM-SENSORS-MIB::lmFanSensorsDevice.1 = STRING: fan1
LM-SENSORS-MIB::lmFanSensorsDevice.2 = STRING: fan2
LM-SENSORS-MIB::lmFanSensorsDevice.3 = STRING: fan3
LM-SENSORS-MIB::lmFanSensorsValue.1 = Gauge32: 1923
LM-SENSORS-MIB::lmFanSensorsValue.2 = Gauge32: 2848
LM-SENSORS-MIB::lmFanSensorsValue.3 = Gauge32: 0
LM-SENSORS-MIB::lmMiscSensorsIndex.1 = INTEGER: 0
LM-SENSORS-MIB::lmMiscSensorsIndex.2 = INTEGER: 1
LM-SENSORS-MIB::lmMiscSensorsIndex.3 = INTEGER: 2
LM-SENSORS-MIB::lmMiscSensorsIndex.4 = INTEGER: 3
LM-SENSORS-MIB::lmMiscSensorsIndex.5 = INTEGER: 4
LM-SENSORS-MIB::lmMiscSensorsIndex.6 = INTEGER: 5
LM-SENSORS-MIB::lmMiscSensorsIndex.7 = INTEGER: 6
LM-SENSORS-MIB::lmMiscSensorsIndex.8 = INTEGER: 7
LM-SENSORS-MIB::lmMiscSensorsIndex.9 = INTEGER: 8
LM-SENSORS-MIB::lmMiscSensorsIndex.10 = INTEGER: 9
LM-SENSORS-MIB::lmMiscSensorsIndex.11 = INTEGER: 10
LM-SENSORS-MIB::lmMiscSensorsDevice.1 = STRING: in0
LM-SENSORS-MIB::lmMiscSensorsDevice.2 = STRING: in1
LM-SENSORS-MIB::lmMiscSensorsDevice.3 = STRING: in2
LM-SENSORS-MIB::lmMiscSensorsDevice.4 = STRING: in3
LM-SENSORS-MIB::lmMiscSensorsDevice.5 = STRING: in4
LM-SENSORS-MIB::lmMiscSensorsDevice.6 = STRING: in5
LM-SENSORS-MIB::lmMiscSensorsDevice.7 = STRING: in6
LM-SENSORS-MIB::lmMiscSensorsDevice.8 = STRING: in7
LM-SENSORS-MIB::lmMiscSensorsDevice.9 = STRING: in8
LM-SENSORS-MIB::lmMiscSensorsDevice.10 = STRING: vid
LM-SENSORS-MIB::lmMiscSensorsDevice.11 = STRING: alarms
LM-SENSORS-MIB::lmMiscSensorsValue.1 = Gauge32: 1360
LM-SENSORS-MIB::lmMiscSensorsValue.2 = Gauge32: 1824
LM-SENSORS-MIB::lmMiscSensorsValue.3 = Gauge32: 3343
LM-SENSORS-MIB::lmMiscSensorsValue.4 = Gauge32: 4080
LM-SENSORS-MIB::lmMiscSensorsValue.5 = Gauge32: 3072
LM-SENSORS-MIB::lmMiscSensorsValue.6 = Gauge32: 32
LM-SENSORS-MIB::lmMiscSensorsValue.7 = Gauge32: 1231
LM-SENSORS-MIB::lmMiscSensorsValue.8 = Gauge32: 4080
LM-SENSORS-MIB::lmMiscSensorsValue.9 = Gauge32: 4080
LM-SENSORS-MIB::lmMiscSensorsValue.10 = Gauge32: 1088
LM-SENSORS-MIB::lmMiscSensorsValue.11 = Gauge32: 34832000


Если вы добились этого, то пловина успеха за вами есть.


3. Установка PGSQL

eagle snmp # emerge -pv postgresql

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild R ] dev-db/postgresql-8.0.13 USE="nls pam perl python
readline ssl xml* zlib -doc -kerberos -pg-intdatetime (-selinux) -tcl*
-test" 7,796 kB

Total: 1 package (1 reinstall), Size of downloads: 7,796 kB

eagle snmp #


Выбираем флаги и собираем нашу базу PGSQL (или альтернативную"up to
you )") создаем базу.

Cоздание таблицы для данных:

CREATE sequence msg_seq_num_ip;
CREATE TABLE snmpwalk_cron_ip (
id bigint default nextval('msg_seq_num_ip'),
oid_id text,
host_ip inet,
value_trap bigint,
current_ts timestamp(0) without time zone NOT NULL DEFAULT now()
);


Результат создания должен быть следующий:

24houts=# SELECT * from snmpwalk_cron_ip limit 1;

id | oid_id | host_ip | value_trap | current_ts
----+--------------------------+-----------+------------+-----------------------
1 | .1.3.6.1.4.1.2021.4.11.0 | 127.0.0.1 | 504536 | 2007-11-22 11:15:02
(1 row)


4. Перенаправление данных с сенсоров в базу.(bash)


Для начало создадим скрипт с правами 711:

linux# touch sensor.sh


и добавим следующие строки:

#!/bin/bash
# описание значения который нам нужен
OID3=".1.3.6.1.4.1.2021.13.16.2.1.3.3"
OID4=".1.3.6.1.4.1.2021.13.16.3.1.3.1"
OID5=".1.3.6.1.4.1.2021.13.16.3.1.3.2"
#
HOST="127.0.0.1"
TEMP1=`snmpwalk -v 2c -c public1 localhost $OID3 |awk ' BEGIN {FS = " ";} {print $4 }'`
FAN1=`snmpwalk -v 2c -c public1 localhost $OID4 |awk ' BEGIN {FS = " ";} {print $4 }'`
FAN2=`snmpwalk -v 2c -c public1 localhost $OID5 |awk ' BEGIN {FS = " ";} {print $4 }'`

# Запись в базу
psql -d post57 -U vega -c "INSERT INTO snmpwalk_cron_ip(oid_id,host_ip,value_trap)
VALUES ('$OID3','$HOST','$TEMP1');"

psql -d post57 -U vega -c "INSERT INTO snmpwalk_cron_ip(oid_id,host_ip,value_trap)
VALUES ('$OID4','$HOST','$FAN1');"

psql -d post57 -U vega -c "INSERT INTO snmpwalk_cron_ip(oid_id,host_ip,value_trap)
VALUES ('$OID5','$HOST','$FAN2');"


Необходимо поставить этот скрипт по крону раз в 5 минут (на ваше
усмотрение) и получить такой результат:

24hours=# SELECT * from snmpwalk_cron_ip limit 10;

id | oid_id | host_ip | value_trap | current_ts
----+---------------------------------+-----------+------------+------ ----------
1 | .1.3.6.1.4.1.2021.4.11.0 | 127.0.0.1 | 504536 | 2007-11-22 11:15:02
2 | .1.3.6.1.4.1.2021.4.6 | 127.0.0.1 | 6696 | 2007-11-22 11:15:02
3 | .1.3.6.1.4.1.2021.13.16.2.1.3.3 | 127.0.0.1 | 40000 | 2007-11-22 11:15:02
4 | .1.3.6.1.4.1.2021.13.16.3.1.3.1 | 127.0.0.1 | 1829 | 2007-11-22 11:15:03
5 | .1.3.6.1.4.1.2021.13.16.3.1.3.2 | 127.0.0.1 | 2860 | 2007-11-22 11:15:03
6 | .1.3.6.1.2.1.2.2.1.16.2 | 127.0.0.1 | 3868724396 | 2007-11-22 11:15:03
7 | .1.3.6.1.2.1.2.2.1.10.2 | 127.0.0.1 | 3391331837 | 2007-11-22 11:15:03
8 | .1.3.6.1.4.1.2021.4.11.0 | 127.0.0.1 | 509960 | 2007-11-22 11:20:02
9 | .1.3.6.1.4.1.2021.4.6 | 127.0.0.1 | 12120 | 2007-11-22 11:20:02
10 | .1.3.6.1.4.1.2021.13.16.2.1.3.3 | 127.0.0.1 | 42000 | 2007-11-22 11:20:02
(10 rows)


Подведение итогов: Сейчас у нас данные поступают в базу с
периодичностью в 5 минут с local host , вы без труда можете подключить
другие хосты достаточно правильно настроить net-snmp и firewall .


5. Установка Apache + PHP+ GD

Не хотелось бы заострить на этом большое внимание для установки этого
хозяйства на сервер, так как статей по этому просто туча, единственное
на чем хотел бы заострить внимание это GD в Gentoo понравилась
собрать этот пакет как мне угодно тоесть включить те флаги которые мне
нужны:

eagle vega # emerge -pv gd

These are the packages that would be merged, in order:
Calculating dependencies... done!

[ebuild R ] media-libs/gd-2.0.35 USE="truetype -fontconfig*
-jpeg* -png* -xpm*" 1,185 kB

Total: 1 package (1 reinstall), Size of downloads: 1,185 kB

eagle vega # emerge -pv apache

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild R ] www-servers/apache-2.2.6-r5 USE="ssl -debug -doc
-ldap -mpm-event -mpm-itk -mpm-peruser -mpm-prefork -mpm-worker
-no-suexec (-selinux) -static-modules -threads" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

eagle vega #

[ebuild R ] dev-lang/php-5.2.5-r1 USE="apache2 berkdb bzip2 cli
crypt gd gdbm iconv imap ipv6 ncurses nls pcre postgres readline
reflection session soap spl ssl truetype unicode xml zlib -adabas
-bcmath -birdstep -calendar -cdb -cgi -cjk -concurrentmodphp -ctype
-curl -curlwrappers -db2 -dbase -dbmaker -debug -discard-path -doc
-empress -empress-bcs -esoob -exif -fastbuild -fdftk -filter -firebird
-flatfile -force-cgi-redirect -frontbase -ftp -gd-external -gmp -hash
-inifile -interbase -iodbc -java-external -json -kerberos -ldap
-ldap-sasl -libedit -mcve -mhash -msql -mssql -mysql -mysqli -oci8
-oci8-instant-client -odbc -pcntl -pdo -pic -posix -qdbm -recode
-sapdb -sharedext -sharedmem -simplexml -snmp -sockets -solid -spell
-sqlite -suhosin -sybase -sybase-ct -sysvipc -threads -tidy -tokenizer
-wddx -xmlreader -xmlrpc -xmlwriter -xpm -xsl -yaz -zip -zip-external"
0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

eagle vega #


Результат функции

phpinfo();

gd

GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.3.4
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled


Тут как вам угодно собирайте оптимизируйте на вашь вкус. Основное это
красным выделенно.


6. Установка библиотеки JpGraph

Пожалу самое легкое ) другое дело - это использовать. Кратенько:
скачать архив и расспаковать его в диррикторию где DocumentRoot у
апача и запустить тестовый файл который вам построит все графики
которые поддерживает ваша конфигурация.

Есть нюанс с текстом я просто скопировал шрифты из windows и прописал
их в конфигурационных файлах этой библиотеки.

Полная документация распологается на (внимательно прочтите):
http://www.aditus.nu/jpgraph/documentation.php


7. Строим график.

За дизайн не ругайте



Создаем папочку cpu в DocumentRoot и добавляем файлы cpu.jpg
new_g3.php user_data3.php

С э того момента начну по подробнее

1) cpu.jpg - это background для графика добавляем любой по вкусу.
2) new_g3.php - график
3) user_data3.php - данные от базы.

Открываем занавес:

new_g3.php

<?php
//путь до библиотеки JpGraph
require_once("../../jpgraph.php");
require_once("../../jpgraph_line.php");
require_once("../../jpgraph_date.php");
require_once("../../jpgraph_bar.php");
// Create a data set in range (50,70) and X-positions
DEFINE('NDATAPOINTS',1440);
DEFINE('SAMPLERATE',1440);
// наши данные из базы

include 'user_data3.php';
$data=$array_1;
$xdata = $array_2;

// Create the new graph
$graph = new Graph(650,200);
$graph->SetScale("textlin");
$graph->SetShadow();
$txt=new Text("C");
$txt->SetPos(12,12);
$txt->SetFont(FF_FONT1,FS_BOLD);
$txt->SetOrientation("h");
//$txt->SetBox('yellow','navy','gray');
//$txt->SetColor("red");
$graph->AddText($txt);
$txt1=new Text("h");
$txt1->SetPos(625,173);
$txt1->SetFont(FF_FONT1,FS_BOLD);
$txt1->SetOrientation("h");
$graph->AddText($txt1);
$txt2=new Text("24 часа");
$txt2->SetPos(300,20);
$txt2->SetFont(FF_ARIAL,FS_BOLD,9);
$txt2->SetOrientation("h");
$graph->AddText($txt2);
$graph ->title->SetFont(FF_ARIAL,FS_BOLD,8);

// Slightly larger than normal margins at the bottom to have room for
// the x-axis labels
$graph->SetMargin(60,50,10,35);
$graph->SetScale('datlin');
//$graph->SetScale("textlin");
$graph->title->Set("http://eagle.gameway.ru $date");
// Set the angle for the labels to 90 degrees
$graph->xaxis->SetLabelAngle(0);
$graph->SetImgFormat('jpeg',100);

// background
$graph->SetBackgroundImage("cpu.jpg",BGIMG_FILLFRAME);

// It is possible to adjust the density for the X-axis as well
// The following call makes the dates a little more sparse
// $graph->SetTickDensity(TICKD_NORMAL,TICKD_SPARSE);
// The automatic format string for dates can be overridden
$graph->xaxis->scale->SetDateFormat('h:i');
// Adjust the start/end to a specific alignment
$graph->xaxis->scale->SetTimeAlign(MINADJ_1);
$line = new LinePlot($data,$xdata);
$line->SetLegend('CPU temperature');
$graph->yaxis->HideZeroLabel();
$graph->xgrid->Show(true,false);
$graph->xgrid->SetColor('black@0.8');
//$line->SetFillColor('chartreuse2@0.6');
$line->SetFillColor('lime@0.4');
$graph->Add($line);
$graph->Stroke();
?>


user_data3.php

<?php
$timestampRightNow = strtotime("Now")- (1 * 24 * 60 * 60);
$date = date('Y-m-d, H:i:s',$timestampRightNow);
$oid_id=".1.3.6.1.4.1.2021.13.16.2.1.3.3";
$host_ip="127.0.0.1";
$conn=pg_connect("host=localhost dbname=24hours user=24hours password= ");

$query="select value_trap,current_ts from snmpwalk_cron_ip where
current_ts >='$date' and oid_id='$oid_id' and host_ip='$host_ip'
order by current_ts;";

$result=pg_query($conn,$query);
$rows = pg_num_rows($result);
for ($i=0;$i<$rows;$i++){
$final=pg_fetch_array($result,$i);
$array_1[$i]=$final['value_trap']/1000;
$array_2[$i]=strtotime($final['current_ts']);
}
pg_close($conn);
?>


Все что выделeнно цветом "основные моменты".

Дальше данные можно мультиплексировать и отображать вот так полет
фантазии не ограничен можно прикрутить smart статистику с винтов и
нарисовать, собсвенно все что душе угодно по snmp вы можете вызывать
собственные скрипты man snmp.conf.

Главное показать что это все очень прозрачно и доступно.




Тут как ваша фантазия себя поведет

Удачи.

Inc_Vega(Попов Дмитрий)
1485 Прочтений •  [Построение графиков для мониторинга состояние оборудования (monitoring snmp linux gentoo lm_sensor)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Построение графиков для мониторинга... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка