AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-179901

Garreth McDaid's questions

Martin Hope
Garreth McDaid
Asked: 2019-11-13 06:29:56 +0800 CST

使用 X-Accel-Redirect 时禁止 Nginx 403 访问

  • 0

我在 Nginx 中遇到了安全问题,并且X-Accel-Redirect.

Nginx 服务器 777

location /api {
   allow 100.100.100.1;
   deny all;
   proxy_pass http://api-server;
}

#The api-sever will respond with an `X-Accel-Redirect` header to the following location `@server888`

location @server888 {
   internal;
   proxy_pass http://server888$request_uri;
}

Nginx Server 888具有相同的配置/api

location /api {
   allow 100.100.100.1;
   deny all;
   proxy_pass http://api-server;
}

但是,从源 ip100.100.100.1到Server 777的所有请求都从Server 777获得 403 响应,并出现错误:

access forbidden by rule while reading response header from upstream

从我所见,该@server888位置阻止了请求,但我的理解是该internal指令应该允许来自 的请求X-Accel-Redirect,而不必allow为100.100.100.1.

这个对吗?或者我是否需要在该@server888位置授予更广泛的权限才能使其正常工作?

nginx
  • 1 个回答
  • 580 Views
Martin Hope
Garreth McDaid
Asked: 2017-12-24 10:40:33 +0800 CST

创建 PostgreSQL 9.5 副本的问题

  • 0

我正在尝试为 PostgreSQL 9.5 主服务器创建一个热备份副本。

我使用的基本过程是在 master 上启动备份:

SELECT pg_start_backup('label', true)

然后在从属服务器上运行 pg_basebackup:

pg_basebackup -h <master ip> -D /data/pgsql/9.5/data -U replicator -v -P  --xlog-method=stream

完成后,我执行命令以停止主服务器上的备份:

SELECT pg_stop_backup()

此时,我在 STDOUT 上得到以下信息:

NOTICE:  pg_stop_backup cleanup done, waiting for required WAL segments to be archived
WARNING:  pg_stop_backup still waiting for all required WAL segments to be archived (60 seconds elapsed)
HINT:  Check that your archive_command is executing properly.  pg_stop_backup can be canceled safely, but the database backup will not be usable without all the WAL segments.

这将继续并且不会退出。

主服务器上的归档命令设置为:

rsync -a %p <replica ip>:/data/wal-archive/%f

最初,这不起作用,因为需要接受服务器密钥。一旦我手动执行此操作,rsync 就会启动,我可以在 /data/wal-archive 中看到大量文件(目前约为 15GB)。

这是一个 20TB 的数据库,所以我真的不想通过搞砸一些东西来重新开始这个过程。

退出发出警告的终端是否安全?我在其他帖子中读到,archive_mode 只需要在将 DB 流式传输到副本的过程中打开,以设置副本,除此之外,它不是必需的。

在这种情况下,我可以在终端上执行 CTRL-C 并继续配置副本吗?

然后我可以在 master 上关闭 archive_mode 吗?

postgresql
  • 1 个回答
  • 317 Views
Martin Hope
Garreth McDaid
Asked: 2017-03-22 06:44:31 +0800 CST

如何将应用程序日志从 Docker 容器转发到 ELK

  • 5

我正在尝试将日志集中在使用多种应用程序技术(Java、Rails 和各种 DB)的环境中。

我们希望开发人员使用 Docker Compose 构建堆栈,但我们希望他们参考中央日志源 (ELK) 来调试问题,而不是尝试打开 shell 来运行 Docker 容器。

应用程序都写入文件系统而不是 STDOUT/STDERR,这删除了与 Docker 日志记录驱动程序和 logspout 相关的所有选项。

我们所做的是将容器配置为让 rsyslog 包含应用程序日志文件,并将这些文件转发到具有 syslog 输入的 logstash。这适用于将日志从 A 移动到 B,但是基于 syslog 输入在 ELK 中管理多技术日志是可怕的(例如,尝试捕获多个 Java 堆栈跟踪或 MySQL 慢查询)。

有一个更好的方法吗?我是否应该在每个容器中运行 logstash,以便我可以将过滤器和编解码器直接应用于日志文件,这样我就不必依赖 syslog 输入?

是否有某种方法可以将 Docker 日志记录驱动程序与写入文件系统的应用程序日志文件一起使用?

