Пропустить основной контент

additional-information

ERDDAP™- Создайте свой собственныйERDDAP™

Вещи, которые нужно знать

 

Прокси-ошибки

Иногда просьба оERDDAP™Возвращается ошибка прокси, ошибка HTTP 502 Bad Gateway или подобная ошибка. Эти ошибки выбрасываются Apache или Tomcat, а неERDDAP™себя.

  • Если каждый запрос генерирует эти ошибки, особенно когда вы впервые настраиваете свой сайт.ERDDAP™Тогда это, вероятно, ошибка прокси или плохой шлюз, и решение, вероятно, исправить.ERDDAPнастройки прокси. Это также может быть проблемой при установленииERDDAP™Внезапно начинаются эти ошибки для каждого запроса.
  • В противном случае ошибки «прокси» обычно являются ошибками тайм-аута, выброшенными Apache или Tomcat. Даже когда они происходят относительно быстро, это какая-то реакция от Apache или Tomcat, которая возникает, когда они появляются.ERDDAP™Он очень занят, ограничен памятью или ограничен каким-либо другим ресурсом. В этих случаях см. советы ниже, чтобы иметь дело сERDDAP™медленно реагирует.

Запросы на длительный срок (30 временных точек) из сетчатого набора данных склонны к сбоям тайм-аута, которые часто появляются как ошибки прокси, потому что это занимает значительное время дляERDDAP™Открыть все файлы данных один за другим. ЕслиERDDAP™Если он занят во время запроса, проблема, скорее всего, возникнет. Если файлы набора данных сжаты, проблема чаще возникает, хотя пользователю трудно определить, сжаты ли файлы набора данных. Решение состоит в том, чтобы сделать несколько запросов, каждый с меньшим временным диапазоном. Насколько мал временной диапазон? Предлагаю начать с малого (~30 временных точек?) Тогда (приблизительно) Удвоить временной диапазон до тех пор, пока запрос не выйдет из строя, а затем вернуться к удвоению. Затем сделайте все запросы (Для каждого отдельного отрезка времени) Нужно было получить все данные. АнERDDAP™администратор может уменьшить эту проблему за счет увеличенияНастройки тайм-аута Apache.

Мониторинг

Мы все хотим, чтобы наши службы обработки данных находили свою аудиторию и широко использовались, но иногда ваши данные могут быть удалены.ERDDAP™Может использоваться слишком много, вызывая проблемы, включая сверхмедленные ответы на все запросы. Наш план, чтобы избежать проблем:

  • МониторERDDAP™черезstatus.html веб-страница. Он содержит тонны полезной информации. Если вы видите, что поступает огромное количество запросов, или используется тонна памяти, или тонны неудавшихся запросов, или каждый крупный набор данных занимает много времени, или видите какие-либо признаки того, что вещи увязают и медленно реагируют, то посмотрите вERDDAP?log.txt файлпосмотреть, что происходит.

Также полезно просто отметить, как быстро реагирует страница статуса. Если он реагирует медленно, это важный показатель.ERDDAP™Очень занят.

  • МониторERDDAP™черезЕжедневный отчетЭлектронная почта.  
  • Следите за устаревшими наборами данных через основание /erddap/outOfDateDatasets.htmlвеб-страница, которая основана на опциональномtestOutOfDateГлобальный атрибут.  

Внешние мониторы

Методы, перечисленные выше, являютсяERDDAPСпособы самоконтроля. Вы также можете создавать или использовать внешние системы для мониторинга.ERDDAP. Один из проектов, чтобы сделать этоПроект erddap-метрики Axiom. Такие внешние системы имеют ряд преимуществ:

  • Они могут быть настроены для предоставления необходимой вам информации, отображаемой так, как вы хотите.
  • Они могут включать информацию оERDDAP™этоERDDAP™не может получить доступ легко или вообще (например, использование процессора, дискового пространства);ERDDAP™время отклика, как видно с точки зрения пользователя,ERDDAP™безотказный
  • Они могут предупреждать (электронные письма, телефонные звонки, тексты) администраторам, когда проблемы превышают определенный порог.  

