С любым количеством столбцов даты после first_login
, мы можем сделать следующее.
gather
столбцы даты в один столбец, так что мы можем на самом деле работать с удобным. Это аккуратный формат, в котором каждая строка представляет собой комбинацию дня и дня пользователя. Date
объекты и определите дни между наблюдением и first_log
. Мы используем Interval
, чтобы сделать это, чтобы обеспечить разумное поведение вокруг неровностей временной шкалы. filter
, чтобы сохранить только наблюдения, которые произошли в желаемом диапазоне недель summarise
, чтобы рассчитать общее количество входов в систему за этот период, и right_join
значения обратно на оригинал. Обратите внимание, что без дополнительных образцов данных трудно быть более наглядным, поскольку здесь суммируется только одна ячейка, и поэтому только пользователь с id = 1
фактически имеет любые значения для суммирования. library(tidyverse)
library(lubridate)
tbl <- tibble(id = c(1:4), first_log = c("18-12-01", "18-12-02", "18-12-02", "18-12-05"), X18_12_01 = c(NA, 1, 1, 2), X18_12_02 = c(5, 2, 1, 1))
tbl %>%
gather(day, num_logins, -id, -first_log) %>%
mutate(
first_log = ymd(first_log),
day = day %>% str_remove("^X") %>% ymd(),
days_since_event = as.period(first_log %--% day, "day"),
) %>%
filter(days_since_event > days(0) & days_since_event <= days(7)) %>%
group_by(id) %>%
summarise(total_logins = sum(num_logins, na.rm = TRUE)) %>%
right_join(tbl, by = "id")
#> # A tibble: 4 x 5
#> id total_logins first_log X18_12_01 X18_12_02
#>
#> 1 1 5 18-12-01 NA 5
#> 2 2 NA 18-12-02 1 2
#> 3 3 NA 18-12-02 1 1
#> 4 4 NA 18-12-05 2 1
Создано в 2019-03-04 при помощи пакета представляет (v0.2.1) sup>
Краткое описание типичного агента SNMP:
Настройте агента. Обычно это влечет за собой указание на какой сервер отправлять оповещения.
Запустите его.
Отправлять соответствующие SNMP-сообщения на настроенный сервер, когда что-то происходит.
Ответ на запросы от настроенного сервера.
Весь запрос / ответ выполняется с использованием сообщений SNMP. Если в вашей компании нет специально разработанного / назначенного OID для серверного программного обеспечения, вам необходимо изучить стандартные определения MIB, чтобы определить, какие OID являются подходящими.
MIB: Блок управляющей информации. Они бывают стандартных и пользовательских вкусов. Стандартные определяются органом по стандартизации (IETF?). Пользовательские производители создаются для поддержки информации, уникальной для их продуктов. MIB - это в основном наборы OID.
OID: Object IDentifier - это строка с точечной нотацией, которая идентифицирует часть аппаратного / программного обеспечения и часть информации, которую вы ищете из нее - например, количество коллизий TX на порте Ethernet может выглядеть примерно так: 1.5.82.316.8.4.3 (хотя это не действительный OID, это всего лишь выдуманный пример).
Более подробная информация доступна в Wikipedia . Загрузите бесплатный браузер MIB , чтобы получить представление о том, как выглядят идентификаторы OID и как подробно они могут быть получены. Проверьте RFC для более подробной информации. Посмотрите на что-то вроде Perl Net-SNMP - вы даже можете использовать прилагаемое к нему программное обеспечение snmpd для выполнения большей части вашей работы.
и часть информации, которую вы ищете по ней - например, количество коллизий TX на порте Ethernet может выглядеть примерно так: 1.5.82.316.8.4.3 (хотя это не допустимый OID, это просто сделано- пример).Более подробная информация доступна в Википедии . Загрузите бесплатный браузер MIB , чтобы получить представление о том, как выглядят идентификаторы OID и как подробно они могут быть получены. Проверьте RFC для более подробной информации. Посмотрите на что-то вроде Perl Net-SNMP - вы даже можете использовать прилагаемое к нему программное обеспечение snmpd для выполнения большей части вашей работы.
и часть информации, которую вы ищете по ней - например, количество коллизий TX на порте Ethernet может выглядеть примерно так: 1.5.82.316.8.4.3 (хотя это не допустимый OID, это просто сделано- пример).Более подробная информация доступна в Википедии . Загрузите бесплатный браузер MIB , чтобы получить представление о том, как выглядят идентификаторы OID и как подробно они могут быть получены. Проверьте RFC для более подробной информации. Посмотрите на что-то вроде Perl Net-SNMP - вы даже можете использовать прилагаемое к нему программное обеспечение snmpd для выполнения большей части вашей работы.
Более подробная информация доступна в Википедии . Загрузите бесплатный браузер MIB , чтобы получить представление о том, как выглядят идентификаторы OID и как подробно они могут быть получены. Проверьте RFC для более подробной информации. Посмотрите на что-то вроде Perl Net-SNMP - вы даже можете использовать прилагаемое к нему программное обеспечение snmpd для выполнения большей части вашей работы.
Более подробная информация доступна в Википедии . Загрузите бесплатный браузер MIB , чтобы получить представление о том, как выглядят идентификаторы OID и как подробно они могут быть получены. Проверьте RFC для более подробной информации. Посмотрите на что-то вроде Perl Net-SNMP - вы даже можете использовать прилагаемое к нему программное обеспечение snmpd для выполнения большей части вашей работы.
SNMP, безусловно, является приемлемым способом мониторинга вашей сети, устройств и серверов. Поскольку он использует UDP, он не будет чрезмерно нагружать сеть с помощью повторных попыток TCP и т. П. (Клиенты SNMP или должны быть спроектированы для обработки пропущенных пакетов и т. Д.). Кроме того, у вас будет огромный набор клиентских решений для мониторинга вашей системы и их интеграции.
Если вы планируете окончательное решение в Java, см. Документацию Java / SNMP и SNMP4J
. ] SNMP.com (основатель Джеффри Кейс, один из архитекторов SNMP) продает расширяемые агенты SNMP . Один из них может спасти вас от горя.
В nSoftware есть SNMP-агент (не бесплатный). Это может быть проще, чем бросить свой собственный.
Также посмотрите книгу Уильяма Сталлинга: SNMP .
Zenoss довольно сложен и поставляется со многими предустановленными SNMP-компонентами. Вам действительно нужно кодировать своих собственных агентов SNMP?
SNMP - это большая тема с большой сложностью, если вникнуть во все детали и все исторические версии протокола и связанных с ним инструментов. Я бы посоветовал взять копию Essential SNMP от Мауро и Шмидта, которая дает очень ясное введение как в фундаментальные идеи, лежащие в основе SNMP, так и практические примеры того, как начать с ним и использовать его. вместе с рядом различных инструментов.
вы можете прицелиться ниже и попробовать Cacti ( http://www.cacti.net/ ).
Я тоже попробовал Zenoss, но отказался. Cacti заработал довольно быстро. Я просто отслеживаю использование полосы пропускания довольно большого количества маршрутизаторов и многих портов в коммутаторах по всей стране. Но есть шаблоны для мониторинга всего, что больше связано с одним сервером (температура, скорость вентилятора и т. Д.)
BR. Андерс