docker
  • 2 个回答
  • 3817 Views
Martin Hope
Garreth McDaid
Asked: 2017-03-17 04:30:18 +0800 CST

用于 Java 堆栈跟踪的 Logstash 多行编解码器

  • 1

logstash 文档表明您可以使用多行编解码器将 Java 堆栈跟踪日志条目中的多个缩进行折叠成单个事件:

https://www.elastic.co/guide/en/logstash/current/plugins-codecs-multiline.html

input {
   syslog {
       type => syslog
       port => 8514
       codec => multiline {
            pattern => "^\s"
            what => "previous"
       }
  }
}

这是基于 logstash 在行首找到一个缩进并将其与上一行结合起来的。

但是,logstash 文档是我唯一可以找到参考的地方。一般用户社区似乎正在使用精心制作的 grok 过滤器来达到相同的效果。

我已经尝试过logstash提供的基本缩进模式,但它不起作用。有没有其他人通过匹配缩进模式来实现这个工作?

java logstash grok
  • 1 个回答
  • 1932 Views
Martin Hope
Garreth McDaid
Asked: 2015-09-18 07:37:27 +0800 CST

使用 boto 更新 ElasticBeanstalk 环境选项

  • 0

Boto 有一个函数 update_environment,它允许用户更新 AWS ElasticBeanstalk 环境中的选项。

使用 AWS CLI,这通常会执行如下操作:

aws elasticbeanstalk update-environment --environment-name my-env --option-settings Namespace=aws:autoscaling:asg,OptionName=MinSize,Value=1

在 Boto 中,update_environment 为 option_settings 采用 List 参数,如下所述:

http://boto.readthedocs.org/en/latest/ref/beanstalk.html

update_environment(environment_id=None, environment_name=None, version_label=None, template_name=None, description=None, option_settings=None, options_to_remove=None, tier_name=None, tier_type=None, tier_version='1.0')

我尝试了各种传递字符串的方法

Namespace=aws:autoscaling:asg,OptionName=MinSize,Value=1

作为一个列表,但似乎没有一个工作。API不断告诉我:

Invalid option specification 

有谁知道列表的正确格式是什么?

amazon-web-services
  • 2 个回答
  • 966 Views
Martin Hope
Garreth McDaid
Asked: 2015-09-08 07:02:16 +0800 CST

有没有办法告诉根名称服务器 DNS 记录上的 TTL?

  • 7

我目前正在将 DNS 区域从一个 DNS 服务器提供商迁移到另一个。我正在尝试估计更改传播需要多长时间,并了解如果我选择在中途回滚可能会有什么延迟。

以前,我认为我可以这样做:

dig example.com ns

要查看 NS 记录上剩余的 TTL 是多少,但现在我知道这个 NS 记录是区域中子域的 NS 记录,而不是来自根服务器的 NS 记录,根服务器最终决定将发送查询的名称服务器。

我通过在每个提供者的区域中设置测试记录来测试这一点:

Provider1 test.example.com 10.0.0.1
Provider2 test.example.com 192.168.0.1

对于这两个提供商来说,NS 上的 TTL 记录为 0,而 TLD Registrar 级别的 NS 记录指向 Provider1 的名称服务器。

当我更改 Provider1 区域中的 NS 记录时,我几乎可以立即在 NS 查询中看到这一点(使用“dig example.com ns”)。

但是,当我发送查询 A 记录时,即

test.example.com

它总是返回

10.0.0.1

无论 Provider 1 区域中的 NS 记录设置为什么。

在此基础上,我得出结论,区域文件中的 NS 记录与迁移无关,只有 TLD 级别的名称服务器记录很重要。

但是,我无法了解那里的更改可能会传播多长时间,无论是向前还是向后。

是否可以查询 TTL 正在处理来自 TLD 根服务器的记录?

domain-name-system
  • 3 个回答
  • 6239 Views
Martin Hope
Garreth McDaid
Asked: 2015-06-09 04:32:04 +0800 CST

用于 Mac WIFI 客户端的 OpenSwan Dead Peer Detection

  • 0

我正在运行一个 OpenSwan 服务器来促进客户端-服务器连接到一个安全的数据中心。

我对 MacOS 中的标准 L2TP over IPSEC 客户端有疑问,特别是在使用 WIFI 时。

当我第一次连接时,它工作正常。当我断开连接并尝试再次连接时,它在身份验证步骤失败(共享密钥)。

