Рейтинг:0

Tomcat 9, развернутый с использованием докера, случайно достиг 200% ЦП без каких-либо веб-приложений

флаг in

Привет, у меня есть Tomcat 9, работающий на машине AWS, использующий следующий файл компоновки докеров:

версия: '3'
Сервисы:
  фстомкэт:
    изображение: кот:9
    имя_контейнера: fstomcat
    порты:
      - 443:443
    тома:
      - /opt/tomcat/webapps:/usr/local/tomcat/webapps
      - /opt/tomcat/conf:/usr/local/tomcat/conf
      - /opt/tomcat/журналы:/usr/local/tomcat/журналы

На данный момент нет веб-приложений (веб-приложения пусты). В этом EC2 есть только Tomcat. Никакого Apache, никакого другого веб-сервера или сервера базы данных. Однако AWS сообщает о случайных скачках загрузки ЦП. Когда я попадаю в контейнер, java загружается на 199%. Последний всплеск произошел 20.06.2021 в 13:30, и за этот день у меня есть только следующие журналы:

Каталина:

20 июня 2021 г. 09:45:04.595 ИНФОРМАЦИЯ [https-openssl-nio-443-exec-6] org.apache.coyote.http11.Http11Processor.service Ошибка анализа заголовка HTTP-запроса
 Примечание. Дальнейшие случаи ошибок синтаксического анализа HTTP-запросов будут регистрироваться на уровне DEBUG.
        java.lang.IllegalArgumentException: в цели запроса найден недопустимый символ [/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_$
                на org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:490)
                на org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:261)
                в org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
                в org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
                в org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
                в org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
                в java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
                в java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
                в org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
                в java.base/java.lang.Thread.run(Thread.java:834)

доступ:

192.241.220.30 - - [20.06.2021:00:22:53 +0000] "-" 400 -
74.82.47.4 - - [20.06.2021:00:31:59 +0000] "-" 400 -
74.82.47.4 - - [20.06.2021:00:32:03 +0000] "-" 400 -
74.82.47.4 - - [20.06.2021:00:32:03 +0000] "-" 400 -
74.82.47.4 - - [20.06.2021:00:32:03 +0000] "-" 400 -
74.82.47.4 - - [20.06.2021:00:32:04 +0000] "-" 400 -
74.82.47.4 - - [20.06.2021:00:32:06 +0000] "-" 400 -
74.82.47.4 - - [20.06.2021:00:32:08 +0000] "-" 400 -
74.82.47.4 - - [20.06.2021:00:33:03 +0000] "-" 400 -
162.216.17.178 - - [20.06.2021:00:41:24 +0000] "-" 400 -
128.1.248.42 - - [20/Jun/2021:01:17:50 +0000] "GET / HTTP/1.1" 404 682
192.241.215.206 - - [20 июня 2021:01:56:40 +0000] "GET /actuator/health HTTP/1.1" 404 682
45.33.79.16 - - [20.06.2021:02:19:19 +0000] "-" 400 -
209.17.97.98 - - [20.06.2021:02:57:39 +0000] "-" 400 -
162.216.17.71 - - [20.06.2021:04:19:13 +0000] "-" 400 -
45.83.67.150 - - [20.06.2021:04:58:00 +0000] "-" 400 -
66.240.205.34 - - [20.06.2021:06:08:25 +0000] "-" 400 -
45.33.79.16 - - [20.06.2021:06:18:56 +0000] "-" 400 -
162.62.123.46 - - [20/Jun/2021:08:04:09 +0000] "GET / HTTP/1.0" 404 682
192.241.218.53 - - [20/Jun/2021:08:12:25 +0000] "GET /owa/auth/logon.aspx?url=https%3a%2f%2f1%2fecp%2f HTTP/1.1" 404 682
162.216.17.71 - - [20.06.2021:08:18:54 +0000] "-" 400 -
45.146.165.123 - - [20/Jun/2021:09:44:57 +0000] "POST /Autodiscover/Autodiscover.xml HTTP/1.1" 404 682
45.146.165.123 - - [20 июня 2021:09:44:59 +0000] "GET /_ignition/execute-solution HTTP/1.1" 404 682
45.146.165.123 - - [20/Jun/2021:09:45:00 +0000] "GET / HTTP/1.1" 404 682
45.146.165.123 - - [20/Jun/2021:09:45:02 +0000] "POST /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1" 404 682
45.146.165.123 - - [20/Jun/2021:09:45:04 +0000] "GET null HTTP/1.1" 400 2273
45.146.165.123 - - [20/Jun/2021:09:45:06 +0000] "GET /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1" 404 682
45.146.165.123 - - [20/Jun/2021:09:45:06 +0000] "GET /?XDEBUG_SESSION_START=phpstorm HTTP/1.1" 404 682
45.146.165.123 - - [20/Jun/2021:09:45:07 +0000] "GET /wp-content/plugins/wp-file-manager/readme.txt HTTP/1.1" 404 682
45.146.165.123 - - [20/Jun/2021:09:45:08 +0000] "POST /mifs/.;/services/LogService HTTP/1.1" 404 682
45.146.165.123 - - [20/Jun/2021:09:45:09 +0000] "GET /console/ HTTP/1.1" 404 682
45.33.79.16 - - [20.06.2021:10:19:25 +0000] "-" 400 -
193.118.53.210 - - [20/Jun/2021:10:20:10 +0000] "GET / HTTP/1.1" 404 682
162.216.17.71 - - [20.06.2021:12:19:00 +0000] "-" 400 -
138.68.175.207 - - [20.06.2021:13:28:31 +0000] "-" 400 -
138.68.175.207 - - [20.06.2021:13:28:35 +0000] "-" 400 -
138.68.175.207 - - [20.06.2021:13:28:35 +0000] "-" 400 -
138.68.175.207 - - [20.06.2021:13:28:35 +0000] "-" 400 -
138.68.175.207 - - [20.06.2021:13:28:35 +0000] "-" 400 -
165.22.86.42 - - [20.06.2021:13:56:50 +0000] "-" 400 -
162.142.125.39 - - [20.06.2021:14:01:08 +0000] "-" 400 -
162.142.125.39 - - [20/Jun/2021:14:01:10 +0000] "GET / HTTP/1.1" 404 682
162.142.125.39 - - [20/Jun/2021:14:01:10 +0000] "GET / HTTP/1.1" 404 682
60.217.75.69 - - [20/Jun/2021:14:22:42 +0000] "GET / HTTP/1.1" 404 682
172.105.172.151 - - [20 июня 2021:14:35:22 +0000] "GET /owa/HTTP/1.1" 404 682
192.241.214.26 - - [20/Jun/2021:15:04:40 +0000] "GET / HTTP/1.1" 404 682
34.90.100.245 - - [20 июня 2021:15:18:59 +0000] "GET /.env HTTP/1.1" 404 682
34.90.100.245 - - [20/Jun/2021:15:19:00 +0000] "POST / HTTP/1.1" 404 682
128.14.134.170 - - [20/Jun/2021:16:01:33 +0000] "GET / HTTP/1.1" 404 682
97.107.132.27 - - [20.06.2021:16:19:28 +0000] "-" 400 -
173.255.234.116 - - [20.06.2021:16:30:04 +0000] "-" 400 -
23.90.160.130 - - [20/Jun/2021:16:37:09 +0000] "GET / HTTP/1.1" 404 682
23.95.191.195 - - [20/Jun/2021:16:50:06 +0000] "POST /GponForm/diag_Form?style/HTTP/1.1" 404 682
162.216.17.71 - - [20.06.2021:18:18:33 +0000] "-" 400 -
193.118.53.210 - - [20/Jun/2021:18:29:39 +0000] "GET / HTTP/1.1" 404 682
51.159.23.43 - - [20/Jun/2021:18:44:34 +0000] "GET / HTTP/1.1" 404 682
45.79.168.6 - - [20.06.2021:20:19:38 +0000] "-" 400 -
192.241.220.87 - - [20.06.2021:20:48:59 +0000] "-" 400 -
192.241.220.87 - - [20.06.2021:20:48:59 +0000] "-" 400 -
192.241.220.87 - - [20.06.2021:20:48:59 +0000] "-" 400 -
192.241.220.87 - - [20.06.2021:20:48:59 +0000] "-" 400 -
192.241.220.87 - - [20.06.2021:20:48:59 +0000] "-" 400 -
192.241.220.87 - - [20.06.2021:20:48:59 +0000] "-" 400 -
192.241.220.87 - - [20.06.2021:20:49:00 +0000] "-" 400 -
192.241.220.87 - - [20.06.2021:20:49:00 +0000] "-" 400 -
192.241.212.36 - - [20.06.2021:21:03:09 +0000] "-" 400 -
128.14.209.162 - - [20/Jun/2021:21:36:20 +0000] "GET / HTTP/1.1" 404 682
192.241.218.97 - - [20/Jun/2021:22:11:38 +0000] "GET /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application HTTP/1.1" 404 682
45.79.144.15 - - [20.06.2021:22:19:16 +0000] "-" 400 -
162.142.125.40 - - [20.06.2021:23:08:05 +0000] "-" 400 -
162.142.125.40 - - [20/Jun/2021:23:08:07 +0000] "GET / HTTP/1.1" 404 682
162.142.125.40 - - [20/Jun/2021:23:08:07 +0000] "GET / HTTP/1.1" 404 682
45.63.12.50 - - [20.06.2021:23:49:07 +0000] "-" 400 -