Несколько одновременных Запросы

  • Пользователи черного списка делают несколько одновременных запросов! Если понятно, что какой-то пользователь делает более одного одновременного запроса, многократно и непрерывно, то добавьте свой IP-адрес кERDDAP[<Черный список>> (/docs/server-admin/datasets#requestblacklist) в твоемdatasets.xmlФайл. Иногда все запросы поступают с одного IP-адреса. Иногда они от нескольких IP-адресов, но явно одного и того же пользователя. Вы также можете занести в черный список людей, делающих тонны недействительных запросов или тонны умопомрачительно неэффективных запросов.

Для каждой просьбы, которую они делают,ERDDAP™Возврат:

HTTP ERROR 403 - Access Forbidden --
Your IP address is on this ERDDAP's request blacklist.
Did you often submit more than one request at a time?
Did you often submit identical requests in a short period of time?
Did you submit a large number of invalid requests?
If you are ready to avoid these problems, please email \[ERDDAP™ administrator's email address\] to request to be taken off of the blacklist.

Надеемся, что пользователь увидит это сообщение и свяжется с вами, чтобы узнать, как исправить проблему и выйти из черного списка. Иногда они просто переключают IP-адреса и пытаются снова.

Это как баланс сил между наступательным и оборонительным оружием в войне. Здесь оборонительное оружие (ERDDAP) имеют фиксированную емкость, ограниченную количеством ядер в процессоре, пропускной способностью дискового доступа и пропускной способностью сети. Но наступательное оружие (Пользователи, особенно скрипты) Неограниченные возможности:

  • Один запрос данных из многих временных точек может привести кERDDAPЧтобы открыть огромное количество файлов (в последовательности или частично многопоточной) . В крайних случаях один «простой» запрос может легко связать RAID, прилагаемый к нему.ERDDAP™на минуту, эффективно блокируя обработку других запросов.  
  • Один запрос может потреблять большую часть памяти. (Даже еслиERDDAP™кодируется для минимизации памяти, необходимой для обработки больших запросов;) .  
  • Параллельность - Умному пользователю легко распараллеливать большую задачу, генерируя множество потоков, каждый из которых отправляет отдельный запрос. (который может быть большим или маленьким) . Это поведение поощряется сообществом компьютерных наук как эффективный способ решения большой проблемы. (Параллелизм эффективен в других ситуациях.) . Возвращаясь к военной аналогии: пользователи могут делать практически неограниченное количество одновременных запросов, при этом стоимость каждого из них практически равна нулю.ERDDAP™Они могут быть большими иERDDAPСпособность реагировать конечна. Очевидно,ERDDAP™Мы проиграем эту битву, еслиERDDAP™Администратор заносит в черный список пользователей, которые делают несколько одновременных запросов, которые несправедливо вытесняют других пользователей.  
  • Несколько сценариев - Теперь подумайте о том, что происходит, когда несколько умных пользователей запускают параллельные сценарии. Если один пользователь может генерировать так много запросов, что другие пользователи вытеснены, то несколько таких пользователей могут генерировать так много запросов.ERDDAP™становится перегруженным и, казалось бы, не реагирующим. Фактически это aDDoS атакаЕдинственная защита дляERDDAP™В черный список попадают пользователи, делающие несколько одновременных запросов, которые несправедливо вытесняют других пользователей.  
  • Завышенные ожидания - В этом мире крупных технологических компаний (Amazon, Google, Facebook...) Пользователи ожидают от провайдеров практически неограниченных возможностей. Поскольку эти компании зарабатывают деньги, чем больше у них пользователей, тем больше у них доходов для расширения своей ИТ-инфраструктуры. Таким образом, они могут позволить себе огромную ИТ-инфраструктуру для обработки запросов. И они хитро ограничивают количество запросов и стоимость каждого запроса от пользователей, ограничивая типы запросов, которые пользователи могут сделать, чтобы ни один запрос не был обременительным, и никогда нет причины. (или способ) Пользователи могут делать несколько одновременных запросов. Таким образом, эти огромные технологические компании могут иметь гораздо больше пользователей, чем другие.ERDDAP™Но у них гораздо больше ресурсов и хитрых способов ограничить запросы от каждого пользователя. Это управляемая ситуация для крупных ИТ-компаний. (И они становятся богатыми!) но не дляERDDAP™Установки. Единственная защита дляERDDAP™В черный список попадают пользователи, делающие несколько одновременных запросов, которые несправедливо вытесняют других пользователей.  

Не делайте несколько одновременных запросов, иначе вы попадете в черный список!  

Очевидно, что лучше всего, если на вашем сервере много ядер, много памяти. (Вы можете выделить много памяти дляERDDAP™Больше, чем когда-либо нужно) и высокая пропускная способность интернет-соединения. Память редко или никогда не является ограничивающим фактором, но пропускная способность сети становится более распространенным ограничивающим фактором. В основном, по мере того, как появляется все больше и больше одновременных запросов, скорость для любого пользователя уменьшается. Это, естественно, замедляет количество поступающих запросов, если каждый пользователь отправляет только один запрос за раз.

ERDDAP™Получение данных из THREDDS

Если выERDDAP™получает часть своих данных из THREDDS на вашем сайте, есть некоторые преимущества для создания копии файлов данных THREDDS (По крайней мере, для самых популярных наборов данных) на другой рейд, чтоERDDAP™иметь доступ к такимERDDAP™Они могут передавать данные из файлов напрямую. вERDМы делаем это для наших самых популярных наборов данных.

  • ERDDAP™Вы можете получить данные напрямую, и вам не придется ждать, пока THREDDS перезагрузит набор данных.
  • ERDDAP™Вы можете сразу заметить и включить новые файлы данных, поэтому вам не нужно часто приставать к THREDDS, чтобы увидеть, изменился ли набор данных. Смотри.<Обновление EveryNMillis (/docs/server-admin/datasets#updateeverynmillis) .
  • Загрузка разделена между 2 RAIDS и 2 серверами, вместо того, чтобы запрос был жестким для обоих.ERDDAP™и др.
  • Вы избегаете проблемы несоответствия, вызванной тем, что у THREDDS есть небольшая проблема. (по умолчанию) Максимальный размер запроса.ERDDAP™У вас есть система для устранения несоответствия, но лучше избегать проблемы.
  • У вас есть резервная копия данных, что всегда является хорошей идеей.

В любом случае, никогда не запускайте THREDDS иERDDAP™В том же Томке. Запустите их в отдельных Tomcats, или лучше, на отдельных серверах.

Мы обнаруживаем, что THREDDS периодически попадает в состояние, когда запросы просто висят. Если выERDDAP™получает данные от THREDDS, и THREDDS находится в этом состоянии,ERDDAP™Имеет защиту (В нем говорится, что набор данных на основе THREDDS недоступен.) Но это все равно неприятно дляERDDAP™Потому чтоERDDAP™Приходится ждать тайм-аута каждый раз, когда он пытается перезагрузить набор данных с подвешенных THREDDS. Некоторые группы (включаяERD) Избегайте этого, активно перезагружая THREDDS (Например, ночная работа в кроне) .

Медленно ответить

  • ЕслиERDDAP™Медленно реагирует Если только некоторые запросы будут реагировать медленно, Вы можете выяснить, является ли медлительность разумной и временной. (Например, из-за большого количества запросов от скриптов илиWMSпользователи) Или, если что-то необъяснимо неправильно, и вы должныОтключить и перезапустить Tomcat иERDDAP™.

ЕслиERDDAP™медленно реагирует, см. ниже советы, чтобы определить причину, которая, надеюсь, позволит вам решить проблему. У вас может быть определенная отправная точка. (Например, URL конкретного запроса) или расплывчатая отправная точка (например,ERDDAP™медленный) . Вы можете знать, что пользователь (Например, потому что они написали вам) Или нет. У вас могут быть другие подсказки или нет. Поскольку все эти ситуации и все возможные причины проблем размываются вместе, нижеприведенный совет пытается решить все возможные отправные точки и все возможные проблемы, связанные с медленными ответами.

  • Ищите подсказки вERDDAPФайл журнала ( BigParent Директория /logs/log.txt) . \[В редких случаях есть подсказки вФайл журнала Tomcat ( кот /logs/catalina.out) .\]
    Ищите сообщения об ошибках Ищите большое количество запросов от одного (или несколько) Пользователей и, возможно, завладеть большим количеством ресурсов вашего сервера. (память, время процессора, доступ к диску, пропускная способность интернета) .

Если проблема связана с один пользователь Вы часто можете получить представление о том, кто является пользователем через веб-сервисы. https://whatismyipaddress.com/ip-lookup которые могут предоставить вам информацию, связанную с IP-адресом пользователя (которые вы можете найти вERDDAP?log.txtфайл) .

  • Если пользователю кажется, что бот плохо себя вести (В частности, поисковая система, пытающаяся заполнитьERDDAP™формы со всеми возможными перестановками входных значений) Убедитесь, что вы правильно настроили свой серверrobots.txtФайл.
  • Если пользователю кажется, что **сценарий (s) ** Выполняя несколько одновременных запросов, свяжитесь с пользователем, объясните, чтоERDDAP™ограниченные ресурсы (Например, память, время процессора, доступ к диску, пропускная способность Интернета) И попросите их быть внимательными к другим пользователям и просто сделать один запрос за раз. Вы также можете упомянуть, что вы занесете их в черный список, если они не отступят.
  • Если пользователю кажется, что сценарий Делая большое количество трудоемких запросов, попросите пользователя быть внимательным к другим пользователям, поставив небольшую паузу. (2 секунды?) В сценарии между запросами.
  • WMSклиентское программное обеспечение Может быть очень требовательным. Один клиент часто запрашивает 6 пользовательских изображений одновременно. Если пользователю кажется, чтоWMSКлиент, который делает законные запросы, может:
  • Не обращай внимания. (Рекомендовано, потому что они будут двигаться довольно скоро.)
  • Выключите свой серверWMSСервис черезERDDAPфайл setup.html. (не рекомендуется)
  • Если запросы кажутся глупый, безумный, чрезмерный или злобный, или если вы не можете решить проблему каким-либо другим способом, подумайте о временном или постоянном добавлении IP-адреса пользователя.<Черный список> в вашемdatasets.xmlфайл (/docs/server-admin/datasets#requestblacklist) .  
  • Попробуйте продублировать проблему самостоятельно, с вашего компьютера.
    Выясните, есть ли проблема с одним набором данных или всеми наборами данных, для одного пользователя или для всех пользователей, для определенных типов запросов и т. Д. Если вы можете продублировать проблему, попробуйте сузить проблему. Если вы не можете продублировать проблему, то проблема может быть связана с компьютером пользователя, интернет-соединением пользователя или интернет-соединением вашего учреждения.  
  • Если бы только один набор данных Медленно реагирует (Возможно, только для Один тип запроса от одного пользователя) Проблема может быть:
    • ERDDAPДоступ к исходным данным набора данных (В частности, из реляционных баз данных, Кассандра и удаленных наборов данных.) Это может быть временно или постоянно медленно. Проверьте скорость источника независимо отERDDAP. Если это медленно, вы можете улучшить его.
    • Связана ли проблема с конкретным запросом или общим типом запроса? Чем больше запрашиваемое подмножество набора данных, тем больше вероятность того, что запрос потерпит неудачу. Если пользователь делает огромные запросы, попросите пользователя сделать меньшие запросы, которые с большей вероятностью получат быстрый и успешный ответ.

Почти все наборы данных лучше обрабатывают некоторые типы запросов, чем другие типы запросов. Например, когда набор данных хранит разные части времени в разных файлах, запросы на данные из огромного количества точек времени могут быть очень медленными. Если текущие запросы имеют сложный тип, рассмотрите возможность предоставления варианта набора данных, оптимизированного для этих запросов. Или просто объясните пользователю, что этот тип запроса является трудным и трудоемким, и попросите его терпения.

  • Набор данных может быть не оптимально настроен. Вы можете внести изменения в набор данныхdatasets.xmlКусок, чтобы помочьERDDAP™Лучше обрабатывать набор данных. Например,

    • EDDGridНаборы данных из NcFiles, которые получают доступ к данным из сжатых файлов nc4/hdf5, медленны при получении данных для всего географического диапазона. (Например, для карты мира) Все файлы должны быть декомпрессированы. Вы можете конвертировать файлы в несжатые файлы, но тогда потребность в дисковом пространстве будет намного больше. Вероятно, лучше просто принять, что такие наборы данных будут медленными при определенных обстоятельствах.
    • Конфигурация []<subsetVariables> (/docs/server-admin/datasets#subsetvariables) Тэг оказывает огромное влияние на то, какERDDAP™Обрабатывает EDDTable наборы данных.
    • Вы можете увеличитьСкорость EDDTable FromDatabaseнабор данных.
    • Многие наборы данных EDDTable могут быть ускореныхранить копию данных вNetCDFФайлы Ragged ArrayкоторыйERDDAP™Можно читать очень быстро.

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

  • Если все вERDDAP™это всегда Медленно, проблема может быть:
    • Компьютер, который работаетERDDAP™Может не хватать памяти или вычислительной мощности. Хорошо бегатьERDDAP™на современном многоядерном сервере. Для интенсивного использования сервер должен иметь 64-разрядную операционную систему и 8 ГБ или более памяти.
    • Компьютер, который работаетERDDAP™Также могут быть запущены другие приложения, которые потребляют много системных ресурсов. Если это так, вы можете получить выделенный сервер дляERDDAP? Например, (Это не одобрение) Вы можете получить четырехъядерный Mac Mini Server с 8 ГБ памяти за ~ 1100 долларов.  
  • Если все вERDDAP™это временно Медленно, смотритеERDDAP? /erddap/status.htmlстраница в вашем браузере.
    • Делает этоERDDAP™Статус страницы не загружается? Если да,возобновитьERDDAP™.
    • Сделал этоERDDAP™Статус страницы загружается медленно (Например, >5 секунд) ? Это признак того, что все вERDDAP™Бежит медленно, но это не обязательно проблема.ERDDAP™Может быть, просто очень занят.
    • "Ответ неудавшегося времени" (Последний крупный набор данных LoadDatasets) ", n = большое число? Это говорит о том, что в последнее время было много неудачных запросов. Это может быть проблемой или началом проблемы. Среднее время неудач часто велико. (например, 210000 мс) , Это означает, что были (Правда?) Много активных нитей. Которые привязывали много ресурсов (как память, открытые файлы, открытые розетки,) , Что не очень хорошо.
    • За "Ответ Успешное Время" (Последний крупный набор данных LoadDatasets) ", n = большое число? Это говорит о том, что в последнее время было много успешных запросов. Это не проблема. Это просто означает вашERDDAP™Получает интенсивное использование.
    • Является ли «Количество потоков, не ожидающих Томка», двойным типичным значением? Это часто является серьезной проблемой, которая может привести кERDDAP™Притормозить и в конце концов замерзнуть. Если это продолжается в течение нескольких часов, вы можете захотеть проактивно.возобновитьERDDAP™.
    • В нижней части списка «Сводка использования памяти» последнее значение «Память: в настоящее время использование» очень высокое? Это может просто указывать на высокое использование, или это может быть признаком проблемы.
    • Посмотрите на список нитей и их статус. Многие ли из них делают что-то необычное?  
  • это Интернет-соединение вашего учреждения Сейчас медленно? Ищите в Интернете «тест скорости интернета» и используйте один из бесплатных онлайн-тестов. https://www.speakeasy.net/speedtest/ . Если подключение к Интернету вашего учреждения медленное, то соединения междуERDDAP™удаленные источники данных будут медленными, а соединения между ними будутERDDAP™Пользователь будет медленным. Иногда вы можете решить эту проблему, прекратив ненужное использование Интернета. (Например, люди, которые смотрят потоковое видео или на видеоконференции) .  
  • это Интернет-соединение пользователя Сейчас медленно? Попросите пользователя найти в Интернете «тест скорости интернета» и использовать один из бесплатных онлайн-тестов, таких как: https://www.speakeasy.net/speedtest/ . Если интернет-соединение пользователя медленное, оно замедляет его доступ к интернету.ERDDAP. Иногда они могут решить эту проблему, прекратив ненужное использование Интернета в своем учреждении. (Например, люди, которые смотрят потоковое видео или на видеоконференции) .  
  • Застрял?
    Увидеть нашРаздел о дополнительной поддержке.

Закрыть и перезапустить

  • Как закрыть и перезапустить TomcatERDDAP™
    Вам не нужно закрывать и перезапускать Tomcat.ERDDAPеслиERDDAP™временно медленно, медленно по какой-то известной причине (Как и множество запросов от скриптов илиWMSпользователи) или вносить изменения вdatasets.xmlФайл.

Вам нужно закрыть и перезапустить Tomcat иERDDAP™если вам необходимо внести изменения в файл setup.xml илиERDDAP™Зависает, зависает или запирается. В экстремальных обстоятельствах,JavaМожет замерзнуть на минуту или две, пока он делает полный сбор мусора, но затем восстанавливается. Поэтому лучше подождать минуту или две, чтобы увидеть,Java/ERDDAP™Он действительно заморожен или просто собирает большой мусор. (Если сбор мусора является общей проблемой,Выделите больше памяти Tomcat.)

Я не рекомендую использовать Tomcat Web Application Manager для запуска или отключения Tomcat. Если вы не полностью отключите и не запустите Tomcat, рано или поздно у вас будут проблемы с памятью PermGen.

Отключить и перезапустить TomcatERDDAP:

  • Если вы используете Linux или Mac: (Если вы создали специального пользователя для запуска Tomcat, например, Tomcat, не забудьте выполнить следующие действия в качестве этого пользователя.)
     
    1. Используйте CD кот бин  
    2. Используйте ps -ef|grep tomcat для поиска процесса java/tomcat ID (Будем надеяться, что будет перечислен только один процесс.) который мы будем называть javaProcessID ниже.  
    3. ЕслиERDDAP™Заморожено/заперто/заперто, используйте kill -3 javaProcessID рассказыватьJava (Кто управляет Tomcat) Чтобы сделать сброс потока в файл журнала Tomcat: кот /logs/catalina.out. После перезагрузки вы можете диагностировать проблему, найдя информацию о сбросе потока (и любую другую полезную информацию выше) в кот /logs/catalina.out, а также путем чтения соответствующих частейERDDAP™архив. Если вы хотите, вы можете включить эту информацию и посмотреть нашуРаздел о дополнительной поддержке.  
    4. Используйте ./shutdown. рубить  
    5. Используйте ps -ef|Неоднократно греп томкэт до тех пор, пока процесс java/tomcat не будет указан.

Иногда процесс Java/tomcat занимает до двух минут. Причина в следующем:ERDDAP™Он посылает сообщение своим фоновым потокам, чтобы сказать им остановиться, но иногда требуется много времени, чтобы добраться до хорошего места остановки.

  1. Если через минуту или около того, java/tomcat не останавливается сам по себе, вы можете использовать Убить -9 javaProcessID
    Заставить процесс Java/tomcat немедленно прекратиться. Если возможно, используйте это только в крайнем случае. Переключатель -9 мощный, но может вызвать различные проблемы.  
  2. ПерезапуститьERDDAP™Использовать ./startup.sh  
  3. ПосмотретьERDDAP™В вашем браузере проверить, что перезагрузка удалась. (Иногда нужно подождать 30 секунд и попытаться загрузиться.ERDDAP™Опять же в вашем браузере, чтобы он преуспел.)
     
  • Если вы используете Windows:  
    1. Используйте CD кот бин  
    2. Использоватьshutdown.bat
       
    3. Вы можете захотеть использовать диспетчер задач Windows (Доступно через Ctrl Alt Del) Чтобы гарантировать, чтоJava/Томкат/ERDDAP™Процесс/приложение полностью остановлено. Иногда процесс/приложение отключается на две минуты. Причина в следующем:ERDDAP™Он посылает сообщение своим фоновым потокам, чтобы сказать им остановиться, но иногда требуется много времени, чтобы добраться до хорошего места остановки.  
    4. ПерезапуститьERDDAP™Скачать Startup.bat  
    5. ПосмотретьERDDAP™В вашем браузере проверить, что перезагрузка удалась. (Иногда нужно подождать 30 секунд и попытаться загрузиться.ERDDAP™Опять же в вашем браузере, чтобы он преуспел.)
       

Частые сбои или заморозки

ЕслиERDDAP™Становится медленно, падает или замерзает, что-то не так. Посмотри.ERDDAPФайл журналаЧтобы попытаться выяснить причину. Если вы не можете, пожалуйста, укажите детали и посмотрите нашРаздел о дополнительной поддержке.

Наиболее распространенной проблемой является проблемный пользователь, который запускает несколько сценариев одновременно и / или кто-то делает большое количество недействительных запросов. Если это произойдет, вы должны занести этого пользователя в черный список. Когда пользователь в черном списке делает запрос, сообщение об ошибке в ответе побуждает его отправить вам электронное письмо, чтобы решить проблемы. Затем вы можете побудить их запускать только один сценарий за раз и исправлять проблемы в своем сценарии. (Например, запрос данных из удаленного набора данных, который не может ответить до истечения времени) . Смотри.<Черный список> в вашемdatasets.xmlфайл (/docs/server-admin/datasets#requestblacklist) .

В экстремальных обстоятельствах,JavaМожет замерзнуть на минуту или две, пока он делает полный сбор мусора, но затем восстанавливается. Поэтому лучше подождать минуту или две, чтобы увидеть,Java/ERDDAP™Он действительно заморожен или просто собирает большой мусор. (Если сбор мусора является общей проблемой,Выделите больше памяти Tomcat.)

ЕслиERDDAP™Он становится медленным или замерзает, и проблема не является проблемным пользователем или длинной сборкой мусора.возобновлениеERDDAP™. Мой опыт показывает, чтоERDDAP™Они могут работать в течение нескольких месяцев без необходимости перезапуска.  

Монитор

Вы можете следить за своимERDDAPСтатус, глядя на/erddap/status.htmlстраницаОсобенно статистика в верхнем разделе. ЕслиERDDAP™Он становится медленным или замораживается, и проблема заключается не только в чрезмерно интенсивном использовании, вы обычно можете решить проблему.возобновлениеERDDAP™. Есть дополнительные метрики, доступные через интеграцию Prometheus в /erddap/метрики.

Мой опыт показывает, чтоERDDAP™Они могут работать в течение нескольких месяцев без необходимости перезапуска. Вам нужно только перезапустить его, если вы хотите применить некоторые изменения, которые вы внесли.ERDDAPSetup.xml или когда вам нужно установить новые версииERDDAP™,JavaTomcat или операционная система. Если вам нужно перезапуститьERDDAP™Часто что-то не так. Посмотри.ERDDAPФайл журналаЧтобы попытаться выяснить причину. Если вы не можете, пожалуйста, укажите детали и посмотрите нашРаздел о дополнительной поддержке. В качестве временного решения вы можете попробовать использоватьМонитследить за своимERDDAP™Перезагрузите его, если это необходимо. Или вы можете сделать крон работу, чтобы перезапуститьERDDAP™ (активно) периодически. Может быть немного сложно написать сценарий для автоматизации мониторинга и перезапуска.ERDDAP. Некоторые советы, которые могут помочь:

  • Вы можете упростить тестирование, если процесс Tomcat все еще работает, используя переключатель -c с грэпом: ps -u кот Пользователь |грэп -c java Это уменьшит выход до «1», если процесс томка все еще жив, или «0», если процесс остановился.  
  • Если вы хорошо разбираетесь в gawk, вы можете извлечь процессID из результатов ps -u кот Пользователь |grep java и используйте processID в других строках сценария.  

Если вы настроите Monit или работу cron, было бы здорово, если бы вы могли поделиться подробностями, чтобы другие могли извлечь выгоду из нашей работы.Раздел о дополнительной поддержкеГде вы можете поделиться.

Пермген

Если вы используете Tomcat Manager для перезагрузки (или остановиться и начать) ERDDAP™,ERDDAP™Может не запустить и бросить java.lang. Ошибка OutOfMemory: PermGen Решение состоит в том, чтобы периодически (Или каждый раз?) закрыть и перезапустить Tomcat иERDDAP™Вместо простого перезарядкиERDDAP. \[Обновление: Эта проблема была сведена к минимуму или решена вERDDAP™Версия 1.24.\]
 

Лог

  • log.txt
    ЕслиERDDAP™не запускается или если что-то работает не так, как ожидалось, очень полезно посмотреть на ошибки и диагностические сообщенияERDDAP™Файл журнала.
  • Файл журнала является BigParent Директория /logs/log.txt ( BigParent Директория указывается вНастройка.xml) . Если нет бревна. Файл txt или журнал. Файл txt не обновлялся с момента перезагрузкиERDDAP™Посмотри вФайлы журнала TomcatПроверьте, есть ли там сообщение об ошибке.
  • Виды диагностических сообщений в файле журнала:
    • Слово «ошибка» используется, когда что-то пошло не так, что процедура не была завершена. Хотя это раздражает, чтобы получить ошибку, ошибка заставляет вас иметь дело с проблемой. Мы думаем, что лучше ошибиться, чем иметьERDDAP™Двигайтесь, работая так, как вы не ожидали.
    • Слово «предупреждение» используется, когда что-то пошло не так, но процедуру удалось завершить. Они довольно редкие.
    • Все остальное — лишь информативное сообщение. Вы можете контролировать, сколько информации зарегистрировано [<logLevel> (/docs/server-admin/datasets#loglevel) datasets.xml.
    • Перезагрузка набора данных и ответы пользователей, которые занимают более 10 секунд (успешно или безуспешно) Помечены " (>10s!) ". Таким образом, вы можете искать файл log.txt для этой фразы, чтобы найти наборы данных, которые медленно перезагружались, или количество запросов, которые медленно заканчивались. Затем вы можете посмотреть выше в файле log.txt, чтобы увидеть, что такое проблема набора данных или что такое запрос пользователя и от кого он был. Эти медленные нагрузки на набор данных и запросы пользователей иногда облагаются налогом.ERDDAP. Таким образом, знание этих запросов может помочь вам определить и решить проблемы.
  • Информация записывается в файл журнала на дисководе в довольно больших кусках. Преимущество в том, что это очень эффективно -ERDDAP™Никогда не будет блокировать ожидание информации, которая будет записана в файл журнала. Недостатком является то, что журнал почти всегда заканчивается частичным сообщением, которое не будет завершено, пока не будет написан следующий фрагмент. Вы можете сделать его современным (На мгновение) Посмотреть свойERDDAPСтатус страницы в https://your.domain.org/erddap/status.html (илиhttp://еслиhttpsне включен) .
  • Когда файл log.txt достигает 20 МБ, Файл переименован в log. txt.previous и новый файл log.txt. Файлы журналов не накапливаются.

В setup.xml вы можете указать другой максимальный размер файла журнала в MegaBytes. Разрешенный минимум 1 (МБ) . Максимально допустимый 2000 (МБ) . По умолчанию 20 (МБ) . Например:

        <logMaxSizeMB>20</logMaxSizeMB>
  • Всякий раз, когда вы перезагружаетесьERDDAP™, ERDDAP™делает архивную копию log.txt и log. txt.предыдущие файлы с отметкой времени в имени файла. Если перед перезагрузкой возникли проблемы, может быть полезно проанализировать эти архивные файлы для подсказок о том, что было проблемой. Вы можете удалить архивные файлы, если они больше не нужны.  
Парсинг log.txt

ERDDAPЖурнал. Файл txt не предназначен для анализа (Вы можете создавать регулярные выражения, которые извлекают желаемую информацию.) . Он предназначен для того, чтобы помочь человеку понять, что идет не так, когда что-то идет не так. Когда вы отправляете сообщение об ошибке или проблемеERDDAP™Разработчики, когда это возможно, пожалуйста, включите всю информацию из файла log.txt, связанную с неприятным запросом.

По соображениям эффективности,ERDDAP™записывает информацию только для регистрации. txt после накопления большого объема информации. Так что, если вы посетите журнал. После того, как произошла ошибка, информация, связанная с ошибкой, может еще не быть записана на log.txt. Чтобы получить актуальную информацию от log.txt, посетите свой сайт.ERDDAP?status.html. КогдаERDDAP™Процессы, которые запрашивают, смывают всю ожидающую информацию на log.txt.

ДляERDDAP™Статистика использования, пожалуйста, используйтеApache и/или файлы журналов Tomcatвместо того, чтобыERDDAPlog.txt. Обратите внимание, чтоERDDAP?status.html (некоторые) иЕжедневный отчет (больше) У вас есть большое количество предварительно рассчитанной статистики использования.

Логотип Tomcat

ЕслиERDDAP™Не запускается, потому что ошибка произошла очень рано.ERDDAPСтартап, сообщение об ошибке появится в файлах журнала Tomcat ( кот /logs/Каталина. сегодня .log или кот /logs/catalina.out) не вERDDAPфайл log.txt.

Статистика использования: Для большей части информации, которую люди хотят собрать из файла журнала (Например, статистика использования) Пожалуйста, используйте файлы журналов Apache и/или Tomcat. Они хорошо отформатированы и имеют такую информацию. Существует множество инструментов для их анализа, например:AWStats,Оригинальное название: ElasticSearch's KibanaиJMeterНо ищите в Интернете, чтобы найти правильный инструмент для ваших целей.

Обратите внимание, что файлы журналов идентифицируют пользователей только как IP-адреса. Есть веб-сайты, которые помогут вам получить информацию, связанную с данным IP-адресом, например,Что такое MyIPAddressОбычно вы не можете найти имя пользователя.

Кроме того, из-заДГКПIP-адрес данного пользователя может отличаться в разные дни, или разные пользователи могут иметь один и тот же IP-адрес в разное время.

Кроме того, вы можете использовать что-то вродеGoogle Analytics. Но будьте осторожны: когда вы используете внешние сервисы, такие как Google Analytics, вы отказываетесь от конфиденциальности своих пользователей, предоставляя Google полный доступ к их активности на вашем сайте. (и другие?) Он может храниться вечно и использоваться для любых целей. (Возможно, не технически, но на практике.) . Ваши пользователи не согласились на это и, вероятно, не знают, что они будут отслеживаться на вашем веб-сайте, так же как они, вероятно, не знают о степени их отслеживания почти на всех веб-сайтах. В наши дни многие пользователи очень обеспокоены тем, что все, что они делают в Интернете, контролируется этими крупными компаниями. (Google, Facebook и т.д.) и правительством, и найти это необоснованное вторжение в их жизнь (Как в книге, 1984) . Это заставило многих пользователей устанавливать такие продукты, какКонфиденциальность BadgerЧтобы минимизировать отслеживание, использовать альтернативные браузеры, такие какTor Браузер (Отключить отслеживание в традиционных браузерах) и использовать альтернативные поисковые системы, такие какДак Дак Го. Если вы используете такую услугу, как Google Analytics, пожалуйста, задокументируйте ее использование и последствия, изменив<StandardPrivacyPolicy> Tag inERDDAP? \[кот\]/webapps/erddap/WEB-INF/classes/gov/noaa/pfel/erddap/util/messages.xml файл.

Электронная почта

  • emailLogYEAR-MM-DD.txt
    ERDDAP™всегда пишет текст всех текущих сообщений электронной почты в электронной почте текущего дня LogYEAR-MM-DD.txt файл BigParent Директория /logs ( BigParent Директория указывается вНастройка.xml) .
  • Если сервер не может отправлять сообщения электронной почты, или если вы настроилиERDDAP™Чтобы не отправлять сообщения электронной почты, или если вам просто любопытно, этот файл является удобным способом увидеть все сообщения электронной почты, которые были отправлены.
  • Вы можете удалить файлы журнала электронной почты предыдущих дней, если они больше не нужны.  

Ежедневный отчет

Ежедневный отчет содержит много полезной информации - всю информацию, полученную от вас.ERDDAP?/erddap/status.htmlстраницаи многое другое.

  • Это наиболее полное резюме вашегоERDDAPСтатус.
  • Среди других статистических данных он включает в себя список наборов данных, которые не загружались, и исключения, которые они генерировали.
  • Он генерируется, когда вы начинаетеERDDAP™ (только послеERDDAP™Заканчивается попытка загрузить все наборы данных) и генерируется вскоре после 7 утра по местному времени каждое утро.
  • Всякий раз, когда он создается, он записывается вERDDAPфайл log.txt.
  • Всякий раз, когда он генерируется, он отправляется по электронной почте.<emailDailyReportsTo> и<Электронная почта Все Чтобы (которые указаны вНастройка.xml) Если вы создали систему электронной почты (в setup.xml) .

Страница статуса

Вы можете посмотреть статус своегоERDDAP™Из любого браузера, перейдя в<Базовый URL/erddap/status.html

  • Эта страница генерируется динамически, поэтому она всегда имеет актуальную статистику для вашего сайта.ERDDAP.
  • Он включает в себя статистику по количеству запросов, использованию памяти, следам стека потоков, задачеThread и т. Д.
  • Поскольку Страница Статуса может быть просмотрена кем угодно, она не содержит столько информации, сколько вы можете найти.Ежедневный отчет.  

Добавление/изменение наборов данных

ERDDAP™обычно перечитываютdatasets.xmlкаждый Обсуждение DatasetsMinMinutes (указанный вНастройка.xml) . Вы можете внести изменения вdatasets.xmlВ любое время, даже еслиERDDAP™Бежит. Новый набор данных будет обнаружен в ближайшее время, как правило, внутри Обсуждение DatasetsMinMinutes . Измененный набор данных будет перезагружен, когда он будет Скачать EveryNMinutes старый (как указано вdatasets.xml) .

Флаг

  • Флаг ФайлСказкиERDDAP™Как можно скорее перезагрузить набор данных

  • ERDDAP™не заметит никаких изменений в настройках набора данных вdatasets.xmlдоERDDAP™Перезагружает набор данных.  

  • РассказатьERDDAP™как можно скорее перезагрузить набор данных (до того, как набор данных<reloadEveryNMinutes> приведет к его перезагрузке, поместите файл в BigParent Директория флаг ( BigParent Директория указывается вНастройка.xml) имеет то же название, что и набор данныхdatasetID. Это говоритERDDAP™Попробуйте перезагрузить этот набор данных как можно скорее. Старая версия набора данных будет оставаться доступной для пользователей до тех пор, пока новая версия не будет доступна и не будет заменена атомарно. ДляEDDGridИз материалов и EDDTable Из файлов набор данных для перезагрузки будет искать новые или измененные файлы, читать их и включать их в набор данных. Время перезагрузки зависит от количества новых или измененных файлов. Если набор данных активен = "ложный",ERDDAP™Мы удалим набор данных.  

Флаг Bad Files
  • Одним из вариантов каталога /flag является каталог /badFilesFlag. (Добавлено вERDDAP™v2.12.)
    Если вы поместите файл в BigParent Директория /badFilesFlag каталог сdatasetIDкак имя файла (Содержимое файла не имеет значения) Затем, как толькоERDDAP™Посмотреть BadFiles Флаговое досье,ERDDAP™будет:

    1. Удалите файл BadFilesFlag.
    2. Удалить BadFiles.ncфайл (Если есть один) , который имеет список плохих файлов для этого набора данных. Для наборов данных какEDDGridSideBySide, у которого есть наборы данных для детей, также удаляет плохие файлы.ncФайл для всех детских наборов данных.
    3. Перезагрузите набор данных как можно скорее.

Таким образом, это вызываетERDDAP™Чтобы попытаться снова работать с файлами, которые были ранее (Ошибочно?) отмечен как плохой.  

Жесткий флаг
  • Другим вариантом каталога /flag является каталог /hardFlag. (Добавлено вERDDAP™v1.74.)
    Если вы поместите файл в BigParent Директория /Флаг с аdatasetIDкак имя файла (Содержимое файла не имеет значения) Затем, как толькоERDDAP™Видеть тяжелое Флаговое досье,ERDDAP™будет:

    1. Удалите файл hardFlag.
    2. Удалить набор данных изERDDAP.
    3. Удалить всю информацию, котораяERDDAP™Сохранил об этом наборе данных. ДляEDDGridИз материалов и EDDTable Из подклассов файлов это удаляет внутреннюю базу данных файлов данных и их содержимое. Для наборов данных какEDDGridSideBySide также удаляет внутреннюю базу данных файлов данных и их содержимое для всех наборов данных детей.
    4. Перезагрузите набор данных. ДляEDDGridИз материалов и EDDTable Из материалов подклассов это вызываетERDDAP™перечитать все Файлы данных. Таким образом, время перезагрузки зависит от общего количества файлов данных в наборе данных. Потому что набор данных был удален изERDDAP™Когда жесткий флаг был замечен, набор данных будет недоступен до тех пор, пока набор данных не завершит перезагрузку. Будь терпелив. Посмотри в себя.log.txtФайл, если хочешь посмотреть, что происходит.

Вариант жесткого флага удаляет сохраненную информацию набора данных, даже если набор данных в настоящее время не загружается.ERDDAP.

Жесткий Флаги очень полезны, когда вы делаете что-то, что вызывает изменения в том, как это сделать.ERDDAP™считывает и интерпретирует исходные данные, например, при установке новой версииERDDAP™или когда вы внесли изменения в определение набора данных вdatasets.xml

  • Содержимое флага, BadFilesFlag и файлы hardFlag не имеют значения.ERDDAP™Просто посмотрите на имя файла, чтобы получитьdatasetID.  
  • Между основными перезагрузками набора данных,ERDDAP™Постоянно ищет файлы флага, badFilesFlag и hardFlag.  
  • Обратите внимание, что при перезагрузке набора данных все файлы в BigParent Директория /кэш/ datasetID Каталог удаляется. Это включает.ncФайлы изображений, которые обычно кэшируются в течение 15 минут.  
  • Обратите внимание, что если xml набора данных включаетАктивный = «ложный»Флаг сделает набор данных неактивным (Если он активен) В любом случае, не перезагружается.  
  • В любое времяERDDAP™запускает LoadDatasets для выполнения крупной перезагрузки (контролируемая по времени перезагрузка).<loadDatasetsMinMinutes>) или незначительная перезагрузка (В результате внешнего или внутреннего флага) ,ERDDAP™Читать все<decompressedCacheMaxGB>,<decompressedCacheMaxMinutesOld>,<Пользователь>,<Запросить Blacklist<Медленный DownTroubleMillis<подпискаEmailBlacklist> теги и переключатели на новые настройки. Вы можете использовать флаг, чтобы получитьERDDAP™Заметьте изменения в этих тегах как можно скорее.
Флаг набора данных
  • ERDDAP™Он имеет веб-сервис, который позволяет устанавливать флаги через URL.

    • Например, https://coastwatch.pfeg.noaa.gov/erddap/setDatasetFlag.txt?datasetID=rPmelTao&flagKey=123456789
      (Это фальшивый флаг. Ключ) Будет установлен флаг для набора данных rPmelTao.
    • Для каждого из них есть свой флаг.datasetID.
    • Администраторы могут видеть список URL-адресов флагов для всех наборов данных, глядя в нижней части ихЕжедневный отчетЭлектронная почта.
    • Администраторы должны рассматривать эти URL-адреса как конфиденциальные, поскольку они дают кому-то право сбрасывать набор данных по желанию.
    • Если вы думаете, что ключи от флага попали в руки того, кто их злоупотребляет, вы можете измениться.<flagKeyKey> вНастройка.xmlи возобновитьERDDAPпринуждатьERDDAP™Для создания и использования различных наборов flagKeys.
    • Если вы меняетесь<flagKeyKey>, удалить все старые подписки (Смотрите список в своем ежедневном отчете) Не забудьте отправить новые URL-адреса людям, которых вы хотите иметь.

Система флага может служить основой для более эффективного механизма передачи информации.ERDDAP™Когда перезагружать набор данных. Например, вы можете установить набор данных<Скачать EveryNMinutes в большом количестве (10080 = 1 неделя) . Когда вы знаете, что набор данных изменился (Возможно, потому что вы добавили файл в каталог данных набора данных.) Установите флаг так, чтобы набор данных был перезагружен как можно скорее. Флаги обычно видны быстро. Но если поток LoadDatasets уже занят, может пройти некоторое время, прежде чем он сможет действовать на флаге. Но система флага гораздо более отзывчива и намного эффективнее, чем настройка.<Перезагрузить EveryNMinutes в небольшое число.

Удаление наборов данных

Если данные активны вERDDAP™И вы хотите отключить его временно или навсегда:

  1. вdatasets.xmlДля набора данных, setАктивный = «ложный»в теге Dataset.
  2. ПодождиERDDAP™для удаления набора данных во время следующей крупной перезагрузки илиУстановить флагЧтобы набор данных сообщалERDDAP™Заметьте это изменение как можно скорее. Когда ты это делаешь,ERDDAP™не выбрасывает какую-либо информацию, которую он мог хранить о наборе данных, и, конечно, не делает ничего с фактическими данными.
  3. Затем вы можете оставить активный = "ложный" набор данных вdatasets.xmlили удалить его.  

Когда перезагружаются данные?

Поток, называемый RunLoadDatasets, является основным потоком, который контролирует перезагрузку наборов данных. Бежать Циклы данных навсегда:

  1. RunLoadDatasets отмечает текущее время.

  2. RunLoadDatasets запускает поток LoadDatasets для выполнения «основной нагрузки». Вы можете увидеть информацию о текущей / предыдущей основной нагрузке в верхней части вашего сайта.ERDDAP? /erddap/status.htmlстраница (Например,Пример страницы состояния) .

    1. LoadDatasets делает копиюdatasets.xml.
    2. LoadDatasets читается через копиюdatasets.xmlи для каждого набора данных видит, должен ли набор данных быть (повторять) заряжены или удалены.
      • Еслифлагфайл существует для этого набора данных, файл удаляется и набор данных удаляется, если активный = "ложный" или (повторять) Загрузка, если активна = "правда" (Независимо от возраста набора данных) .
      • Если часть набора данных dataset.xml активна = «ложная», и набор данных в настоящее время загружается (активный) , он разгружен (удалять) .
      • Если набор данных активен = «истинно», и набор данных еще не загружен, он загружен.
      • Если набор данных активен = «истинно» и набор данных уже загружен, набор данных перезагружается, если возраст набора данных (время с момента последней загрузки) Он больше, чем его<перезаряжать EveryNMinutes (По умолчанию 10080 минут) В противном случае набор данных остается один.
    3. LoadDatasets заканчивается.

Поток RunLoadDatasets ожидает окончания потока LoadDatasets. Если LoadDatasets занимает больше времени, чем loadDatasets Миннуты (как указано в setup.xml) RunLoadDatasets прерывает поток LoadDatasets. В идеале, LoadDatasets замечает прерывание и заканчивает. Но если он не заметит прерывание в течение минуты, RunLoadDatasets вызывает loadDatasets. останавливаться () , что нежелательно. 3. В то время как время с момента начала последней крупной загрузки меньше, чем загрузки Миннуты (как указано в setup.xml, например, 15 минут) RunLoadDatasets постоянно ищетфлагфайлы в BigParent Директория /Flag Directory. Если один или несколько файлов флага найдены, они удаляются, и RunLoadDatasets запускает поток LoadDatasets, чтобы сделать «minorLoad». (Ложь = Ложь) . Вы не можете видеть информацию о малой загрузке на вашем компьютере.ERDDAP?/erddap/status.htmlстраница.

  1. LoadDatasets делает копиюdatasets.xml.
  2. LoadDatasets читается через копиюdatasets.xmlДля каждого набора данных, для которого был файл флага:
    • Если часть набора данных dataset.xml активна = «ложная», и набор данных в настоящее время загружается (активный) , он разгружен (удалять) .
    • Если набор данных активен = «истинно», набор данных (повторять) Заряженный, независимо от возраста. Немаркированные наборы данных игнорируются.
  3. LoadDatasets заканчивается.
  4. Бежать Наборы данных возвращаются к шагу 1.

Примечания:

  • Стартап Когда вы перезагрузитесьERDDAP™Каждый набор данных с активным = "истинно" загружается.

  • Кэш Когда набор данных (повторять) Заряженный, его кэш (включая любые файлы ответа на данные и/или файлы изображений) Он опустошен.

  • Много наборов данных Если у вас много наборов данных и/или один или несколько наборов данных медленно (повторять) Загрузка, поток LoadDatasets может занять много времени, чтобы закончить свою работу, возможно, даже дольше, чем загрузка Минуты.

  • Один поток LoadDatasets Никогда не бывает более одного потока LoadDatasets, работающего одновременно. Если флаг установлен, когда LoadDatasets уже работает, флаг, вероятно, не будет замечен или действовать до тех пор, пока этот поток LoadDatasets не закончит работу. Вы можете сказать: "Это глупо. Почему бы вам просто не запустить кучу новых потоков для загрузки наборов данных? Но если у вас много наборов данных, которые получают данные с одного удаленного сервера, даже один поток LoadDatasets будет оказывать существенное давление на удаленный сервер. То же самое верно, если у вас много наборов данных, которые получают данные из файлов на одном RAID. Быстро уменьшаются доходы от наличия более одного потока LoadDatasets.

  • Флаг = быстро Установка флага просто сигнализирует о том, что набор данных должен быть (повторять) загружается как можно скорее, не обязательно сразу. Если поток LoadDatasets в настоящее время не запущен, набор данных начнет перезагружаться в течение нескольких секунд. Но если поток LoadDatasets в настоящее время работает, набор данных, вероятно, не будет перезагружен до тех пор, пока этот поток LoadDatasets не будет завершен.

  • Файл флага удален Если вы поместите файл флага в BigParent Директория каталог /erddap/flag (Посещение флага набора данных Url или размещение реального файла) Набор данных обычно перезагружается очень скоро после удаления файла флага.

  • Флаг против небольшой перезагрузки EveryNMinutes Если у вас есть какой-то внешний способ узнать, когда набор данных должен быть перезагружен, и если он удобен для вас, лучший способ убедиться, что набор данных всегда обновлен, - это установить его перезагрузку. Каждые минуты в большом количестве (10080?) Установить флаг (С помощью сценария?) Всякий раз, когда его нужно перезарядить. Это система, котораяEDDGridFromErddap и EDDTableFromErddap используют сообщения о необходимости перезагрузки набора данных.

  • Посмотреть log.txt Много соответствующей информации написано на BigParent Директория /logs/log.txt файл. Если дела идут не так, как вы ожидаете, посмотрите на журнал. txt позволяет диагностировать проблему, выясняя, что именноERDDAP™Правда.

    • Поиск «majorLoad=true» для начала основных потоков LoadDataset.

    • Поиск «majorLoad=false» для начала небольших потоков LoadDatasets.

    • Поиск заданного набора данныхdatasetIDДля информации о том, что это (повторять) загруженный или запрошенный.

       

Кэшированные ответы

В общем,ERDDAP™не кэширует (магазин) Ответы на запросы пользователей. Обоснование заключалось в том, что большинство запросов будут немного отличаться, поэтому кэш не будет очень эффективным. Самыми большими исключениями являются запросы на файлы изображений. (которые кэшируются, поскольку браузеры и программыGoogle EarthЧасто запрашивайте изображения) и просьбы о.ncфайлы (Потому что их нельзя создать на лету) .ERDDAP™Хранит кэшированные файлы каждого набора данных в другом каталоге: BigParent Директория /кэш/ datasetID Поскольку в одном каталоге кэша может быть огромное количество файлов, доступ к которым может стать медленным. Файлы удаляются из кэша по одной из трех причин:

  • Все файлы в этом кэше удаляются, когдаERDDAP™Перезапущен.
  • Периодически любой файл более<CacheMinutes - старый (как указано вНастройка.xml) будут удалены. Удаление файлов в кэше в зависимости от возраста (не используется в последнее время) Это гарантирует, что файлы не будут оставаться в кэше очень долго. Хотя может показаться, что данный запрос должен всегда возвращать один и тот же ответ, это не так. Например, atabledapЗапрос, который включает &time некоторые Время Изменится, если появятся новые данные для набора данных. Запрос сетки, который включает\[последний\]Размер времени изменится, если для набора данных появятся новые данные.
  • Изображения, показывающие условия ошибки, кэшируются, но только в течение нескольких минут. (Это сложная ситуация.) .
  • Каждый раз, когда набор данных перезагружается, все файлы в кэше этого набора данных удаляются. Поскольку запросы могут быть"last"индекс в сетчатом наборе данных, файлы в кэше могут стать недействительными при перезагрузке набора данных.  

Хранимая информация о наборе данных

Для всех типов данных,ERDDAP™Собирает много информации при загрузке набора данных и сохраняет ее в памяти. Это позволяетERDDAP™быстро реагировать на запросы, запросы на списки наборов данных и запросы на информацию о наборе данных.

Для нескольких типов наборов данных (особенноEDDGridКопия, EDDTableCopy,EDDGridиз Xxx Файлы и EDDTableFrom Xxx Файлы) ,ERDDAP™сохраняет на диске некоторую информацию о наборе данных, который повторно используется при перезагрузке набора данных. Это значительно ускоряет процесс перезарядки.

  • Некоторые из информационных файлов набора данных являются считываемыми человеком.jsonфайлы и хранятся в BigParent Директория /dataset/ last2LettersOfDatasetID/datasetID .
  • ERDDAP™удаляет эти файлы только в необычных ситуациях, например, если вы добавляете или удаляете переменную из набора данных.datasets.xmlкусок.
  • Большинство изменений в наборе данныхdatasets.xmlкусок (Например, изменение глобального атрибута или переменного атрибута) Не требуйте удаления этих файлов. Регулярная перезагрузка набора данных будет обрабатывать эти типы изменений. Вы можете сказатьERDDAP™Перезагрузить набор данных ASAP, установивфлагдля набора данных.
  • Аналогичным образом, добавление, удаление или изменение файлов данных будут обрабатываться, когдаERDDAP™Перезагружает набор данных. НоERDDAP™Заметит этот тип изменения в ближайшее время и автоматически, если набор данных использует<Обновление EveryNMillis (/docs/server-admin/datasets#updateeverynmillis) система.
  • Вам редко нужно удалять эти файлы. Наиболее распространенная ситуация, когда нужно силойERDDAP™Чтобы удалить сохраненную информацию (потому что он устаревший / неправильный и не будет автоматически исправленERDDAP) когда вы вносите изменения в набор данныхdatasets.xmlЭто влияет на то, какERDDAP™интерпретирует данные в исходных файлах данных, например, меняя строку формата переменной времени.
  • Чтобы удалить сохраненные информационные файлы набора данных изERDDAP™Это работает (Даже если набор данных в настоящее время не загружен) Установитьтвердый Флагдля этого набора данных. Помните, что если набор данных представляет собой агрегацию большого количества файлов, перезагрузка набора данных может занять значительное время.
  • Для удаления сохраненных информационных файлов набора данных, когдаERDDAP™Не бегать, бегатьDasDdsдля этого набора данных (что проще, чем выяснить, в какой каталог находится информация и удалить файлы вручную) . Помните, что если набор данных представляет собой агрегацию большого количества файлов, перезагрузка набора данных может занять значительное время.  

Состояние памяти

ERDDAP™Никогда не стоит падать или замерзать. Если это так, то одной из наиболее вероятных причин является недостаточная память. Вы можете отслеживать использование памяти, просматривая веб-страницу status.html, которая включает в себя такую строку, как:

0 gc-звонков, 0 запросов и 0 опасных MemoryEmails с последнего крупного набора данных LoadData

(Все более серьезные события)
и MB inUse и gc Колонки вызовов в таблице статистики. Вы можете сказать, как стресс памятиERDDAP™Наблюдая за этими цифрами. Более высокие цифры указывают на больший стресс.

  • MB в использовании всегда должно быть меньше половины\-Xmx настройка памяти. Большие цифры — плохой знак.
  • gc-звонки указывают количество разERDDAP™Вызвали сборщик мусора, чтобы попытаться облегчить высокое использование памяти. Если это больше 100, это признак серьезных проблем.
  • Сброс указывает количество поступающих запросов, которые были сброшены. (HTTP-ошибка 503, сервис недоступен) Использование памяти было уже слишком высоким. В идеале не следует отбрасывать просьбы. Это нормально, если несколько запросов пролиты, но признак серьезных проблем, если многие пролиты.
  • опасный MemoryEmails - Если использование памяти становится опасно высоким,ERDDAP™отправляет электронное письмо на адреса электронной почты, перечисленные в<Электронная почта Все Чтобы (в setup.xml) со списком активных запросов пользователей. Как говорится в письме, пожалуйста, передайте эти письма Крису. Джон в Ноаа. Мы можем использовать эту информацию для улучшения будущих версийERDDAP.  

Если выERDDAP™Напряжена память:

  • Распределите больше памяти вашего сервера наERDDAP™Изменить TomcatXmx настройка памяти.
  • Если вы уже выделили столько памяти, сколько сможетеERDDAP™Через -Xmx, подумайте о покупке большего количества памяти для вашего сервера. Память дешевая (Стоимость нового сервера или ваше время) ! Затем увеличить -Xmx.
  • вdatasets.xmlустановленный<nGridThreads > 1, установленный<nTableThreads> до 1, и установить<ipAddressMaxRequestsActive> до 1.
  • Посмотрите на запросы в log.txt для неэффективных или проблемных (законным) просьбы. Добавить IP-адреса в<Запросить Blacklist вdatasets.xml. Сообщение об ошибке в черном списке содержитERDDAP™Адрес электронной почты администратора с надеждой, что эти пользователи свяжутся с вами, чтобы вы могли работать с ними для использования.ERDDAP™более эффективно. Хорошо иметь список IP-адресов, которые вы заносите в черный список и почему, чтобы вы могли работать с пользователями, если они свяжутся с вами.
  • Посмотрите на запросы в log.txt для запросов от вредоносных пользователей. Добавить IP-адреса в<Запросить Blacklist вdatasets.xml. Если похожие запросы поступают с нескольких похожих IP-адресов, вы можете использовать некоторые службы. (например, https://www.whois.com/whois/ ) Чтобы узнать диапазон IP-адресов из этого источника и занести в черный список весь диапазон. Смотри.<Запросить Blacklist>документацию (/docs/server-admin/datasets#requestblacklist) .  

Ошибка OutOfMemory

Когда вы устанавливаетеERDDAP™Вы указываете максимальное количество памяти, котороеJavaМожно использовать через\-Xmx настройка. ЕслиERDDAP™Когда-нибудь потребуется больше памяти, чем это, он бросит Java. Лэнг. Ошибка в памяти.ERDDAP™делает много проверок, чтобы позволить ему справиться с этой ошибкой изящно (Например, неприятный запрос не сработает, но система сохранит свою целостность.) . Но иногда ошибка повреждает целостность системы, и вам приходится перезагружаться.ERDDAP. Надеюсь, это редкость.

Быстрое и простое решение ошибки OutOfMemory заключается в увеличении количества\-Xmx настройкаНо вы никогда не должны увеличивать настройку -Xmx до более чем 80% физической памяти на сервере. (Например, для сервера 10 ГБ не устанавливайте -Xmx выше 8 ГБ) . Память относительно дешевая, поэтому может быть хорошим вариантом для увеличения памяти на сервере. Но если вы максимизировали память на сервере или по другим причинам не можете увеличить ее, вам нужно более непосредственно разобраться с причиной ошибки OutOfMemory.

Если вы посмотрите вlog.txtФайл, чтобы посмотреть чтоERDDAP™Когда ошибка возникла, вы обычно можете получить хорошее представление о причине ошибки OutOfMemory. Существует множество возможных причин, в том числе:

  • Один огромный файл данных может вызвать ошибку OutOfMemory, в частности, огромные файлы данных ASCII. Если это проблема, то она должна быть очевидной, потому чтоERDDAP™не сможет загрузить набор данных (для табличных наборов данных) или читать данные из этого файла (для сетчатых наборов данных) . Решение, если это возможно, заключается в разделении файла на несколько файлов. В идеале файл можно разделить на логические фрагменты. Например, если файл содержит данные за 20 месяцев, разделите его на 20 файлов, каждый из которых содержит данные за 1 месяц. Но есть и преимущества, даже если основной файл расщепляется произвольно. Этот подход имеет несколько преимуществ: а Это уменьшит объем памяти, необходимый для чтения файлов данных, до 1/20-го, поскольку за один раз читается только один файл. b) Часто,ERDDAP™Он может обрабатывать запросы намного быстрее, потому что он должен искать только один или несколько файлов, чтобы найти данные для данного запроса. с) Если сбор данных продолжается, то существующие 20 файлов могут оставаться неизменными, и вам нужно только изменить один маленький новый файл, чтобы добавить данные следующего месяца в набор данных.
  • Один огромный запрос может вызвать ошибку OutOfMemory. В частности, некоторые изorderByОпции имеют весь ответ в памяти на секунду. (Например, сделать вид) . Если ответ огромен, это может привести к ошибке. Всегда будут какие-то запросы, которые по-разному слишком велики. Вы можете решить проблему, увеличив настройку -Xmx. Или вы можете побудить пользователя сделать несколько небольших запросов.
  • Маловероятно, что большое количество файлов приведет к индексу файла, которыйERDDAP™Он настолько велик, что этот файл может вызвать ошибку. Если предположить, что каждый файл использует 300 байт, то 1 000 000 файлов займет всего 300 МБ. Но наборы данных с огромным количеством файлов данных вызывают другие проблемы.ERDDAPВ частности, это занимает много времени дляERDDAP™открыть все эти файлы данных при ответе на запрос пользователя. В этом случае решение может заключаться в агрегировании файлов, чтобы было меньше файлов данных. Для табличных наборов данных часто здорово, если вы сохраняете данные из текущего набора данных.CF Дискретная геометрия выборки (DSG) Файлы данных Ragged Array (запросить.ncФайлы CF изERDDAP) Затем создайте новый набор данных. Эти файлы могут быть обработаны очень эффективно.ERDDAP?EDDTable FromNcCFFiles. Если они логически организованы (Каждый с данными для куска пространства и времени) ,ERDDAP™Они могут быстро извлекать из них данные.
  • Для табличных наборов данных, которые используют [<subsetVariables> (/docs/server-admin/datasets#subsetvariables) атрибут,ERDDAP™составляет таблицу уникальных комбинаций значений этих переменных. Для больших массивов данных или когда<subsetVariablesЭта таблица может быть достаточно большой, чтобы вызвать ошибки OutOfMemory. Решение заключается в удалении переменных из списка.<subsetVariablesдля которых имеется большое количество значений, или удалить переменные по мере необходимости, пока размер этой таблицы не станет разумным. части которыхERDDAP™которые используютsubsetVariablesСистема не работает хорошо (Веб-страницы загружаются очень медленно) Если в этой таблице более 100 000 строк.
  • Всегда возможно, что несколько одновременных больших запросов (На действительно занятойERDDAP) Может сочетаться, чтобы вызвать проблемы с памятью. Например, 8 запросов, каждый из которых использует по 1 ГБ, вызовут проблемы при установке -Xmx=8 ГБ. Но редко бывает так, что каждый запрос находится на пике использования памяти одновременно. Вы легко сможете увидеть, что вашERDDAP™Он очень занят большими просьбами. Но это возможно. Трудно справиться с этой проблемой, кроме увеличения настроек -Xmx.
  • Есть и другие сценарии. Если вы посмотрите наlog.txtФайл, чтобы посмотреть чтоERDDAP™Когда ошибка возникла, вы обычно можете получить хорошее представление о причине. В большинстве случаев есть способ минимизировать эту проблему. (смотреть выше) Но иногда вам просто нужно больше памяти и более высокая настройка xmx.  

Слишком много открытых файлов

Начиная сERDDAP™v2.12,ERDDAP™Имеет систему мониторинга количества открытых файлов (которые включают в себя розетки и некоторые другие вещи, а не только файлы) Tomcat на компьютерах Linux. Если некоторые файлы по ошибке никогда не закрываются («Утечка ресурсов») Количество открытых файлов может увеличиваться до тех пор, пока оно не превысит максимально допустимое операционной системой и не произойдет множество действительно плохих вещей. Теперь о компьютерах Linux (потому что информация недоступна для Windows) :

  • На крайнем правом углу страницы status.html есть столбец «Открытые файлы», показывающий процент максимально открытых файлов. В Windows он просто показывает «?».
  • КогдаERDDAP™генерирует эту информацию в конце каждой основной перезагрузки набора данных, она будет печататься в журнал. txt файл: OpenFileCount = текущий max = макс % = %
  • Если процент составляет >50%, на адрес электронной почтыERDDAP™Администратор и электронная почта Все На адреса электронной почты.

Если процент составляет 100%,ERDDAP™У него ужасные неприятности. Не позволяй этому случиться. Если процент составляет >75%,ERDDAP™Это близко к ужасным неприятностям. Это не нормально. Если процент составляет >50%, вполне возможно, что всплеск приведет к тому, что процент достигнет 100. Если процент составляет более 50%, вы должны:

  • Увеличьте максимальное количество открытых файлов, разрешенных:
    • Делая эти изменения каждый раз, прежде чем вы начнете делать (Поместите их в файл Tomcat startup.sh.) : Улимит -Hn 16384 Улимит -Sn 16384
    • Внесение постоянных изменений путем редактирования (как корень) /etc/security/limits.conf и добавление строк: мягкий нофил 16384 Жесткий файл 16384 Эти команды предполагают, что пользователь под управлением Tomcat называется «tomcat». Во многих вариантах Linux вам нужно перезапустить сервер, чтобы применить эти изменения. Для обоих вариантов приведен пример «16384». Вы выбираете число, которое считаете лучшим.
  • ПерезапуститьERDDAP. Операционная система закрывает все открытые файлы.  

Неудачные запросы

  • Необычная активность: >25% запросов не удалось
    Как часть каждого перезагрузочного набора данных, который обычно каждые 15 минут,ERDDAP™Посмотрите на процент запросов, которые потерпели неудачу с момента последней перезагрузки наборов данных. Если он составляет >25%,ERDDAP™Отправьте электронное письмо вERDDAP™Администратор с темой «Необычная деятельность: >25% запросов не удалось». Это письмо включает в себя подсчёт в нижней части, озаглавленный «IP-адрес запрашивающего» (неудачник) (Последний крупный пакет LoadDatasets) ". Ищите это. Он сообщает вам IP-адрес компьютеров, выполняющих самые неудачные запросы. Вы можете найти эти IP-адреса в\[BigParent Директория\]/logs/log.txtПосмотрите, какие типы запросов они делают.

Вы можете использовать IP-адрес пользователя (Например, с https://whatismyipaddress.com/ip-lookup ) Чтобы выяснить, кто или что является пользователем. Иногда это довольно точно скажет вам, кто является пользователем. (Например, это веб-сканер поисковой системы) . Большую часть времени это просто дает вам подсказку. (Например, это компьютер амазонок, он из какого-то университета, это кто-то в каком-то конкретном городе.) .

Просматривая фактический запрос, номер IP и сообщение об ошибке (из всехlog.txt) Для серии ошибок вы обычно можете понять, что происходит. По моему опыту, есть четыре распространенные причины множества неудачных запросов:

  1. Запросы являются злонамеренными (Например, поиск слабых мест в системе безопасности или выполнение запросов, а затем их отмена до их завершения.) . Вы должны использовать<Запросить Blacklist вdatasets.xmlВ черный список этих IP-адресов.

  2. Поисковая система наивно пробует URL-адреса, перечисленные вERDDAP™Веб-страницы и документы ISO 19115. Например, есть много мест, в которых указана база.OPeNDAPURL, например, https://coastwatch.pfeg.noaa.gov/erddap/griddap/jplMURSST , к которому пользователь должен добавить тип файла (Например, .das, .dds, .html) . Но поисковая система этого не знает. Запрос на базовый URL не выполняется. Связанная ситуация — это когда поисковая система генерирует странные запросы или пытается заполнить формы, чтобы попасть на «скрытые» веб-страницы. Но поисковые системы часто делают плохую работу, что приводит к сбоям. Решение: создатьrobots.txtФайл.

  3. Некоторые пользователи запускают скрипт, который неоднократно запрашивает что-то, чего там нет. Возможно, это набор данных, который раньше существовал, но теперь исчез. (временно или постоянно) . Сценарии часто не ожидают этого и поэтому не имеют с этим дело разумно. Таким образом, сценарий просто продолжает делать запросы, а запросы продолжают падать. Угадайте, кто является пользователем (IP номер выше) Свяжитесь с ними и сообщите им, что набор данных больше не доступен, и попросите их изменить свой сценарий.

  4. Что-то действительно не так с некоторым набором данных. Обычно,ERDDAP™Это сделает проблемный набор данных неактивным. Иногда это не так, поэтому все запросы на него просто приводят к ошибкам. Если это так, устраните проблему с набором данных или (Если ты не можешь) Набор данных дляАктивный = «ложный». Это может привести к проблеме #2.

Иногда ошибки не так уж и плохи, особенно еслиERDDAP™Вы можете обнаружить ошибку и ответить очень быстро.<=1мс). Так что вы можете решить не предпринимать никаких действий.

Если все остальное терпит неудачу, есть универсальное решение: добавить IP-адрес пользователя.<Черный список>> (/docs/server-admin/datasets#requestblacklist) . Это не такой плохой или радикальный вариант, как может показаться. Затем пользователь получит сообщение об ошибке, в котором говорится, что он был в черном списке, и сообщает им о своей ошибке. (тотERDDAP™администратора) адрес электронной почты. Иногда пользователь свяжется с вами, и вы сможете решить проблему. Иногда пользователь не связывается с вами, и на следующий день вы увидите точно такое же поведение, исходящее от другого IP-адреса. Внесите в черный список новый номер IP и надейтесь, что они в конечном итоге получат сообщение. (Или это ваш День сурка, от которого вы никогда не убежите. Прости.)

robots.txt

Компании поисковых систем используют веб-сканеры (Например, Google Бот) изучить все страницы в Интернете, чтобы добавить контент в поисковые системы. ДляERDDAP™Это в основном хорошо.ERDDAP™Он имеет много ссылок между страницами, поэтому сканеры найдут все веб-страницы и добавят их в поисковые системы. Тогда пользователи поисковых систем смогут найти наборы данных на вашемERDDAP.

К сожалению, некоторые веб-сканеры (Например, Google Бот) Теперь они заполняют и отправляют формы, чтобы найти дополнительный контент. Для сайтов интернет-торговли это здорово. Но это ужасно дляERDDAP™Потому что это просто приводит к бесконечный количество нежелательных и бессмысленных попыток сканирования фактических данных. Это может привести к большему количеству запросов на данные, чем от всех других пользователей вместе взятых. И он заполняет поисковую систему глупыми, бессмысленными подмножествами фактических данных.

Чтобы сказать веб-сканерам прекратить заполнять формы и просто вообще не смотреть на веб-страницы, на которые им не нужно смотреть, вам нужно создать текстовый файл под названиемrobots.txtв корневом каталоге иерархии документов вашего сайта, чтобы его мог просматривать любой, например, http://*www.your.domain*/robots.txt . Если вы создаете новых роботов. Файл txt, это хорошее начало:

    User-Agent: \\*
Disallow: /erddap/files/
Disallow: /files/
Disallow: /images/
Disallow: /\\*?
Disallow: /\\*?\\*
Disallow: /\\*.asc\\*
Disallow: /\\*.csv\\*
Disallow: /\\*.dods\\*
Disallow: /\\*.esriAscii\\*
Disallow: /\\*.esriCsv\\*
Disallow: /\\*.geoJson\\*
Disallow: /\\*.htmlTable\\*
Disallow: /\\*.json\\*
Disallow: /\\*.mat\\*
Disallow: /\\*.nc\\*
Disallow: /\\*.odvTxt\\*
Disallow: /\\*.tsv\\*
Disallow: /\\*.xhtml\\*
Disallow: /\\*.geotif\\*
Disallow: /\\*.itx\\*
Disallow: /\\*.kml\\*
Disallow: /\\*.pdf\\*
Disallow: /\\*.png\\*
Disallow: /\\*.large\\*
Disallow: /\\*.small\\*
Disallow: /\\*.transparentPng\\*
Sitemap: http://***your.institutions.url***/erddap/sitemap.xml

(Но заменить Your.institutions.url с твоимERDDAPБазовый URL.)
Поисковым системам может потребоваться несколько дней, чтобы заметить изменения и вступить в силу.  

sitemap.xml

Как и https://www.sitemaps.org Сайт говорит:

Sitemaps are an easy way for webmasters to inform search engines about pages on their sites that are available for crawling. In its simplest form, a Sitemap is an XML file that lists URLs for a site along with additional metadata about each URL (when it was last updated, how often it usually changes, and how important it is, relative to other URLs on the site) so that search engines can more intelligently crawl the site.

Web crawlers usually discover pages from links within the site and from other sites. Sitemaps supplement this data to allow crawlers that support Sitemaps to pick up all URLs in the Sitemap and learn about those URLs using the associated metadata. Using the Sitemap protocol does not guarantee that web pages are included in search engines, but provides hints for web crawlers to do a better job of crawling your site.

На самом деле, посколькуERDDAP™этоRESTfulПауки поисковых систем могут легко сканировать вашERDDAP. Но они склонны делать это чаще. (Ежедневно!) чем необходимо (ежемесячно?) .

  • Учитывая, что каждая поисковая система может сканировать всю вашуERDDAP™Каждый день это может привести к множеству ненужных запросов.

  • ТакERDDAP™Создает файл sitemap.xmlERDDAP™Что говорит поисковым системам, что вашERDDAP™Нужно только ползать каждый месяц.

  • Вы должны добавить ссылку наERDDAPSitemap.xml для вашего сайтаrobots.txtфайл: Карта сайта: http://**www.yoursite.org**/erddap/sitemap.xml

  • Если это не похоже на получение сообщения для сканеров, вы можете рассказать различным поисковым системам о файле sitemap.xml, посетив эти URL-адреса. (но изменения Ваш институт аббревиатура или аббревиатура вашего учреждения и www.yoursite.org к твоемуERDDAPURL) :

Распространение данных / Data Distribution Сети:PushиPullТехнология

  • Обычно,ERDDAP™выступает в качестве посредника: принимает запрос от пользователя; получает данные из удаленного источника данных; переформатирует данные; и отправляет их пользователю.
  • PullТехнология:ERDDAP™Он также имеет возможность активно получать все доступные данные из удаленного источника данных.хранить локальную копию данных.
  • PushТехнология: используяERDDAP?Абонентские услугиДругие серверы данных могут быть уведомлены, как только появятся новые данные, чтобы они могли запросить данные. (Вытаскивая данные) .
  • ERDDAP?EDDGridИз ЭрддапаиEDDTable FromErddapиспользоватьERDDAPУслуги подписки ифлаговая системаОн будет немедленно уведомлен, когда появятся новые данные.
  • Вы можете совместить их с большим эффектом: если вы завернетеEDDGridКопии вокруг одногоEDDGridНабор данных Erddap (или обернуть EDDTableCopy вокруг набора данных EDDTableFromErddap) ,ERDDAP™автоматически создавать и поддерживать локальную копию другогоERDDAPНабор данных.
  • Поскольку службы подписки работают, как только появляются новые данные, push-технология очень быстро распространяет данные. (в течение нескольких секунд) .

Такая архитектура позволяет каждомуERDDAP™администратор, отвечающий за определение того, где данные для негоERDDAP™Происходит от.

  • другойERDDAP™Администраторы могут сделать то же самое. Нет необходимости в координации действий администраторов.
  • Если многоERDDAP™Администраторы связываются друг с другомERDDAPs формируется сеть распределения данных.
  • Данные будут быстро, эффективно и автоматически распространяться из источников данных. (ERDDAPs и другие серверы) Сайты перераспределения данных (ERDDAPs) В любом месте сети.
  • данностьERDDAP™может быть как источником данных для некоторых наборов данных, так и сайтом перераспределения для других наборов данных.
  • Полученная сеть примерно похожа на сети распределения данных, созданные с помощью таких программ, как:UnidataIDD/IDMменее жестко структурированы.  

Безопасность, аутентификация и авторизация

По умолчанию,ERDDAP™Работает как полностью публичный сервер (использоватьhttpи/илиhttps) без логина (аутентификация) Система и отсутствие ограничений на доступ к данным (разрешение) .

Безопасность

Если вы хотите ограничить доступ к некоторым или всем наборам данных для некоторых пользователей, вы можете использоватьERDDAPВстроенная система безопасности. Когда используется система безопасности:

  • ERDDAP™использованиеРолевой контроль доступа.
    • TheERDDAP™Администратор определяет пользователей с помощью [...]<пользователь> (/docs/server-admin/datasets#user) метитьdatasets.xml. У каждого пользователя есть имя пользователя, пароль (Если аутентификация=обычай) и одной или нескольких ролей.
    • TheERDDAP™администратор определяет, какие роли имеют доступ к заданному набору данных через<Доступно>> (/docs/server-admin/datasets#доступно) метитьdatasets.xmlДля любого набора данных, который не должен иметь публичный доступ.
  • Статус входа пользователя (и ссылка для входа / выхода) Он будет отображаться в верхней части каждой страницы. (Зарегистрированный пользователь будет выглядетьERDDAP™не входить в систему, если он используетhttpURL.)
  • Если<baseUrl>, который вы указываете в настройках.xml http URL, пользователи, которые не вошли в систему, могут использоватьERDDAP? http URL. Если<Также указывается baseHttpsUrl, пользователи, которые не вошли в систему, также могут использоватьhttpsURL.
  • Только HTTPS - Если<baseUrl>, который вы указываете в настройках.xml https URL, пользователям, которые не вошли в систему, рекомендуется (не принуждать) использоватьERDDAP? https URL - все ссылки наERDDAP™Сайты будут ссылаться наhttpsURL.

Если вы хотите заставить пользователей использоватьhttpsURL, добавьте перенаправление постоянной строки внутри<VirtualHost \*:80> в конфигурационном файле Apache (обычноhttpd-conf) Например,

    <VirtualHost \\*:80>
\\[...\\]
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>

Если вы хотите, есть дополнительный метод, чтобы заставить использованиеhttps: HTTP - строгая транспортная безопасность (ГСТС) . Чтобы использовать:

  1. Модуль заголовков Apache: заголовки a2enmod
  2. Добавьте дополнительный заголовок в директиву HTTPS VirtualHost. Макс-возраст измеряется в секундах и может быть установлен на некоторое длинное значение.
        <VirtualHost \\*:443>
# Guarantee HTTPS for 1 Year including Sub Domains
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

Обратите внимание, что этот заголовок действителен только на виртуальном хосте HTTPS.

Причина не заставлять пользователей использоватьhttpsURL-адреса: базовая ссылка SSL / TLS требует времени для установки, а затем времени для шифрования и расшифровки всей информации, передаваемой между пользователем и сервером. Но некоторые институты требуютhttpsТолько.

  • Пользователи, которые вошли в систему, должны использоватьERDDAP? https URL. Если они используютhttpURL-адреса, кажется,ERDDAP™Не быть зарегистрированным. Это обеспечивает конфиденциальность сообщений и помогает предотвратитьсеансовый угон и боковой угон.
  • Любой, кто не вошел в систему, может получить доступ и использовать общедоступные наборы данных. По умолчанию частные наборы данных не отображаются в списках наборов данных, если пользователь не вошел в систему. Если администратор установил setup.xml<ListPrivateDatasets> на самом деле они появятся. Попытки запросить данные из частных наборов данных (Если пользователь знает URL) будет перенаправлен на страницу входа.
  • Любой, кто вошел в систему, сможет видеть и запрашивать данные из любого общедоступного набора данных и любого частного набора данных, к которому их роль позволяет им доступ. По умолчанию частные наборы данных, к которым у пользователя нет доступа, не отображаются в списках наборов данных. Если администратор установил setup.xml<ListPrivateDatasets> на самом деле они появятся. Попытки запросить данные из частных наборов данных, к которым у пользователя нет доступа, будут перенаправлены на страницу входа в систему.
  • TheRSSИнформация для полностью частных наборов данных доступна только пользователям. (иRSSчитатель) которые вошли в систему и уполномочены использовать этот набор данных. Это делаетRSSЭто не очень полезно для полностью частных наборов данных.

Если набор данных является частным, но его<ГрафыДоступно> (/docs/server-admin/datasets#graphsaccessibleto) является публичным, набор данныхRSSОн доступен для всех.

  • Подписка на электронную почту может быть настроена только тогда, когда пользователь имеет доступ к набору данных. Если пользователь подписывается на частный набор данных, подписка продолжает функционировать после выхода пользователя из системы.
Настройка безопасности

Для создания системы безопасности/аутентификации/авторизации:

  • Сделайте стандартERDDAP™ начальная настройка.
  • вНастройка.xml,
    • Добавить/изменить<аутентифицировать Ценность от ничего к обычаю (Не используйте это) Электронная почта (Не используйте это) Google (рекомендованный) кислота (рекомендованный) или Oauth2 (Google+Orcid (рекомендуется)) . Смотрите комментарии об этих вариантах ниже.
    • Добавить/изменить<Базовое значение HttpsUrl.
    • Включить/отключить&loginInfo;в<startBodyHtml> для отображения входа/выхода пользователя в верхней части каждой веб-страницы.
  • Для тестирования на вашем персональном компьютере,Следуйте этим инструкциям для настройки Tomcat для поддержки SSL (Основанием дляhttpsсоединения) путем создания магазина ключей ссамоподписанный сертификати путем изменения кот /conf/server.xml для разъема порта 8443. В Windows вам может потребоваться переместить .keystore из «c:\Users\» ты \keystore" на "c:\Users\Default User\.keystore" или "c:\.keystore" (смотреть кот /logs/Каталина. сегодня .log, если приложение не загружается или пользователи не могут видеть вход на страницу) . Вы можете увидеть, когда срок действия сертификата .keystore истекает, изучив сертификат при входе в систему.

Для общедоступного сервера, вместо использования самоподписанного сертификата, настоятельно рекомендуется купить и установить сертификат, подписанныйсертификационный органЭто дает вашим клиентам больше уверенности в том, что они действительно связаны с вами.ERDDAP™Не человек посередине вашей версииERDDAP. Многие производители продают цифровые сертификаты. (Ищите в интернете.) Они не дорогие.

  • На компьютерах Linux, если Tomcat работает в Apache, измените /etc/httpd/conf.d/ssl.conf файл, позволяющий HTTPS-трафикERDDAP™Не требуя номера порта :8443 в URL:
    1. Изменить существующий<VirtualHost> Tag (Если есть один) Или добавьте один в конце файла, чтобы он, по крайней мере, имел следующие строки:
        <VirtualHost \\_default\\_:443>
SSLEngine on
SSLProxyEngine On
ProxyPass /erddap http://localhost:8443/erddap
ProxyPassReverse /erddap http://localhost:8443/erddap
</VirtualHost>
  1. Перезапуск Apache: /usr/sbin/apachectl -к грациозный (Но иногда он находится в другом каталоге.) .
  • в кот /conf/server.xml, uncomment the port=8443<Тег Connector>:
    <Connector port="8443" 
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
type="RSA" />
</SSLHostConfig>
</Connector>

и изменить местоположение сертификата KeystoreFile.

разрешение
  • вdatasets.xmlСоздать a[править]<пользователь> (/docs/server-admin/datasets#user) тег для каждого пользователя с именем пользователя, паролем (Если авторизация = обычай) и ролевой информации. Это часть авторизацииERDDAPСистема безопасности.  
  • вdatasets.xmlДобавить [<Доступно>> (/docs/server-admin/datasets#доступно) Тег для каждого набора данных, который не должен иметь общедоступный доступ.<AccessTo> позволяет указать, какие роли имеют доступ к этому набору данных.  
  • Перезапустить Tomcat. Проблемы? Проверьте бревна Tomcat.  
  • Проверь свою работу! Любая ошибка может привести к дефекту безопасности.  
  • Проверьте, что страница входа используетhttps (неhttp) . Попытки входа черезhttpдолжен быть автоматически перенаправлен наhttpsПорт 8443 (Номер порта может быть скрыт через прокси-сервер Apache.) . Возможно, вам придется работать с сетевым администратором, чтобы разрешить внешним веб-запросам доступ к порту 8443 на вашем сервере.  
  • Вы можете изменить<Пользователь и<To> Tags в любое время. Изменения будут применяться при следующей регулярной перезагрузке любого набора данных или ASAP, если вы используетефлаг.
аутентификация

**аутентификация (входить) **
Если вы не хотите, чтобы пользователи могли войти в систему, не указывайте значение для<Аутентификация в setup.xml. Если вы хотите разрешить пользователям войти в систему, вы должны указать значение для<Аутентификация. В настоящее времяERDDAP™поддержка обычай (Не используйте это) , электронная почта (Не используйте это) , Google (рекомендованный) , кислотный (рекомендованный) и Оут2 (рекомендованный) Для метода аутентификации. Если вы хотите включить вход в систему, мы настоятельно рекомендуем варианты google, orcid или oauth2, потому что они освобождают вас от хранения и обработки паролей пользователя. (необходимый для обычаев) Они более безопасны, чем электронная почта. Помните, что пользователи часто используют один и тот же пароль на разных сайтах. Они могут использовать один и тот же пароль для вашегоERDDAP™Как это делают в банке. Это делает их пароль очень ценным — гораздо более ценным для пользователя, чем просто данные, которые они запрашивают. Поэтому вам нужно сделать все возможное, чтобы сохранить пароли в тайне. Это большая ответственность. Варианты электронной почты, Google, orcid и oauth2 заботятся о паролях, поэтому вам не нужно собирать, хранить или работать с ними. Вы освобождаетесь от этой ответственности.

Все<Варианты аутентификации используютпеченьена компьютере пользователя, поэтому браузер пользователя должен быть настроен, чтобы разрешить файлы cookie. Если пользователь делаетERDDAP™Запросы из компьютерной программы (Не браузер) Файлы cookie и аутентификация сложны в работе. Это общая проблема для всех систем аутентификации. Прости.

Подробности этого<аутентификация Варианты следующие:

обычай

обычайERDDAPпользовательская система, позволяющая пользователям войти в систему, введя свое имя пользователя и пароль в форме на веб-странице. Если пользователь пытается и не может войти в систему 3 раза в течение 10 минут, пользователь блокируется от попытки войти в систему в течение 10 минут. Это мешает хакерам просто пробовать миллионы паролей, пока они не найдут правильный.

Это довольно безопасно, потому что имя пользователя и пароль передаются черезhttps (неhttp) Но аутентификация = Google, orcid или oauth2 лучше, потому что они освобождают вас от необходимости обрабатывать пароли. Пользовательский подход требует, чтобы вы собрали имя пользователя и хеш-дайджест их пароля. (Используйте свой телефон! Электронная почта небезопасна!) и хранить их вdatasets.xmlв []<пользователь> (/docs/server-admin/datasets#user) бирки.

С пользовательским вариантом никто не может войти в систему, пока вы не (тотERDDAP™администратор) создавать<тег user> для пользователя, определяющий имя пользователя как имя пользователя, хеш-дайджест их пароля как пароля и их роли.

Не рекомендуется Из-за неловкости генерации и передачи хеш-дайджеста пароля пользователя и из-за рисков, связанных сERDDAP™держа хеш-дайджесты паролей, этот вариант не рекомендуется.

Для повышения безопасности данного варианта:

  • Вы должны убедиться, что другие пользователи на сервере (Пользователи Linux, неERDDAP™пользователи) Не могу читать файлы в каталоге Tomcat (Особенно еслиdatasets.xmlФайл!) илиERDDAPБольшой родительский справочник. В Linux как user=tomcat используйте: chmod - R g-rwx BigParent Директория
    ЧМОД -R o-rwx BigParent Директория
    chmod - R g-rwx TomcatDirectory
    ЧМОД -R o-rwx TomcatDirectory
     
  • Использование UEPSHA256<passwordEncoding> in setup.xml.  
  • Используйте безопасный способ передачи хеш-дайджеста пароля пользователя от пользователя к пользователю.ERDDAP™администратор (Телефон?) .  
электронная почта

Вариант аутентификации электронной почты использует учетную запись электронной почты пользователя для аутентификации пользователя (отправив им электронное письмо со специальной ссылкой, к которой они должны получить доступ, чтобы войти в систему;) . В отличие от других электронных писем, которыеERDDAP™посылает,ERDDAP™не записывает эти приглашения в файл журнала электронной почты, поскольку они содержат конфиденциальную информацию. Теоретически это не очень безопасно, потому что электронные письма не всегда зашифрованы, поэтому плохой парень с возможностью перехвата электронных писем может злоупотреблять этой системой, используя адрес электронной почты действительного пользователя и перехватывая электронную почту приглашения. На практике, если выERDDAP™использовать учетную запись электронной почты Google для отправки электронных писем, и если вы настроили ее для использования одного из вариантов TLS для подключения, и если у пользователя есть учетная запись электронной почты Google, это несколько безопасно, потому что электронные письма зашифрованы на всем пути отERDDAP™Для пользователя.

Для повышения безопасности данного варианта:

  • Убедитесь, что другие пользователи на сервере (Пользователи Linux, неERDDAP™пользователи) не может читать файлы в каталоге TomcatERDDAPБольшой родительский справочник. В Linux как user=tomcat используйте: chmod - R g-rwx BigParent Директория
    ЧМОД -R o-rwx BigParent Директория
    chmod - R g-rwx TomcatDirectory
    ЧМОД -R o-rwx TomcatDirectory
     
  • Настройте вещи, чтобы получить сквозную безопасность для электронных писем, отправленных изERDDAP™для пользователей. Например, вы можете создать систему, ориентированную на Google, только создав<теги пользователя для адресов электронной почты, управляемых Google, и путем настройки вашегоERDDAP™для использования сервера электронной почты Google через безопасное соединение / TLS: в setup.xml используйте, например,
    <emailSmtpHost>smtp.gmail.com</emailSmtpHost>  
<emailSmtpPort>587</emailSmtpPort>
<emailProperties>mail.smtp.starttls.enable|true</emailProperties>

Не рекомендуется Опция аутентификации электронной почты не рекомендуется. Вместо этого используйте опцию google, orcid или oauth2.

Как и в случае с опциями google, orcid и oauth2, электронная почта очень удобна.ERDDAP™администраторам - вам никогда не придется иметь дело с паролями или их хеш-дайджестами. Все, что вам нужно сделать, это [...]<пользователь> (/docs/server-admin/datasets#user) Тег для пользователя вdatasets.xmlадрес электронной почты пользователя, которыйERDDAP™Используется как имя пользователя. (Атрибут пароля не используется при аутентификации=email, google, orcid или oauth2.)

С опцией электронной почты только пользователи, которые имеют<Пользователь> Tag indatasets.xmlМожет попытаться войти вERDDAP™путем предоставления своего адреса электронной почты и нажатия на ссылку в электронном письме, котораяERDDAP™Отправляет их.

ERDDAP™рассматривает адреса электронной почты как нечувствительные к делу. Это делается путем преобразования адресов электронной почты, которые вы вводите (в)<теги user> или пользователи вводят (в форме login) Вся их нижняя версия.

Для настройки аутентификации=email:

  1. В setup.xml измените<BaseHttpsUrl> значение тега. Для экспериментов / работы на вашем персональном компьютере, используйте https://localhost:8443
    Для вашей публикиERDDAP™использовать https://your.domain.org:8443
    8443, если вы используете ApacheпроксипасЧтобы номер порта не понадобился.  
  2. В setup.xml измените<аутентификация Ценность тега для электронной почты:
    <authentication>email</authentication>  
  1. В setup.xml убедитесь, что система электронной почты настроена через все<e-mail > теги, так чтоERDDAP™Может отправлять электронные письма. Если возможно, настройте это для использования безопасного соединения. (SSL / TLS) на сервер электронной почты.  
  2. В твоейdatasets.xmlСоздать [<пользователь> (/docs/server-admin/datasets#user) теги для каждого пользователя, который будет иметь доступ к частным наборам данных. Используйте адрес электронной почты пользователя в качестве имени пользователя в теге. Не указывайте атрибут пароля в теге пользователя.  
  3. ПерезапуститьERDDAP™Внесение изменений в setup.xml иdatasets.xmlдействовать.  
Google, orcid, oauth2
  • Google , кислотный и Оут2   (рекомендованный)
    Все три варианта являются рекомендуемыми.ERDDAP™Варианты аутентификации. Это все самые безопасные варианты. Другие варианты имеют значительно более слабую безопасность.  
Google
  • Функция аутентификации Google используетзнак Вместе с Googleкоторый является осуществлениемПротокол аутентификации OAuth 2.0.ERDDAP™пользователи входят в свою учетную запись электронной почты Google, включая учетные записи, управляемые Google, такие как@noaa.govсчета. Это позволяетERDDAP™для проверки личности пользователя (Имя и адрес электронной почты) и доступ к их изображению профиля, но не даетERDDAP™доступ к их электронной почте, Google Drive или любой другой личной информации.

ДляERDDAP™v2.22 и ниже,ERDDAP™Используется «Google Sign-In». Google заявляет, что система обесценилась после 31 марта 2023 года. Если вы еще этого не сделали, пожалуйста, переключитесь наERDDAP™v2.23+ для использования новой системы аутентификации «Sign In with Google».

ДляERDDAP™v2.23 экземпляры с конфигурацией политики безопасности контента и использованием Google Authentication https://accounts.google.com Перечень разрешенных скриптов (Сценарий-Src-Elem) .ERDDAP™больше не используется https://apis.google.com Если у вас есть такая возможность, вы можете удалить ее сейчас.

ДляERDDAP™v2.24 + может потребоваться добавить https://accounts.google.com/gsi/style Ступенька и https://accounts.google.com/gsi/ Объединить-Src. Для скрипта-src теперь можно использовать https://accounts.google.com/gsi/client.

Для получения дополнительной информации вы можете перейти вСтраница GoogleКонфигурация CSP. Если у вас есть какие-либо вопросы, свяжитесь с chris.john на noaa.gov.  

кислотный
  • Опция аутентификации orcid используетОрцидная аутентификациякоторый является осуществлениемПротокол аутентификации OAuth 2.0.ERDDAP™Пользователи вступают в своиОстрый счетОни обычно используются исследователями для идентификации себя. Это позволяетERDDAP™проверить личность пользователя и получить номер его учетной записи Orcid, но не даетERDDAP™доступ к другой информации учетной записи Orcid.
Оут2
  • Опция oauth2 позволяет пользователям войти в систему либо со своей учетной записью Google, либо со своей учетной записью Orcid.

Опции google, orcid и oauth2 являются преемниками опции openid.ERDDAP™Версия 1.68, которая была основана на открытой версии Идентификатор, который сейчас устарел. Пожалуйста, перейдите на опцию Google, orcid или oauth2.

Эти варианты очень удобны дляERDDAP™администраторам - вам никогда не придется иметь дело с паролями или их хеш-дайджестами. Все, что вам нужно сделать, это [...]<пользователь> (/docs/server-admin/datasets#user) Тег для пользователя вdatasets.xmlкоторый определяет адрес электронной почты пользователя Google или номер учетной записи Orcid в качестве атрибута имени пользователя. (Атрибут пароля не используется при аутентификации=email, google, orcid или oauth2.)

С этими опциями любой может войти вERDDAP™подписываясь на свою учетную запись электронной почты Google или учетную запись Orcid, но никто не будет иметь права доступа к частным наборам данных до тех пор, пока вы не получите доступ к ним. (тотERDDAP™администратор) создавать<тег user>, указав адрес электронной почты Google или номер учетной записи Orcid в качестве имени пользователя и указав их роли.

ERDDAP™рассматривает адреса электронной почты как нечувствительные к делу. Это делается путем преобразования адресов электронной почты, которые вы вводите (в)<теги user> или пользователи вводят (в форме login) Вся их нижняя версия.

Чтобы настроить аутентификацию Google, orcid или oauth2:

  • В setup.xml измените<BaseHttpsUrl> значение тега. Для экспериментов / работы на вашем персональном компьютере, используйте https://localhost:8443
    Для вашей публикиERDDAP™использовать https://your.domain.org:8443
    8443, если вы используете ApacheпроксипасЧтобы номер порта не понадобился.  
  • В setup.xml измените<аутентификация Например, значение тега для Google, orcid или oauth2:
    <authentication>oauth2</authentication>  
Настройка Google
  • Для вариантов Google и Oauth2: Следуйте инструкциям ниже, чтобы настроить аутентификацию Google для вас.ERDDAP.  
    1. Если у вас нет аккаунта электронной почты Google,создать
       
    2. СледитьЭти инструкцииСоздать проект Google Developers Console и получить идентификатор клиента.

Когда Google запрашивает авторизованную формуJavaПроисхождение сценария, введите значение из<baseHttpsUrl с персонального компьютераERDDAP™setup.xml, например, https://localhost:8443
На второй строке добавьте<BaseHttpsUrl > для вашей публикиERDDAP™setup.xml, например, https://your.domain.org:8443

Не указывайте авторизованные перенаправления URI.

Когда вы видите свой идентификатор клиента для этого проекта, скопируйте и вставьте его в setup.xml (обычно чуть ниже).<аутентификация> быть упорядоченным, но размещение на самом деле не имеет значения<googleClientID> tag, например, <GoogleClientID> Ваш клиент <GoogleClientID Идентификатор клиента будет состоять из 75 символов, начиная с нескольких цифр и заканчивая .apps.googleusercontent.com.  

  1. В твоейdatasets.xmlСоздать [<пользователь> (/docs/server-admin/datasets#user) Тег для каждого пользователя, который будет иметь доступ к частным наборам данных. Для атрибута имени пользователя в теге:

    • Для пользователей, которые войдут в систему с Google, используйте адрес электронной почты Google.
    • Для пользователей, которые войдут с orcid, используйте номер учетной записи Orcid пользователя. (с тире) .

Не указывайте атрибут пароля для тега пользователя.   4. ПерезапуститьERDDAP™Внесение изменений в setup.xml иdatasets.xmlдействовать.  

Орцидная установка
  • Для вариантов Orcid и Oauth2: Следуйте инструкциям ниже, чтобы настроить аутентификацию Orcid для вас.ERDDAP. (Подробнее см.Документация Orcid по аутентификации API.)
     
    1. Если у вас нет учетной записи Orcid,создать
       
    2. Войти в Orcid https://orcid.org/signin Использование вашей личной учетной записи Orcid.  
    3. Нажмите «Инструменты разработчика» («Для исследователей» на вершине) .  
    4. Нажмите «Регистрация для бесплатного открытого API ORCID». Введите эту информацию: Имя:ERDDAP™в\[Ваша организация\]
      Сайт:\[твойERDDAPдомен\]
      Описание:ERDDAP™Это сервер научных данных. Пользователи должны аутентифицироваться с Google или Orcid для доступа к непубличным наборам данных. Перенаправить URI:\[твойERDDAPдомен\]/erddap/loginOrcid.html  
    5. Нажмите на значок Save (Похоже на 3,5-дюймовый диск!) . Затем вы можете увидеть свой идентификатор клиента ORCID APP и секрет клиента ORCID.  
    6. Копирование и вставка идентификатора клиента ORCID APP (Начнем с «APP-») в setup.xml в настройках<orcidClientID> tag, например,
        <orcidClientID>APP-*ALPHANUMERICCHARACTERS*</orcidClientID>
  1. Копирование и вставка ORCID Client Secret (буквенно-цифровые знаки с тире) в setup.xml в настройках<orcidClientSecret> tag, например,
        <orcidClientSecret>*alpha-numeric-characters-with-dashes*</orcidClientSecret>
  1. В твоейdatasets.xmlСоздать [<пользователь> (/docs/server-admin/datasets#user) Тег для каждого пользователя, который будет иметь доступ к частным наборам данных. Для атрибута имени пользователя в теге:

    • Для пользователей, которые войдут в систему с Google, используйте адрес электронной почты Google.
    • Для пользователей, которые войдут с orcid, используйте номер учетной записи Orcid пользователя. (с тире) .

Не указывайте атрибут пароля для тега пользователя.   9. ПерезапуститьERDDAP™Внесение изменений в setup.xml иdatasets.xmlдействовать.  

Войти в любом случае

Если вы используете опции аутентификации google, orcid или oauth2, а Google Sign-In или Orcid's Authentication API внезапно перестают работать. (по какой бы то ни было причине) или перестает работать какERDDAP™Ожидает, пользователи не смогут войти в вашERDDAP. Как временный (постоянный) Решение, вы можете попросить пользователей зарегистрироваться в другой системе (Получите учетную запись электронной почты Google или учетную запись Orcid) . Для этого:

  1. Изменить<Тег аутентификации> позволяет использовать другую систему аутентификации. Опция oauth2 позволяет пользователям входить в систему с любой из них.
  2. дублировать каждый из<теги user> и изменить атрибут имени пользователя с адреса электронной почты Google на соответствующий номер учетной записи Orcid (или наоборот) Но сохраняйте атрибуты ролей одинаковыми.
Открытый

ERDDAP™Больше не поддерживает опцию аутентификации openid, которая была основана на версии openid. Идентификатор, который сейчас устарел. Вместо этого используйте опции google, orcid или oauth2.

базовый

ERDDAP™Не поддерживает аутентификацию, потому что:

  • BASIC, по-видимому, ориентирован на предопределенные веб-страницы, требующие безопасного доступа или полного доступа ко всему сайту.ERDDAP™разрешать (Ограниченный доступ) Наборы данных должны быть добавлены на лету.
  • Базовая аутентификация не дает пользователям возможности выйти из системы!
  • Базовая аутентификация не является безопасной.
Безопасные источники данных

Если набор данных имеет ограниченный доступ кERDDAP™пользователи, источник данных (откудаERDDAP™получает данные) Они не должны быть общедоступными. Как можноERDDAP™получить данные для наборов данных с ограниченным доступом? Некоторые варианты:

  • ERDDAP™может передавать данные из локальных файлов (Например, через EDDTable из материалов илиEDDGridИз материалов) .  
  • ERDDAP™может быть в aДМЗ и источник данных (Например,OPeNDAPсервер или база данных) может находиться за абрандмауэргде он доступен дляERDDAP™Но не для публики.  
  • Источник данных может быть на общедоступном веб-сайте, но для получения данных требуется логин. Два типа данных, которыеERDDAP™Может войти в систему доступаEDDTable FromDatabaseиEDDTable From Кассандра. Эти наборы данных поддерживают (Всегда следует использовать) имена пользователей (создатьERDDAP™Пользователь, имеющий только привилегии чтения) пароли, SSL-соединения и другие меры безопасности.

Но в целом в настоящее времяERDDAP™Они не могут работать с этими источниками данных, потому что у них нет условий для входа в систему. Именно поэтому доступ кEDDGridFromErddap и EDDTable Из ЭрддапаНаборы данных нельзя ограничивать. В настоящее время местноеERDDAP™не имеет возможности войти в систему и получить доступ к метаданным из удаленногоERDDAP. И поставить "удаленную"ERDDAP™За брандмауэром и удаление этого набора данных доступно Ограничения не решают проблему: поскольку пользователь запрашивает EDDXxx Данные FromErddap необходимо перенаправить на пультERDDAP™, удаленныйERDDAP™должны быть доступными.

Защита от хакеров

Есть хакеры, которые пытаются использовать слабые места безопасности в серверном программном обеспечении.ERDDAP.ERDDAP™Следуйте общим советам по безопасности, чтобы иметь несколько уровней защиты:

  • Ограниченные привилегии - Одной из наиболее важных защитных мер является запуск Tomcat через пользователя, называемого Tomcat, у которого нет пароля. (Никто не может войти в систему, как пользователь.) Имеет ограниченные привилегии файловой системы. (Например, доступ только для чтения к данным) . Видишь?ERDDAPИнструкция дляНастройка Tomcat.
  • Тяжелое использование - В общем,ERDDAP™Он создан для интенсивного использования, в том числе скриптами, которые выполняют десятки тысяч запросов один за другим. Это трудно дляERDDAP™одновременно открыть себя для серьезного законного использования и защитить себя от злоупотреблений. Иногда трудно дифференцировать тяжелое законное использование, чрезмерное законное использование и незаконное использование. (Иногда это действительно легко) . Среди прочих защит,ERDDAP™сознательно не допускает ни одного запроса на использование чрезмерной доли ресурсов системы; (Если система не является активной) .
  • Идентификация проблемных пользователей - еслиERDDAP™Замедляется или замерзает (Возможно, потому, что наивный пользователь или бот запускает несколько сценариев для отправки нескольких запросов одновременно или, возможно, из-за плохого парня.Отказ в обслуживаниинападение) Вы можете посмотреть наЕжедневный e-mail (и более частой идентичной информации вERDDAP™файл) отображает количество запросов, сделанных наиболее активными пользователями; (см. "IP-адрес запроса (допускается) ") .ERDDAP™Отправляйте электронные письма администратору, когда есть«Необычная активность: >25% запросов не удалось». Вы можете посмотреть вERDDAP™Файл журнала, чтобы увидеть характер их запросов. Если вы чувствуете, что кто-то делает слишком много запросов, (Ты не поверишь, что я видел, ну, может быть, ты поверишь) Или запросы типа атаки, вы можете добавить свой IP-адрес в черный список.
  • Черный список - Вы можете добавить IP-адрес проблемных пользователей, ботов иОтказ в обслуживанииНападавшие наERDDAP черный списокПоэтому будущие запросы от них будут немедленно отклонены. Эта установка вdatasets.xmlЧтобы вы могли быстро добавить IP-адрес в список, а затемфлагнабор данных, чтобыERDDAP™немедленно замечают и применяют изменения. Сообщение об ошибке, отправленное пользователям, включенным в черный список, побуждает их связаться сERDDAP™администратора, если он считает, что его по ошибке внесли в черный список. (По нашему опыту, несколько пользователей не знали, что они запускают несколько сценариев одновременно или что их сценарии делают бессмысленные запросы.)
  • Безопасность наборов данных - некоторые типы наборов данных (В частности, EDDTable FromDatabase) Дополнительные риски безопасности (Например, SQL-инъекция) имеют свои собственные меры безопасности. Смотрите информацию для этих типов наборов данных вРаботая сdatasets.xmlФайлособенноБезопасность EDDTableFromDatabase.
  • Аудит безопасности - ХотяNOAAИТ-безопасность годами отказывала нам в сканировании, теперь они регулярно сканируют мои запросы. (Боба.) ERDDAP™установка. Хотя при первоначальном сканировании были обнаружены некоторые проблемы, которые я затем исправил, при последующем сканировании не было обнаружено никаких проблем.ERDDAP. Сканирование беспокоит многих вещей: в частности, посколькуtabledapЗапросы выглядят как запросы SQL, они беспокоятся об уязвимостях SQL-инъекций. Но эти опасения необоснованны, потому чтоERDDAP™Всегда анализирует и проверяет запросы, а затем отдельно создает запрос SQL таким образом, чтобы избежать уязвимостей. Единственное, на что они иногда жалуются, так это на то, чтоJavaВерсии Tomcat не так актуальны, как они хотят, поэтому мы обновляем их в ответ. Раньше я предлагал показать людям отчеты по безопасности, но теперь мне говорят, что я не могу этого сделать.

Вопросы? Предложения?

Если у вас есть вопросы оERDDAPСистема безопасности или есть какие-либо вопросы, сомнения, проблемы или предложения о том, как она создана, см.Раздел о дополнительной поддержке.

Вещи, которые вам не нужно знать

Это детали, которые вам не нужно знать, пока не возникнет необходимость.

ВторойERDDAP™

  • Настройка второйERDDAP™Для тестирования/разработки
    Если вы хотите сделать это, есть два подхода:
  • (Лучший) Установить Tomcat иERDDAP™на компьютере, отличном от компьютера, который имеет вашу публичнуюERDDAP. Если вы используете свой персональный компьютер:
  1. Делайте установку по одному шагу за раз. Подними Томка и беги первым. Когда Tomcat бежит, менеджер Tomcat должен http://127.0.0.1:8080/manager/html/ (или, возможно, http://localhost:8080/manager/html/ )

  2. устанавливатьERDDAP.

  3. Не используйте ProxyPass для удаления номера порта.ERDDAP™URL.

  4. вНастройка.xmlУстановите baseUrl для http://127.0.0.1:8080

  5. После того, как вы начнете этоERDDAP™Вы должны быть в состоянии увидеть это в http://127.0.0.1:8080/erddap/status.html (или, возможно, http://localhost:8080/erddap/status.html )

Второй Tomcat

  • (Второе место) Установите другой Tomcat на том же компьютере, что и ваша публика.ERDDAP.
  1. Делайте установку по одному шагу за раз. Подними Томка и беги первым. Измените все номера портов, связанные со вторым Tomcat (Например, изменить 8080 на 8081) (Видишь?Несколько Tomcat Раздел Случаина полпути к этому документу) .

  2. устанавливатьERDDAP™Новый Tomcat.

  3. Не используйте ProxyPass для удаления номера порта.ERDDAP™URL.

  4. вНастройка.xmlУстановите baseUrl для http://www.*yourDomainName*:8081

  5. После того, как вы начнете этоERDDAP™Вы должны быть в состоянии увидеть это в http://www.*yourDomainName*:8081/erddap/status.html
     

Твердое государство ездит

  • Твердое государство ездит (SSD) Отлично!
    Самый быстрый, простой и дешевый способ ускоритьERDDAPДоступ к табличным данным заключается в размещении файлов данных на твердотельном накопителе (SSD) . Большинство табличных наборов данных относительно малы, поэтому SSD емкостью 1 или 2 ТБ, вероятно, достаточно для хранения всех файлов данных для всех ваших табличных наборов данных. SSD в конечном итоге изнашивается, если вы записываете данные в ячейку, удаляете их и записываете новые данные в эту ячейку слишком много раз. Поэтому, если вы просто используете свой SSD, чтобы записать данные один раз и прочитать их много раз, даже SSD потребительского класса должен длиться очень долго, вероятно, намного дольше, чем любой жесткий диск. (HDD) . Потребительские SSD теперь дешевы (в 2018 году ~ 200 долларов за 1 ТБ или ~ 400 долларов за 2 ТБ) И цены продолжают стремительно падать. КогдаERDDAP™получает доступ к файлу данных, SSD предлагает как более короткую задержку (~0,1 мс против ~3 мс для HDD, против ~10 (?) ms для RAID против ~55ms для Amazon S3) более высокая пропускная способность (~500 Мб/с против ~75 Мб/с для HDD, против ~500 Мб/с для RAID) . Таким образом, вы можете получить большой прирост производительности (До 10X против HDD) За 200 долларов! По сравнению с большинством других возможных изменений в вашей системе (Новый сервер за 10 тысяч долларов? Новый рейд за 35 тысяч долларов? Новый сетевой коммутатор за $5000 и т.д.) Это, безусловно, лучший возврат инвестиций (Рой) . Когда SSD умирает (1, 2, ... 8 лет) Замените его. Не полагайтесь на это как на долгосрочное архивное хранение данных, только для фронтальной копии данных.\[SSD также отлично подходит для сетчатых данных, но большинство сетчатых наборов данных намного больше, что делает SSD очень дорогим.\]

Если ваш сервер не загружен памятью, дополнительная память для вашего сервера также является отличным и относительно недорогим способом ускорить все аспекты работы.ERDDAP.  

Тяжелые грузы / ограничения **

При интенсивном использовании, отдельноERDDAP™Они могут быть ограничены различными проблемами. Для получения дополнительной информации см.Перечень ограничений и решений.  

Сети, кластеры и федерации

При очень интенсивном использовании один отдельныйERDDAP™Они сталкиваются с одним или несколькими ограничениями, и даже предлагаемых решений будет недостаточно. Для таких ситуаций,ERDDAP™имеет функции, которые позволяют легко создавать масштабируемые сетки (Также называется кластерами или федерациями.) изERDDAPs, которые позволяют системе справляться с очень тяжелым использованием; (Например, для большого центра обработки данных) . Для получения дополнительной информации см.Сети, кластеры и федерацииERDDAPs.  

Облачные вычисления

Несколько компаний начинают предлагатьУслуги облачных вычислений (например,Amazon Web Services) .Веб-хостинговые компанииНачиная с середины 1990-х годов, «облачные» сервисы значительно расширили гибкость систем и спектр предлагаемых услуг. Вы можете использовать эти услуги для создания одногоERDDAP™Сетка/кластерERDDAPs для очень интенсивного использования. Для получения дополнительной информации см.облачные вычисления сERDDAP™.

Amazon

  • Amazon Web Services (AWS) Обзор установки EC2
    Amazon Web Services (AWS) являетсяоблачные вычисленияОн предлагает широкий спектр компьютерной инфраструктуры, которую вы можете арендовать по часам. Вы можете установитьERDDAP™наУпругое вычислительное облако (EC2) пример (Имя для компьютера, который вы можете арендовать по часам) . AWS обладает отличнымиРуководство пользователя AWSВы можете использовать Google, чтобы найти ответы на конкретные вопросы. Приготовьтесь — это довольно много работы, чтобы начать. Но как только вы запустите один сервер, вы можете легко арендовать столько дополнительных ресурсов. (серверы, базы данных, SSD-пространство и т.д.) По мере необходимости, по разумной цене.\[Это не рекомендация или одобрение Amazon Web Services. Есть и другие облачные провайдеры.\]

Обзор вещей, которые вы должны сделать, чтобы получитьERDDAP™Работает в AWS:

  • Вы будете делать все, что описано вРуководство пользователя AWS.
  • Создайте учетную запись AWS.
  • Настройте пользователя AWS в этой учетной записи с правами администратора. Войдите как этот пользователь, чтобы сделать все следующие шаги.
  • Упругое хранение блоков (ЭБС) AWS эквивалент жесткого диска, подключенного к вашему серверу. Некоторое пространство EBS будет выделено при первом создании экземпляра EC2. Это постоянное хранилище - информация не теряется, когда вы останавливаете свой экземпляр EC2. И если вы меняете типы экземпляров, ваше пространство EBS автоматически прикрепляется к новому экземпляру.
  • Создайте эластичный IP-адрес, чтобы ваш экземпляр EC2 имел стабильный общедоступный URL-адрес. (В отличие от частного URL, который меняется каждый раз, когда вы перезагружаете свой экземпляр.) .
  • Создание и запуск экземпляра EC2 (компьютер) . Существует широкий спектрТипы экземпляровКаждый по другой цене. Пример m4.large или m4.xlarge является мощным и, вероятно, подходит для большинства применений, но выберите то, что соответствует вашим потребностям. Возможно, вы захотите использовать Linux от Amazon в качестве операционной системы.
  • Если ваш настольный компьютер / ноутбук является компьютером Windows, вы можете использоватьПуттиБесплатный SSH-клиент для Windows, чтобы получить доступ к командной строке вашего экземпляра EC2. Возможно, у вас есть программа SSH, которую вы предпочитаете.
  • При входе в свой экземпляр EC2 вы будете зарегистрированы как административный пользователь с именем пользователя «ec2-user». Пользователь ec2 имеет привилегию sudo. Итак, когда вам нужно сделать что-то как корневой пользователь, используйте: Командир
  • Если ваш настольный компьютер / ноутбук является компьютером Windows, вы можете использоватьFileZillaБесплатная программа SFTP для передачи файлов в / из вашего экземпляра EC2. Или, возможно, у вас есть какая-то другая программа SFTP, которую вы предпочитаете.
  • Установить ApacheНа примере EC2.
  • Следуйте стандартуERDDAP™Инструкция по установке.  

В ожидании повторного исключения

Пользователь может получить сообщение об ошибке В ожидании повторного исключения: Там был один (временной?) Проблема. Подожди минутку, потом попробуй еще раз. (В браузере нажмите кнопку Reload.)
GridDataAccessor.increment: частичные результаты\[0\]= "123542730" должно было быть "123532800".

Общим объяснением исключения WaitThenTryAgain является: КогдаERDDAP™Отвечает на запрос пользователя, может возникнуть неожиданная ошибка с набором данных (Например, ошибка при чтении данных из файла или ошибка при доступе к удаленному набору данных.) . Следующая записьДалее TriAgain Signals toERDDAP™что запрос не был удовлетворен (пока) но этоERDDAP™Постарайтесь быстро перезагрузить набор данных (зоветЗапросить ReloadASAP) и повторите запрос. Часто это удается, и пользователь просто видит, что ответ на запрос был медленным. В других случаях перезагрузка выходит из строя или происходит слишком медленно, или последующая попытка справиться с запросом также терпит неудачу и снова бросает WaitThenTryAgain. Если это случится,ERDDAP™отмечает набор данных для перезагрузки, но сообщает пользователю (Скачать игру WaitThenTryAgain) что произошел сбой при ответе на запрос.

Это нормальное поведение. Эта система может решать многие общие проблемы. Но эта система может быть запущена чрезмерно. Наиболее распространенной причиной является то, чтоERDDAPЗагрузка набора данных не видит проблемы, ноERDDAPОтвет на запрос данных видит проблему. Независимо от причины, решение заключается в том, чтобы иметь дело с тем, что не так с набором данных. Посмотрите в log.txt, чтобы увидеть сообщения об ошибках и решить проблемы. Если много файлов имеют действительные заголовки, но недействительные данные (Поврежденный файл) Замените файлы некоррумпированными. Если соединение с RAID слабое, исправьте его. Если подключение к удаленному сервису является ненадежным, найдите способ сделать его ненадежным или загрузить все файлы из удаленного источника и обслуживать данные из локальных файлов.

Подробное объяснение этой конкретной ошибки (выше) Это: Для каждогоEDDGridнабор данных,ERDDAP™сохраняет переменные значения оси в памяти. Они используются, например, для преобразования запрашиваемых значений оси, которые используют " () "формат в индексные номера. Например, если значения оси являются "10, 15, 20, 25", запрос на (20) будет интерпретироваться как запрос на индекс #2 (0-базовые индексы) . КогдаERDDAP™Получает запрос на данные и получает данные от источника, он проверяет, что значения оси, которые он получил от источника, соответствуют значениям оси в памяти. Как правило, делают. Но иногда источник данных существенно менялся: например, значения индекса с начала переменной оси могли быть удалены. (Например, "10, 15, 20, 25" может стать "20, 25, 30".) . Если это произойдет, то ясно, чтоERDDAPТолкование просьбы (например, " (20) "индекс #2) Теперь это неправильно. ТакERDDAP™Выбрасывает исключение и вызывает RequestReloadASAP.ERDDAP™Скоро обновят набор данных (часто в течение нескольких секунд, обычно в течение минуты) . Другие подобные проблемы также приводят к исключению WaitThenTryAgain.

Запросить ReloadASAP

Вы можете увидеть RequestReloadASAP в файле log.txt сразу после сообщения об ошибке.В ожидании повторного исключения. Это, по сути, внутренний, программный способERDDAP™установитьфлагЧтобы сигнализировать, что набор данных должен быть перезагружен как можно скорее.  

Файлы не удаляются

Для некоторыхERDDAP™Установки, возникла проблема с некоторыми временными файлами, создаваемымиERDDAP™оставаться открытым (ошибочно) и, таким образом, не удаляется. В некоторых случаях многие из этих файлов накопились и заняли значительное количество дискового пространства.

Надеюсь, что эти проблемы будут решены (какERDDAP™v2.00) . Если вы видите эту проблему, пожалуйста, напишите в каталог + имена оскорбительных файлов Крису. Джон на noaa.gov. У вас есть несколько вариантов решения проблемы:

  • Если файлы не большие и не приводят к истощению дискового пространства, вы можете игнорировать проблему.
  • Самое простое решение — закрыть Tomcat.ERDDAP™ (Через несколько часов, так что меньше пользователей затронуты) . Во время отключения, если операционная система не удаляет файлы, удалите их вручную. Затем перезапуститьERDDAP.  

ДЖОН-ЛД

Out-Of-Date URL

Медленно, но верно, URL-адреса, которые поставщики данных записали в файлы данных, становятся устаревшими. (Например,httpстановитсяhttpsРеорганизованы веб-сайты, а такие организации, как NODC/NGDC/NCDC, реорганизованы в NCEI.) . В результате неработающие ссылки являются постоянной проблемой, с которой сталкиваются все веб-сайты. Чтобы справиться с этим,ERDDAP™Теперь есть система для автоматического обновления устаревших URL-адресов. Если генерировать наборы данных Xml видит устаревший URL, он добавляет обновленный URL для<addAttributes>. Кроме того, когда набор данных загружается, еслиERDDAP™Увидев устаревший URL, он незаметно меняет его на обновленный URL. Изменения контролируются серией поиска / замены с парами, определенными в<UpdateUrls> вERDDAP? \[кот\]/webapps/erddap/WEB-INF/classes/gov/noaa/pfel/erddap/util/messages.xml файл. Вы можете внести изменения там. Если у вас есть предложения по изменениям, или если вы считаете, что это должно быть преобразовано в услугу (как конвертеры) Пожалуйста, напишите Крису. Джон на noaa.gov.  

Корсы

  • Корсы (Кросс-оригинальный обмен ресурсами)
    "является механизмом, позволяющим ограничивать ресурсы (например, шрифты илиERDDAP™данные) на веб-странице, запрашиваемой из другого домена за пределами домена, из которого был подан первый ресурс". (Арун Ранганатан) . По сути, CORS - это сообщение, которое можно поместить в HTTP-заголовок ответа, сказав по существу: "Это нормально для этого сайта, если некоторые другие сайты (конкретных, или всех) хватать ресурсы (например, данные) с этого сайта и сделать его доступным на своем сайте". Таким образом, это альтернативаJSONP.

РазработчикиERDDAP™Не претендуйте на звание эксперта по безопасности. Мы не совсем ясно понимаем проблемы безопасности, связанные с CORS. Мы не хотим делать никаких заявлений в поддержку действий, которые снижают безопасность. Так что мы останемся нейтральными и оставим это на каждого.ERDDAP™администратор, чтобы решить, стоит ли преимущества или включение заголовка CORS рисков. Как всегда, если вашERDDAP™Если у вас есть какие-либо личные наборы данных, рекомендуется быть особенно осторожным с безопасностью.

Если вы хотите использовать CORS для своихERDDAP™Есть, естьДоступные инструкцииописание того, как администраторы веб-сайтов могут включить заголовок CORS через свое серверное программное обеспечение более низкого уровня (например, Apache или nginx) .

Палетки

  • Палеты используютсяERDDAP™преобразовывать диапазон значений данных в диапазон цветов при создании графиков и карт.

Каждая палитра определена в файле палитры в стиле .cpt, используемомГМТ. ВсеERDDAP™Файлы .cpt являются действительными файлами GMT .cpt, но обратное неверно. Для использования вERDDAP™.cpt файлы имеют:

  • Дополнительные строки комментариев в начале файла, начиная с «#».
  • Основной раздел с описанием сегментов палитры, по одному сегменту на линию. Каждая строка описания сегмента имеет 8 значений: начинать Значение, начало, начало Зеленый, начинай. Синий, конечный цвет, красный, зеленый, синий. Может быть любое количество сегментов.ERDDAP™Использует линейную интерполяцию между начальным / зеленым / синим и конечным / зеленым / синим каждого сегмента.

Мы рекомендуем, чтобы каждый сегмент определял начальный и конечный цвета, которые отличаются друг от друга, и чтобы начальный цвет каждого сегмента был таким же, как и конечный цвет предыдущего сегмента, чтобы палитра описывала непрерывное сочетание цветов.ERDDAP™Имеет систему для создания на лету палитры дискретных цветов из палитры с непрерывным сочетанием цветов. АнERDDAP™Пользователь может указать, хочет ли он, чтобы палитра была непрерывной. (оригинал) или дискретный (полученный из оригинала) . Но есть законные причины не следовать этим рекомендациям для некоторых палитр.

  • Начальная и конечная величины должны быть целыми. Первый сегмент должен иметь начальную ценность = 0 и конечную ценность = 1. Второй сегмент должен иметь начальную ценность = 1 и конечную ценность = 2. И т.д.
  • Красный, зеленый и синий значения должны быть целыми числами от 0. (ни одного) ...255 (полностью) .
  • Конец файла должен иметь 3 строки с:
    1. Цвет фонового rgb для значений данных меньше минимума цветовой панели, например: B 128 128 128 Это часто стартовый красный, стартовый зеленый и стартовый синий первого сегмента.
    2. Цвет передней панели rgb для значений данных, превышающих максимум цветовой панели, например: F 128 0 0 Это часто конец красный, конец зеленый и конец синий последнего сегмента.
    3. Цвет rgb для значений данных NaN, например, N 128 128 128 Часто серый серый (128 128 128) .
  • Значения на каждой линии должны быть разделены вкладками, без посторонних пространств.

Образец файла .cpt - BlueWhiteRed.cpt:

Это BlueWhiteRed.cpt.

0 0 0 128 1 0 0 255 1 0 0 255 2 0 255 255 2 0 255 255 3 255 255 255 3 255 255 255 4 255 255 0 4 255 255 0 5 255 0 0 5 255 0 0 6 128 0 0 B 0 0 128 F 128 0 0 N 128 128 128

Смотрите существующие файлы .cpt для других примеров. Если есть проблемы с файлом .cpt,ERDDAP™Скорее всего, вы допустите ошибку при анализе файла .cpt. (Что лучше, чем неправильно использовать информацию) .

Вы можете добавить дополнительные палитрыERDDAP. Вы можете сделать их сами или найти их в Интернете. (Например, вcpt-город) Хотя вам, вероятно, придется немного отредактировать их формат, чтобы соответствоватьERDDAPТребования .cpt. Чтобы получитьERDDAP™Чтобы использовать новый файл .cpt, храните файл в кот /webapps/erddap/WEB-INF/cptfiles (Это нужно сделать для каждой новой версии.ERDDAP) и либо:

  • Если вы используете файл message.xml по умолчанию: добавьте имя файла в файл<Palettes > Tag in кот /webapps/erddap/WEB-INF/classes/gov/noaa/pfel/erddap/util/messages.xml. Если вы делаете это, вы должны делать это каждый раз, когда вы обновляете.ERDDAP.
  • Если вы используете пользовательский файл message.xml: добавьте имя файла в файл<палитры> тег в пользовательском файле message.xml: кот /content/erddap/messages.xml. Если вы делаете это, вам нужно сделать это только один раз. (Но есть и другая работа по поддержанию пользовательского файла message.xml) .

Затем перезапуститьERDDAP™такERDDAP™Замечает изменения. Преимущество такого подхода в том, что можно указать порядок палитр в представленном пользователям списке. Если вы добавляете коллекцию, мы рекомендуем вам добавить приставку с инициалами авторов. (например, "KT\_") название каждой палитры для идентификации коллекции и так, что может быть несколько палитр, которые в противном случае имели бы одно и то же имя.

Пожалуйста, не удаляйте и не меняйте ни одну из стандартных палитр. Они являются стандартной характеристикой всехERDDAP™Установки. Если вы считаете, что палитра или коллекция палитр должны быть включены в стандартERDDAP™Распределение, потому что это / они будут общего использования, пожалуйста, отправьте их Крису. Джон на noaa.gov.

Колорбары

  • Как это сделатьERDDAP™Создавать цвета в цветовой панели?
  1. Пользователь выбирает одну из предопределенныхпалитраили использует по умолчанию, например, Rainbow. Палеты хранятся/определяются в файлах таблицы цветов в стиле GMT.cpt. Каждый из нихERDDAPПредопределенные палитры имеют простой целочисленный диапазон, например, от 0 до 1 (Если в палитре есть только одна секция) или от 0 до 4 (Если в палитре четыре секции) . Каждый сегмент файла охватывает от n до n+1, начиная с n=0.
  2. ERDDAP™генерирует новый файл .cpt на лету, масштабируя диапазон предопределенной палитры (Например, 0-4) диапазон палитры, необходимой пользователю (например, от 0,1 до 50) а затем генерировать раздел в новой палитре для каждого раздела новой палитры (Например, шкала журнала с клещами на 0,1, 0,5, 1, 5, 10, 50 будет иметь 5 секций.) . Цвет для конечной точки каждого раздела генерируется путем нахождения соответствующего раздела палитры в файле .cpt, затем линейно интерполируя значения R, G и B. (Это то же самое, как GMT генерирует цвета из своих файлов таблицы цветов.) Эта система позволяетERDDAP™Начнем с общих палитр (Например, радуга с 8 сегментами, в общей сложности от 0 до 8) и создавать на заказ палитры на лету (Например, специальная радуга, которая отображает от 0,1 до 50 мг / л до цветов радуги.) .
  3. ERDDAP™Затем использует этот новый файл .cpt для генерации цвета для каждого цветного пикселя в цветовой панели. (и позднее для каждой точки данных при составлении графика или карты) , снова найдя соответствующий раздел палитры в файле .cpt, затем линейно интерполируя значения R, G и B.

Этот процесс может показаться излишне сложным. Но он решает проблемы, связанные с бревенчатыми шкалами, которые трудно решить другими способами.

Как имитировать то, чтоERDDAP™Делаешь? Это нелегко. Вы должны дублировать процесс, которыйERDDAP™Используется. Если вы являетесь aJavaПрограммист может использовать тот жеJavaкласс, которыйERDDAP™Использует для всего этого: кот /webapps/erddap/WEB-INF/classes/gov/noaa/pfel/coastwatch/sgt/CompoundColorMap.java.

Руководящие принципы для систем распределения данных

Можно найти более общие мнения о разработке и оценке систем распределения данных.здесь.  

Архив данных

Включен в свойERDDAP™Установка - это инструмент командной строки под названием ArchiveADataset, который может помочь вам создать архив. (а.zipили.tar.gzфайл) часть или весь набор данных, хранящийся в серии netcdf-3;.ncфайлы данных в формате файла, который подходит для представленияNOAAАрхив NCEI (.ncдля сетчатых наборов данных или.ncCFMAдля табличных наборов данных, указанныхНЦЭИNetCDFШаблоны v2.0) .

Архивы Набор данных может создавать два различных формата архива:

Неудивительно, чтоглобальные и переменные метаданныеэтоERDDAP™Поощрения/требования — это почти те же самые внутрифайловые метаданные CF и ACDD, которые поощряет/требует NCEI, поэтому все ваши наборы данных должны быть готовы к отправке в NCEI.Отправить 2NCEIилиАТРАК (Расширенный инструмент отслеживания и ресурсов NCEI для архивных коллекций) .

Если ты (тотERDDAP™администратор) использовать ArchiveADataset для отправки данных в NCEI, а затем (Не NCEI) Определите, когда отправлять часть данных в NCEI, и что это будет, потому что вы будете знать, когда появятся новые данные и как указать эту часть. (и NCEI не будет) . Таким образом, ArchiveADataset - это инструмент, который вы можете использовать для создания пакета для отправки в NCEI.

Архивы Набор данных может быть полезен в других ситуациях, например, дляERDDAP™администраторы, которым необходимо конвертировать подмножество набора данных (На частномERDDAP) из его родного формата файла в набор.ncФайлы CFЧтобы общественностьERDDAP™может передавать данные из.ncФайлы CF вместо исходных файлов.

Как только вы создалиERDDAP™и запустить его (хотя бы один раз) Вы можете найти и использовать ArchiveADataset в кот /webapps/erddap/WEB-INF каталог. Есть скрипт Shell (Архив данных:ADataset.sh) Linux/Unix и пакетный файл (Архив данных:ADataset.bat) Для Windows.

В Windows, когда вы впервые запускаете ArchiveADataset, вам нужно отредактировать ArchiveADataset. bat файл с текстовым редактором, чтобы изменить путь к java. Файл exe, чтобы Windows могла найтиJava.

Когда вы запускаете ArchiveADataset, он задаст вам ряд вопросов. Для каждого вопроса введите ответ, затем нажмите Enter. Или нажмите ^C, чтобы выйти из программы в любое время.

Или же вы можете привести ответы на вопросы в порядок в командной строке. Для этого запустите программу один раз, введите и запишите свои ответы. Вы можете создать единую командную строку. (Ответы как параметры) который запускает программу и отвечает на все вопросы. Используйте слово «по умолчанию», если вы хотите использовать значение по умолчанию для данного параметра. Используйте "" (Две двойные цитаты) как заполнитель для пустой струны. Определение параметров в командной строке может быть очень удобным, например, если вы используете ArchiveADataset один раз в месяц для архивирования данных за месяц. После того, как вы сгенерировали командную строку с параметрами и сохранили ее в заметках или в скрипте оболочки, вам просто нужно вносить небольшие изменения каждый месяц, чтобы сделать архив этого месяца.

Вопросы, которые задает ArchiveADataset, позволяют вам:

  • Укажите оригинальную или упаковку файла Bagit. Для NCEI используйте Bagit.
  • Укажите zip или tar.gzКомпрессия для упаковки. Для NCEI используйте смолу.gz.
  • Укажите контактный адрес электронной почты для этого архива (Он будет записан в файле READ\_ME.txt в архиве.) .
  • УкажитеdatasetIDНабор данных, который вы хотите архивировать.
  • Укажите, какие переменные данных вы хотите архивировать (Обычно все) .
  • Укажите, какое подмножество набора данных вы хотите архивировать. Вам нужно отформатировать подмножество так же, как вы отформатировали бы подмножество для запроса данных, поэтому оно будет отличаться для сетчатых, чем для табличных наборов данных.
    • Для сетчатых наборов данных можно указать диапазон значений самого левого измерения, обычно это диапазон времени. ArchiveADataset делает отдельный запрос и генерирует отдельный файл данных для каждого значения в диапазоне значений. Поскольку сетчатые наборы данных обычно большие, вам почти всегда придется указывать небольшое подмножество относительно размера всего набора данных. Например,\[ (2015-12-01) : (2015-12-31) \]\[\]\[\]\[\]
    • Для табличных наборов данных можно указать любой набор ограничений, но это часто диапазон времени. Поскольку табличные наборы данных обычно малы, часто можно указать отсутствие ограничений, так что весь набор данных архивируется. Например, &time>=2015-12-01&time<2016-01-01
  • Для табличных наборов данных: укажите разделенный запятой список из 0 или более переменных, которые определят, как архивированные данные дополнительно помещаются в различные файлы данных. Для наборов данных, которые имеют cdm\_data\_typeСериалы TimeSeries|TimeSeriesПрофиль|Траектория|TrajectoryProfile Вы должны почти всегда указывать переменную, которая имеет cf\_role=timeseries\_id. (например,stationID) или cf\_role=trajectory\_id атрибут. ArchiveADataset делает отдельный запрос и генерирует отдельный файл данных для каждой комбинации значений этих переменных, например, для каждой из них.stationID. Для всех других табличных наборов данных вы, вероятно, не будете указывать какие-либо переменные для этой цели. Предупреждение: Если подмножество набора данных, который вы архивируете, очень велико. (2GB) и нет подходящей переменной для этой цели, тогда ArchiveADataset не может использоваться с этим набором данных. Это должно быть редкостью.
  • Укажите формат файла для файлов данных, которые будут созданы. Для сетчатых наборов данных, для NCEI, использование.nc. Для табличных наборов данных, для NCEI, использовать.ncCFMAесли это вариант; иным образом использовать.nc.
  • Укажите тип дайджеста файлов, который будет создан для каждого файла данных и для всего пакета архивов: MD5, SHA-1 или SHA-256. Дайджест файлов обеспечивает путь для клиента (например, NCEI) Чтобы проверить, поврежден ли файл данных. Традиционно это были.md5 файлыНо теперь есть лучшие варианты. Для NCEI используйте SHA-256.

После того, как вы ответите на все вопросы, ArchiveADataset:

  1. Сделайте серию запросов к набору данных и поставьте полученные файлы данных в BigParent Директория /ArchiveADataset/ datasetID\_timestamp /. Для сетчатых наборов данных будет файл для каждого значения самого левого измерения. (Например, время) . Имя файла будет таким значением. (Например, временная стоимость) . Для табличных наборов данных будет файл для каждого значения ... переменной (s) . Имя файла будет таким значением. Если существует более одной переменной, левые переменные будут использоваться для создания имен подкаталогов, а правая переменная будет использоваться для создания имен файлов. Каждый файл данных должен быть<2 ГБ (Максимально допустимый.ncВерсия 3 Файлы) .

  2. Сделайте файл, связанный с каждым файлом данных, с дайджестом файла данных. Например, если файл данных 46088.ncи тип дайджеста .sha256, тогда файл дайджеста будет иметь имя 46088.nc.sha256.

  3. Сделайте файл READ\_ME.txt с информацией об архиве, включая список всех настроек, которые вы указали для создания этого архива.

  4. Создайте 3 файла в BigParent Директория /ArchiveADataset/:

    • А..zipили.tar.gzАрхивный файл с именем datasetID\_timestamp .zip (или.tar.gz) содержит все постановочные файлы данных и файлы дайджеста. Этот файл может быть любого размера, ограниченного только дисковым пространством.
    • Дайджест-файл для архивного файла, например, datasetID\_timestamp .zip.sha256.txt
    • Для «оригинального» типа архива используется текстовый файл с именем datasetID\_timestamp .zip.listOfFiles.txt (или.tar.gz) который содержит все файлы в.zip (или.tar.gz) Файл.

Если вы готовите архив для NCEI, это файлы, которые вы отправите в NCEI.Отправить 2NCEIилиАТРАК (Расширенный инструмент отслеживания и ресурсов NCEI для архивных коллекций) . 5. Удалите все постановочные файлы, чтобы только архивный файл (например,.zip) , дайджест (Например, .sha256.txt) из архива и (необязательно) Файлы .listOfFiles.txt остаются.

ISO 19115.xml Файлы метаданных

Пакет архивов ArchiveADataset не включает в себя файл метаданных ISO 19115 .xml для набора данных. Если вы хотите / должны отправить файл ISO 19115 для своего набора данных в NCEI, вы можете отправить им файл метаданных ISO 19115 .xml, которыйERDDAP™Создан для набора данных (ноNMFSЛюди должны получить файл ISO 19115 для своих наборов данных из InPort.ERDDAP™уже не обслуживает этот файл) .

Проблемы? Предложения? ArchiveAdataset является новым. Если у вас есть проблемы или предложения, см.Раздел о дополнительной поддержке.