据我所知,当 MAC 使用 WIFI 时,它没有时间向 OpenSwan 发送 DELETE 信号,因此就 OpenSwan 而言,对等点仍然存在。我可以在 OpenSwan 日志中看到这一点:

Jun  8 12:23:43 vpn1 pluto[20030]: ERROR: asynchronous network error report on eth0 (sport=500) for message to 213.242.106.82 port 500, complainant 213.242.106.82: Connection refused [errno 111, origin ICMP type 3 code 3 (not authenticated)]

在我断开 Mac 客户端连接后很长时间,此消息仍继续出现在 OpenSwan 日志中。当我在服务器上重新启动 ipsec 服务时,日志条目消失了,我可以再次连接。

我在我的 OpenSwan 配置中包含了死对等检测:

 dpddelay=30
 dpdtimeout=120
 dpdaction=clear

我可以看到启动连接时启用了死对等检测:

Jun  8 12:45:34 vpn1 pluto[11064]: "vpnpsk"[14] 213.242.106.82 #14: STATE_QUICK_R2: IPsec SA established transport mode {ESP/NAT=>0x0188ccda <0x7fe9af15 xfrm=AES_256-HMAC_SHA1 NATOA=none NATD=213.242.106.82:4500 DPD=enabled}

但是,当我关闭 MAC 上的连接时,DPD 似乎没有启动。OpenSwan 只是不断记录有关连接的错误。

只是在寻找建议。一个修复。

ipsec
  • 1 个回答
  • 699 Views
Martin Hope
Garreth McDaid
Asked: 2015-05-15 07:05:02 +0800 CST

RabbitMQ 集群的自动配置

  • 3

RabbitMQ 集群文档

https://www.rabbitmq.com/clustering.html

描述了一个过程,您可以通过该过程为集群部署配置文件,以便在您的 rabbitmq 节点 boot.eg 时自动创建集群

[{rabbit,
  [{cluster_nodes, {['rabbit@rabbit1', 'rabbit@rabbit2', 'rabbit@rabbit3'], ram}}]}].

您在 /etc/rabbitmq/rabbitmq.config 的 3 个节点中的每一个上应用此文件,然后在每个节点上启动 rabbitmq,显然会形成一个集群。

这似乎不太好用,例如

如果你启动 rabbit2,而 rabbit3 还没有启动,服务将不会在 rabbit2 上启动,因为它正在尝试使用 rabbit3 创建一个集群。

同样,如果您只在rabbit1上应用配置,并预先启动rabbit2和rabbit3,则rabbit1将仅与rabbit2形成一个集群,根据文档(我不明白为什么):

RabbitMQ will try to cluster to each node provided, and stop after it can cluster with one of them.

这似乎可行的唯一方法是,如果您在所有 3 个节点上应用配置文件,并让它们在完全相同的时间启动。我正在尝试使用 Ansible 部署它,它按顺序创建节点,所以这不起作用。

我在这里想念什么?

ansible
  • 2 个回答
  • 6758 Views
Martin Hope
Garreth McDaid
Asked: 2015-02-19 10:12:07 +0800 CST

Amazon VPC NAT 实例路由问题

  • 0

我有路由问题。

我有 2 个公共子网:172.31.1.0/24 和 172.31.100.0/24

在每一个中,我都有一个 NAT 实例。每个 NAT 实例都是远程位置的 OpenSwan VPN 对等体。这允许以下 VPN 连接:

172.31.1.0/24 -> 192.168.1.0/24
172.31.100.0/24 -> 192.168.100.0/24

我设置了一个与我的两个公共子网关联的路由表。这包括如下路由条目:

192.168.1.0/24 Target = NAT instance 1
192.168.100.0/24 Target = NAT instance 2

前者一切正常,但无论我做什么,后者的路由表条目都不起作用。

我为 NAT 实例 2 设置的路由无效。当我跟踪路由到 192.168.100.0/24 中的任何地址时,数据包被直接发送到 192.168.100.0/24(因此失败),而不是通过 NAT 实例 2 路由。

我以为路由表中并发 NAT 实例的数量可能存在限制,但即使我删除了到 192.168.1.0 的路由,所以唯一存在的路由是通过 NAT 实例 2 的路由,它仍然没有不工作。

