我有一个想与 haproxy 一起使用的当前一代 Linux 系统。Journald 会很高兴地从 记录 stdout .service
,并将日志标记为来自该服务,但haproxy 似乎无法记录到 stdout。
让 haproxy 登录到 systemd/journald 的最简单和最干净的方法是什么?
编辑:当前配置是默认配置:
global
log 127.0.0.1 local2
但是没有local2
设施,因为本地盒子上没有系统日志。
我有一个想与 haproxy 一起使用的当前一代 Linux 系统。Journald 会很高兴地从 记录 stdout .service
,并将日志标记为来自该服务,但haproxy 似乎无法记录到 stdout。
让 haproxy 登录到 systemd/journald 的最简单和最干净的方法是什么?
编辑:当前配置是默认配置:
global
log 127.0.0.1 local2
但是没有local2
设施,因为本地盒子上没有系统日志。
我已经使用 iptables 很长时间了,但直到最近才使用firewalld 。我使用以下命令通过 firewalld 启用了端口 3000 TCP:
# firewall-cmd --zone=public --add-port=3000/tcp --permanent
但是我无法访问端口 3000 上的服务器。从外部盒子:
telnet 178.62.16.244 3000
Trying 178.62.16.244...
telnet: connect to address 178.62.16.244: Connection refused
没有路由问题:我有一个单独的规则,用于从端口 80 到端口 8000 的端口转发,这在外部可以正常工作。我的应用程序肯定也在监听端口:
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 99 36797 18662/node
firewall-cmd
似乎也没有显示端口 -看看它ports
是空的。你可以看到我前面提到的转发规则。
# firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports: port=80:proto=tcp:toport=8000:toaddr=
icmp-blocks:
rich rules:
但是我可以在 XML 配置文件中看到规则:
# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="dhcpv6-client"/>
<service name="ssh"/>
<port protocol="tcp" port="3000"/>
<forward-port to-port="8000" protocol="tcp" port="80"/>
</zone>
我还需要做什么才能允许在端口 3000 上访问我的应用程序?
另外:通过端口添加访问权限是正确的做法吗?或者我应该为我的应用程序创建一个防火墙“服务”吗?
我在许多情况下都使用名为“newkey”的密钥对。我希望继续使用此密钥,但更改密钥对的名称(显然,'newkey' 非常模糊,并且不会永远是新的)。
请注意:有很多类似的问题,例如https://stackoverflow.com/questions/7881469/change-key-pair-for-ec2-instance,关于更改正在运行的实例上的密钥对。这是一个不同的话题。
是否可以选择在创建时立即启动容器?浏览Create a Container文档我看不到一个,但我怀疑这样的东西可能已经存在。
在较旧的 Linux 系统中,该logger
命令可用于向 syslog 发送日志消息。
阅读Arch Linux 中将其消息记录到哪里?logger
,如果设置了用于消息转发的套接字syslog
,消息和logger
命令行应用程序似乎只与systemd
日志对话。
那么logger
命令的现代等价物是什么?如何从命令行直接向 systemd 日志发送消息?
我正在关注CoreOS Docker 文档,它提到使用以下命令启动容器:
docker run someImageName /bin/somebinary
哪里someImageName
有图。当 /bin/somebinary 退出时,图像将不再运行。
我只想运行一个图像,而不指定要运行的任何二进制文件。相反,我只想运行通常在映像 OS 中运行的服务(例如 systemd / sysvinit)。
这似乎是任何人都想用 Docker 做的最常见的事情,但是尝试在没有命令的情况下运行映像会返回:
2014/02/05 14:49:19 Error: create: No command specified
如何启动 Docker 容器并运行完整的操作系统,而不是指定命令?
我一直在测试最小的 Fedora 安装。要检查 python 或 node 等解释器的路径,我通常使用which
.
我注意到which
默认情况下没有安装。我可以添加这个包,但我想知道是否有一个内置的 shell 可以用来执行这个常见的任务。
我正在使用 bash 4.2。
我有许多不同的 etcd 集群,我想集中控制:
我有多个不同的 etcd 集群。一个集群中的主机不应该对另一个集群中的配置有任何访问权限。
中央主机应该能够读取和写入所有集群,因为该主机的角色是查看和控制所有集群。
我不太确定如何实现这一点。
我想在脚本的一部分内运行一系列命令,如果有返回非零退出状态则停止。而且,在同一个脚本中,我希望最终命令始终运行,无论之前是否有任何失败。
#!/usr/bin/env bash
set -e
(
# various commands go here
) &> /var/log/logfile
final_command_that_always_runs /var/log/logfile
这可能吗?
也许我可以只为脚本的一个 () 部分设置“-e”?