системный журнал:

20 июня, 13:00:24 ip-172-30-1-110 systemd-timesyncd[21286]: изменена конфигурация сети, попытка установить соединение.
20 июня 13:00:24 ip-172-30-1-110 systemd-networkd [13629]: ens5: настроено
20 июня, 13:00:24 ip-172-30-1-110 systemd-timesyncd[21286]: синхронизировано с сервером времени 91.189.89.198:123 (ntp.ubuntu.com).
20 июня 13:17:01 ip-172-30-1-110 CRON[21362]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
20 июня 13:30:24 ip-172-30-1-110 systemd-networkd [13629]: ens5: настроено
20 июня 13:30:24 ip-172-30-1-110 systemd-timesyncd[21286]: изменена конфигурация сети, попытка установить соединение.
20 июня, 13:30:24 ip-172-30-1-110 systemd-timesyncd[21286]: синхронизировано с сервером времени 91.189.89.198:123 (ntp.ubuntu.com).

Вот как сервер запускается:

23 июня 2021 г. 17:37:03.904 ПРЕДУПРЕЖДЕНИЕ [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin Match [Server/Service/Connector] не удалось установить для свойства [maxSpareThreads] значение [75]
23 июня 2021 г. 17:37:03.999 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Имя версии сервера: Apache Tomcat/9.0.41
23 июня 2021 г. 17:37:04.000 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Сервер создан: 3 декабря 2020 г., 11:43:00 UTC
23 июня 2021 г. 17:37:04.001 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Номер версии сервера: 9.0.41.0
23 июня 2021 г. 17:37:04.003 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Имя ОС: Linux
23 июня 2021 г. 17:37:04.003 ИНФОРМАЦИЯ [основная] org.apache.catalina.startup.VersionLoggerListener.log Версия ОС: 5.4.0-1029-aws
23 июня 2021 г. 17:37:04.004 ИНФОРМАЦИЯ [основная] org.apache.catalina.startup.VersionLoggerListener.log Архитектура: amd64
23 июня 2021 г. 17:37:04.004 ИНФОРМАЦИЯ [основная] org.apache.catalina.startup.VersionLoggerListener.log Домашняя страница Java: /usr/local/openjdk-11
23 июня 2021 г. 17:37:04.005 ИНФОРМАЦИЯ [основная] org.apache.catalina.startup.VersionLoggerListener.log Версия JVM: 11.0.10+9
23 июня 2021 г. 17:37:04.005 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Поставщик JVM: Oracle Corporation
23 июня 2021 г. 17:37:04.006 ИНФОРМАЦИЯ [основная] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
23 июня 2021 г. 17:37:04.006 ИНФОРМАЦИЯ [основная] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
23 июня 2021 г. 17:37:04.007 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Аргумент командной строки: --add-opens=java.base/java.lang=ALL-UNNAMED
23 июня 2021 г. 17:37:04.008 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Аргумент командной строки: --add-opens=java.base/java.io=ALL-UNNAMED
23 июня 2021 г. 17:37:04.008 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Аргумент командной строки: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
23 июня 2021 г. 17:37:04.008 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Аргумент командной строки: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging .характеристики
23 июня 2021 г. 17:37:04.009 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Аргумент командной строки: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
23 июня 2021 г. 17:37:04.009 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Аргумент командной строки: -Djdk.tls.ephemeralDHKeySize=2048
23 июня 2021 г. 17:37:04.010 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Аргумент командной строки: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
23 июня 2021 г. 17:37:04.016 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Аргумент командной строки: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
23 июня 2021 г. 17:37:04.017 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Аргумент командной строки: -Dignore.endorsed.dirs=
23 июня 2021 г. 17:37:04.018 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Аргумент командной строки: -Dcatalina.base=/usr/local/tomcat
23 июня 2021 г. 17:37:04.018 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Аргумент командной строки: -Dcatalina.home=/usr/local/tomcat
23 июня 2021 г. 17:37:04.018 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Аргумент командной строки: -Djava.io.tmpdir=/usr/local/tomcat/temp
23 июня 2021 г. 17:37:04.025 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Загружена собственная библиотека Apache Tomcat [1.2.25] с использованием версии APR [1.6.5].
23 июня 2021 г. 17:37:04.025 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Возможности APR: IPv6 [true], sendfile [true], фильтры accept [false], random [true].
23 июня 2021 г. 17:37:04.026 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Конфигурация APR/OpenSSL: useAprConnector [false], useOpenSSL [true]
23 июня 2021 г. 17:37:04.030 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL успешно инициализирован [OpenSSL 1.1.1d, 10 сентября 2019 г.]
23 июня 2021 г. 17:37:04.634 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["https-openssl-nio-443"]
23 июня 2021 г. 17:37:05.225 INFO [main] org.apache.catalina.startup.Catalina.load Инициализация сервера за [1569] миллисекунд
23 июня 2021 г. 17:37:05.324 INFO [main] org.apache.catalina.core.StandardService.startInternal Служба запуска [Catalina]
23 июня 2021 г. 17:37:05.324 ИНФОРМАЦИЯ [основная] org.apache.catalina.core.StandardEngine.startInternal Стартовый механизм сервлета: [Apache Tomcat/9.0.41]
23 июня 2021 г. 17:37:05.365 INFO [main] org.apache.coyote.AbstractProtocol.start Запуск обработчика протокола ["https-openssl-nio-443"]
23 июня 2021 г. 17:37:05.396 INFO [main] org.apache.catalina.startup.Catalina.start Запуск сервера за [170] миллисекунд

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

Хотелось бы узнать, сталкивался ли кто-нибудь с подобным и есть ли идеи, как это исправить?

Рейтинг:0
флаг by

Ваш сервер регулярно сканируется на наличие уязвимостей бот-сетями/вирусами. Если это приведет к сбою в обслуживании, вы можете использовать фейл2бан в черный список IP-адресов, которые вызывают много 400 ошибки за короткое время.

Вы можете сделать то же самое для 404 ошибки, но обязательно сопоставляйте только те URI запросов, которые никогда не существовали на вашем сайте, иначе вы можете заблокировать сканеры поисковых систем.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.