我检查了所有常见的东西(Src/Dst 检查等),但似乎没有什么不合适的。所有这些都是使用 CloudFormation 创建的,因此不太可能出现手动错误。

amazon-web-services
  • 1 个回答
  • 1069 Views
Martin Hope
Garreth McDaid
Asked: 2015-01-15 08:36:49 +0800 CST

在 Linux 上查看 lastb 的旧条目

  • 0

我有一台已经运行了 261 天的服务器(Amazon Linux):

[server]$ uptime
 16:29:46 up 261 days,  4:47,  1 user,  load average: 0.05, 0.16, 0.18

我试图找出最近几个月是否有任何不成功的登录尝试:

[server]$ lastb

btmp begins Thu Jan  1 04:16:08 2015

那里什么都没有,服务器告诉我 /var/log/btmp 文件在 14 天前开始。

/var/log/ 中还有另一个存档的 btmp 日志文件

-rw------- 1 root utmp 75 Jan  1 04:16 /var/log/btmp-20150101.gz

当我打开它并用 lastb 阅读它时,我得到了这个:

[server]$ lastb -f btmp-20150101 

btmp-20150101 begins Wed Jan 14 16:21:06 2015

谁能告诉我这里发生了什么?我的目的是证明在服务器启动的 261 天内没有无效的登录尝试,但 lastb 似乎无法确认这一点。

linux
  • 1 个回答
  • 357 Views
Martin Hope
Garreth McDaid
Asked: 2014-09-06 07:34:06 +0800 CST

适用于单个 VPC 子网的 Amazon AWS IAM 策略

  • 6

我想创建一个允许用户部署实例的 IAM 策略,如下所示:

  1. 他们只能使用 1 个 AMI
  2. 他们只能部署到 1 个特定的 VPC 子网
  3. 他们只能使用 1 个特定的 VPC 安全组

此场景在此处的 VPC 文档中得到解决(示例 4):

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_IAM.html#subnet-sg-example-iam

我已经尝试过我自己的政策版本:

{
"Version": "2012-10-17",
"Statement":[{
    "Effect":"Allow",
    "Action": "ec2:RunInstances",
    "Resource": [
        "arn:aws:ec2:eu-west-1:937821706121:image/ami-141ac363",
        "arn:aws:ec2:eu-west-1:937821706121:subnet/subnet-733de516",
        "arn:aws:ec2:eu-west-1:937821706121:network-interface/*",
        "arn:aws:ec2:eu-west-1:937821706121:volume/*",
        "arn:aws:ec2:eu-west-1:937821706121:key-pair/*",
        "arn:aws:ec2:eu-west-1:937821706121:security-group/sg-4aa80f2f"
    ]
}]
}

它不起作用。当我尝试将实例部署为应用此策略的组的成员时,我的权限被拒绝。我需要包含其他一些策略以允许以这种方式部署实例吗?

amazon-vpc
  • 2 个回答
  • 5377 Views
Martin Hope
Garreth McDaid
Asked: 2014-08-29 05:11:48 +0800 CST

我可以向我的 Amazon VPC 添加额外的路由吗?

  • 5

我在 AWS 和我的公司 LAN 之间设置了一个 Amazon VPC。

最初,当我设置它时,我为以下 CIDR 指定了静态路由:

10.55.55.0/24 10.77.77.0/24 10.99.99.0/24

我在 VPC 中设置了以下 CIDR:

10.44.0.0/16

这一切都很好。

我现在在公司 LAN 上有一个新网络:10.55.54.0/24

为此,我在主路由表中添加了一条新路由,指向与其他路由相同的 vgw。

当我知道查看路线时,我看到原来的 3 条路线已传播,但第 4 条新路线未传播。

在 10.44.0.0/16 的服务器实例上,我仍然可以连接到现有 3 个 CIDR 中的主机,但我没有看到新 CIDR 的任何路由:

[server]$ traceroute 10.55.55.88
traceroute to 10.55.55.88 (10.55.55.88), 30 hops max, 60 byte packets
1  169.254.254.37 (169.254.254.37)  0.543 ms  0.524 ms  0.504 ms
2  169.254.254.5 (169.254.254.5)  1.278 ms  1.007 ms  0.985 ms
3  169.254.254.2 (169.254.254.2)  32.596 ms 169.254.254.6 (169.254.254.6)  35.244 ms     169.254.254.2 (169.254.254.2)  32.830 ms
4  ip-10-55-55-88.eu-west-1.compute.internal (10.55.55.88)  36.822 ms  37.338 ms  36.842 ms


