我们注意到 Amazon Linux 2 上的 wget 是 v1.14,但在较旧版本的 Amazon Linux 上,它是 v1.18。
知道为什么会这样吗?我很确定我们在这两种情况下都是从 yum 安装的。
有没有办法让 yum 在 Amazon Linux 2 下安装更现代的 wget?
Amazon Linux 1 上的“repoquery -i wget”:
Name : wget
Version : 1.18
Release : 5.30.amzn1
Architecture: x86_64
Size : 2497696
Packager : Amazon.com, Inc. <http://aws.amazon.com>
Group : Applications/Internet
URL : http://www.gnu.org/software/wget/
Repository : amzn-updates
Summary : A utility for retrieving files using the HTTP or FTP protocols
Source : wget-1.18-5.30.amzn1.src.rpm
Run Code Online (Sandbox Code Playgroud)
在 Amazon Linux 2 上:
Name : …Run Code Online (Sandbox Code Playgroud) 我们正在尝试将我们的 Java 应用程序从当前的 Elastic Beanstalk JDK 8 平台迁移到在 Amazon Linux 2 上运行 Corretto 11 的新平台。该应用程序运行良好,但处理日志的方式发生了变化。Web 进程的输出现在存储在其中/var/log/web.stdout.log,每一行都以时间戳和进程名称为前缀,即:
May 20 17:00:00 ip-10-48-41-129 web: {"timestamp":"2020-05-20T17:00:00.035Z","message":"...","logger":"...","thread":"MessageBroker-2","level":"INFO"}
Run Code Online (Sandbox Code Playgroud)
我们怎样才能摆脱前缀?这些日志被流式传输到 CloudWatch,我们将它们以 JSON 格式输出到标准输出,以便我们稍后可以使用 Logs Insights 查询它们。但是使用前缀,Insights 不会“看到”JSON,只是将整行视为文本 blob。
我在 AWS 上找不到任何相关文档。几乎所有 Elastic Beanstalk 的文档都提到了 Amazon Linux 的第一个版本。
我在 AWS 的 EC2 实例上运行 Amazon Linux 2。我希望能够添加我自己的 iptables 规则,并让它们在重启后继续存在。
什么是正确的方式(或者一个正确的方法)来做到这一点?
我目前正在尝试在 amazoncorretto:11 基础映像上安装 node18。我收到错误
#6 11.04 Error: Package: 2:nodejs-18.16.0-1nodesource.x86_64 (nodesource)
#6 11.04 Requires: libc.so.6(GLIBC_2.28)(64bit)
#6 11.04 Error: Package: 2:nodejs-18.16.0-1nodesource.x86_64 (nodesource)
#6 11.04 Requires: libm.so.6(GLIBC_2.27)(64bit)
Run Code Online (Sandbox Code Playgroud)
此处描述: https: //github.com/nodesource/distributions/issues/1381
我想我需要将 glibc 更新到支持 node18 的版本,但这在 amazonlinux2 上可能吗?
我正在摆弄一些超时设置,并试图找出为 systemd/系统守护进程设置内容的正确方法。具体来说,这是一个动力不足的服务器,并且我在启动 clamd 时总是超时,因此我试图弄清楚需要将 TimeoutStartSec 参数设置为多高。我试过
systemctl edit --full clamd@.service
并编辑它说
TimeoutStartSec=20min
然后做了systemctl daemon-reload
但7分钟后它就神秘地超时了。最终,我发现/usr/lib/systemd/system/clamd@.service有TimeoutStartSec=420。
可能违背了所有正确的做法,我编辑了/usr/lib文件的版本,并注释掉了该行。果然,这改变了事情,但它似乎仍然没有读取版本/etc/systemd。一旦我将其注释掉,它就会在 90 秒后开始超时,我想这一定是默认值。
作为临时解决方法,我已将/usr/lib版本编辑为我想要的 20 分钟,但是......这似乎不是正确的做事方式。
应该systemctl edit编辑版本吗/etc/systemd/system?这是公认的正确做事方式吗?我还需要做更多的事情吗systemctl daemon-reload?
对有关正确方法的任何和所有建议持开放态度。
TIA
我已经在 Amazon Linux 2 上设置了 Fail2Ban,使用nginx-http-auth以下覆盖配置启用内置监狱:
[nginx-http-auth]
enabled = true
action = iptables[name=HTTPS, port=https, protocol=tcp]
logpath = <snip>/logs/*error*.log
findtime = 15m
bantime = 15m
maxretry = 5
Run Code Online (Sandbox Code Playgroud)
该操作正在触发,我收到以下条目iptables -S:
-A f2b-HTTPS -s 120.<snip>.122/32 -j REJECT --reject-with icmp-port-unreachable
Run Code Online (Sandbox Code Playgroud)
但是,我可以继续从被禁止的 IP 发出新的 HTTPS 请求,这些请求正在接收来自 Nginx 的 401 响应。我从两个 IP 地址进行复制 - 我的手机和另一个 EC2 主机。
以下是完整输出iptables -L:(注意:Nginx 在 Docker 内部运行,另外两个与本地网络隔离的容器也是如此)
Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-HTTPS tcp -- anywhere anywhere tcp dpt:https
Chain …Run Code Online (Sandbox Code Playgroud)