[server]$ traceroute 10.55.54.88
traceroute to 10.55.54.88 (10.55.54.88), 30 hops max, 60 byte packets
<timeout>

我在这里缺少什么步骤?我是否必须重新创建整个 VPC/VPN 才能包含新的 CIDR?

amazon-vpc
  • 1 个回答
  • 4662 Views
Martin Hope
Garreth McDaid
Asked: 2014-08-02 07:23:52 +0800 CST

创建第一个索引后,Elasticsearch 集群状态立即变为黄色

  • 1

我运行了许多独立的 Logstash 服务器,以允许查看来自 Web 应用程序服务器的日志文件。

其中一个最近报告了由于未分配的分片而导致的黄色集群状态。这是很常见的情况,我通常通过删除最近的索引并重新启动 Elasticsearch 来处理。

在这种情况下,它不起作用。当我删除索引(通过 API 或简单地从文件系统中删除文件)并重新启动 Elasticsearch 时,集群状态最​​初是绿色的,但是一旦创建第一个索引,它就会变成黄色,恰好有 5 个未分配的分片.

这台服务器运行了好几个星期,并且根本没有加载。我还检查了 CIDR 中没有其他 Elasticsearch 服务器(它在 Amazon AWS 的 VPC 中)。

我已经在日志中打开了调试,但它对我来说是双重荷兰语。没有对无法分配的分片的引用。

elasticsearch
  • 1 个回答
  • 3233 Views
Martin Hope
Garreth McDaid
Asked: 2014-04-17 08:48:44 +0800 CST

主节点故障后是否需要手动将复制节点提升为主节点?

  • 0

我有一个基本的 3 成员 MongoDB 复制集。1 x 初级 2 x​​ 次级

A = 初级 B = 次级 C = 次级

Primary 上的 Mongod 服务停止了,正如预期的那样,其中一个 Secondary 接管了 Primary。

我在以前的 Primary 上重新启动了 Mongod,它变成了 Secondary,所以我现在有:

A = 次要 B = 主要 C = 次要

A 是否应该再次自动成为主节点,或者这是我必须手动执行的操作?

我没有在节点上设置任何优先级。

replication
  • 1 个回答
  • 804 Views
Martin Hope
Garreth McDaid
Asked: 2014-04-16 05:23:21 +0800 CST

Skype 在企业环境中是否可靠?

  • 5

我一直在一家小型软件开发公司管理 IT 部门,该公司在 5 年内从 10 个用户发展到 70 个用户。

公司中的大多数用户都在办公室工作,但一些关键用户远程工作。

一开始,Skype 成为办公室和远程工作人员之间交流的事实上的工具。随着公司的发展,增加了更多的远程工作人员,Skype 已成为公司生态系统的一部分。

在过去的 18 个月里,Skype 的可靠性有所下降。我最初将此归因于某个 ISP 的问题,但在此期间,我们搬迁了与完全不同的 ISP 签约的办公室,增加了我们的同步光纤宽带 (20mbps),并安装了新的网络硬件。但是 Skype 问题仍然存在。

远程用户的标准投诉是,当他们与朋友、母亲、妻子等交谈时,Skype 很好,但当他们与办公室里的某人交谈时,他们经常会出现掉线、像素化和静音。

在尝试解决这个问题超过 2 年后,我开始怀疑 Skype 是否适合这种环境。公司的所有基础设施都是基于云的,因此办公室的数据源源不断,显然会不时达到峰值。我们也是基于 Apple 的,因此经常会在多个系统上同时从 iTunes 下载内容。

此外,可能同时进行多个 Skype VC 呼叫。我们通常在上午 09:00 到 11:00 之间看到问题,当我们召开所有涉及远程开发人员的站立会议时。

每当我们遇到这些问题时,我们都会将宽带增加 5mbps,这会使情况在几个月内变得更好,然后我们会增加一些员工,然后重新开始。

我的理论是,这些在住宅连接中通常不会出现的不可避免的峰值正在影响 Skype 音频和视频。凭借公司的 IT 配置文件,让 Skype 之类的东西始终如一地工作几乎是不可能的。也许 Skype 的专用互联网连接将是一个解决方案?

networking
  • 2 个回答
  • 965 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve