我想知道现代新星(超越牛顿)是否有一个选项允许我自动故障转移托管在故障节点上的实例?
我知道云的目的是创建一个集群,所以不必担心这类问题,但是,你知道,客户的行为并不总是像你想要的那样。
此外,我不想强迫我的客户生成多个实例,因此支付两倍的价格只是为了确保不会发生任何不好的事情。
这是否可以在不使用分布式/共享存储的情况下实现?
我想知道现代新星(超越牛顿)是否有一个选项允许我自动故障转移托管在故障节点上的实例?
我知道云的目的是创建一个集群,所以不必担心这类问题,但是,你知道,客户的行为并不总是像你想要的那样。
此外,我不想强迫我的客户生成多个实例,因此支付两倍的价格只是为了确保不会发生任何不好的事情。
这是否可以在不使用分布式/共享存储的情况下实现?
我目前正在尝试执行一项任务,该任务将为两个不同的服务创建目录,但我无法解决我想如何使用 ansible 循环来做到这一点。
这是对象:
obj:
metadata:
uuid:
version:
services:
- server:
archive: binary.tar.gz
dirs:
bindir: /path/to/bindir/
confdir: /path/to/confdir/
tmpdir: /path/to/tmpdir/
- client:
archive: binary.tar.gz
dirs:
tmpdir: /path/to/tmpdir
这是我的相关任务:
#Creating directories
- name: Creating directories for server and client mode.
file:
path: "{{ item.1.dirs['tmpdir'] }}"
state: directory
owner: "{{ item.0.metadata.uuid }}"
group: "{{ item.0.metadata.uuid }}"
mode: 0750
with_subelements:
- "{{ obj }}"
- services
现在,我对循环在 ansible 上的工作方式感到有点不安,并且暂时坚持我当前的迭代,所以,你能帮我找到一种方法来实现我想要做的事情吗?
如果对 kubernetes 服务有相当了解的人可以向我证实,一旦你需要创建一个新服务,kubernetes 就会在 etcd 数据库上推送它的引用,以及请求它的 URL 是什么,那就太好了!!!
正如我在该主题的评论中所问的那样:使用 firewalld 阻止除少数 ips 之外的所有 ip
我正在寻找一种方法来拒绝除我在 firewalld 的公共区域上的所有公共 IP。
目前,我的公共区域只有 ssh/http/https 服务,并且我已经指定了整个 Internet 所需的源 IP。
问题是我不明白为什么 firewalld 没有按要求过滤源 IP?
通常,据我了解,指定源 IP 的区域会要求 Firewalld 丢弃所有请求,但来自指定 IP 的请求除外。
但是在我的盒子上它不起作用,因为我可以在家中连接不是指定源 IP 之一的机器。
有人建议创建一个名为“内部/其他”的新区域,因为我只有一个公共接口,因为服务器不在专用局域网上,所以我为什么要创建/使用另一个区域,因为公共区域应该删除所有 IP源列表中指定的除外。
Firewalld Public zone 是否让其上添加的服务自动向世界开放?
如果我创建一个名为 internal 的第二个区域,只有 ssh 服务和源 IP,然后将此区域链接到我的 eth0,firewalld 会阻止所有非“源”IP吗?
当然,做这样的过程会假设我从公共区域服务中删除了 ssh 服务。
我的防火墙是:
[root@groot ~]# firewall-cmd --list-all-zones
block
interfaces:
sources:
services:
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
dmz
interfaces:
sources:
services: ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
drop (default)
interfaces:
sources:
services:
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
external
interfaces:
sources:
services: ssh
ports:
masquerade: yes
forward-ports:
icmp-blocks:
rich rules:
home
interfaces:
sources:
services: dhcpv6-client ipp-client mdns samba-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
internal (active)
interfaces: eth0
sources: 192.168.0.0/24
services: ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
public
interfaces:
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
trusted
interfaces:
sources:
services:
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
work
interfaces:
sources:
services: dhcpv6-client ipp-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
我目前正在构建一个拥有一千个主机的私人服务器场,我突然面临一个非常有趣的问题,我目前无法回答。
是否有标准 ISO/Whatever 用于将服务器主机名归属到一个非常大的环境中?
现在,我的 puppet 生成一个随机的字母数字主机名,它与连接主机的任何人都不相关。
很好,我可以连接到正确的服务器和服务进行维护,因为我的 puppet 正在管理我的所有主机并将它们链接到具有类别等的 Nagios。
但是我真的很想知道是否有人已经面临过这种问题和/或您是否有个人经验和证词。
非常感谢!
各位早上好!
我今天正在玩我全新的 tomcat 安装,一切都运行得非常顺利,除了使用带有虚拟主机的管理器时我得到了一个奇怪的反应。
当我尝试在我的虚拟主机 A1 上部署 web 应用程序时,问题会弹出它非常有效,上传工作但不是应用程序的启动。
当我尝试在 vhost A2 上部署另一个 web 应用程序时根本无法正常工作,我什至无法上传存档。
奇怪的是两个虚拟主机都使用托管在 ${Catalina.base}/conf/Catalina/[engine]/[hostname]/manager.XML 下的相同 manager.xml 配置文件
该文件正在调用我的主要经理,而同一位经理正在完美地工作。
当我说管理器在我的虚拟主机上奇怪地崩溃时,这是因为它返回一条 503 错误消息,要求我在 tomcat-users.xml 上设置 tomcat 用户角色和密码,但关键是这个文件已经设置为默认值由tomcat提供的文件。
如果我直接在主机 appbase / docbase 目录上上传我的应用程序,由于 server.xml 配置文件上的 AutoDeploy 和 DeployOnStartup 指令,它可以完美运行。
因此,如果你们中的任何人有提示,我会接受它;-)
我今天来找你,对我的 NGINX 反向代理有一个超级奇怪的说法。
我用它作为 tomcat 服务器的反向代理,并像这样设置主机配置:
server {
listen 80;
server_name hostname.domaine.tld;
access_log /var/log/nginx/hostname.access.log;
error_log /var/log/nginx/hostname.errors.log;
include errors.conf;
include proxy.conf;
location = / {
deny all;
}
location = /manager/(?<uri>\w+)$ {
deny all;
}
location ~ ^/(?<uri>\w+)$ {
proxy_pass http://recette/$uri;
}
}
长话短说,我的目标是允许访问此主机上的资源,如下所示:
host.domaine.tld/ressourcename/(.*)
但我也想拒绝对以下 URL 的任何访问:
主机.domaine.tld/
host.domaine.tld/manager/
host.domaine.tld/manager/(.*)
在这里我的配置似乎不起作用,据我了解,这是因为第三个位置始终为真,即使您在配置文件中设置了第二个位置,在这种情况下,您将始终被授予访问管理器的权限虚拟主机,即使它被明确拒绝。
所以,我想就这个话题向你请教一些帮助,因为我认为我的正则表达式不正确。
我的 Oracle DBA 同事请求对我们的生产服务器进行 root 访问。
他认为他需要它来执行一些操作,比如重新启动服务器和其他一些任务。
我不同意他的观点,因为我为他设置了一个 Oracle 用户/组和一个 Oracle 用户所属的 dba 组。一切运行顺利,目前 DBA 没有 root 访问权限。
我还认为,所有管理任务(如计划的服务器重启)都需要由适当的管理员(在我们的案例中为系统管理员)完成,以避免与对基础设施交互的误解相关的任何类型的问题。
我想要来自系统管理员和 Oracle DBA 的意见 - Oracle DBA 是否有充分的理由在生产环境中拥有 root 访问权限?
如果我的同事真的需要这种级别的访问权限,我会提供,但出于安全和系统完整性的考虑,我很害怕这样做。
我不是在寻找利弊,而是关于我应该如何处理这种情况的建议。
我目前正在查看我的 Nagios 指标,尤其是在我的 WebServers 上,我突然注意到,有时我的每秒请求量和其他指标为负数,这怎么可能?
我虽然每秒请求或每秒连接只能是正数或等于零。
那里发生了什么事?该负值是否意味着网络服务器通过keepalive重用现有连接或使用缓存数据?
如果有人可以向我解释这些指标,那就太好了。
这里有人能够启动/停止/重新加载/...在 systemctl 上使用通配符或类似方法指定的单元列表吗?
我尝试做类似的事情:systemctl restart openstack-nova-*.services
或systemctl restart openstack-nova-?.services
但这是一条死胡同,我在 systemctl 的手册中没有发现任何有用的东西。
我可以使用 for 循环,但在此之前我必须systemctl -t service --failed
为列出的单位创建一个然后 grep ......有点无聊不是吗?
所以,如果有人知道是否有可能做这样的事情,我会很高兴听到它。
如果不是,我想我会将这个想法推送到 systemctl 开发人员列表中,或者如果我有时间的话,可能会做补丁^^
大家,早安!
在我的日常工作中,我们使用 NGINX+uWSGI+MongoDB 作为 Python 应用程序容器。对于版本控制和协作开发,我们在每台开发人员计算机上使用 GIT 安装和用于交付目的的中央 GIT 存储库。
一切运行顺利,但有一个小问题。
到目前为止,当我们想要交付内部软件的新版本时,所有开发人员都会合并他们的更改,然后选择一个(通常是项目经理)将最终产品推送到我们中央 GIT 服务器上的“分支主”存储库中。
一旦进行了推送,一个不断查看 GIT 的脚本检索新版本并将其推送到我们的 uWSGI 服务器上,然后为所有新连接加载新版本。
现在,我们想知道如何能够在 GIT 服务器上推送,并且 uWSGI 直接从这个 GIT 服务器加载和服务它的 webapps。
有没有人已经有类似的解决方案或 uWSGI 配置来这样做?
我来找你是因为我的托管面临一个非常奇怪的影响。
我目前管理一个包含 NGINX/PHP-CGI 和 wordpress 多站点的服务器。
我的网站是使用 subsite.domaine.tld 创建的,目前,我的三个子网站可以通过 url 正确访问:
subsite.domain.tld.
我的目标是允许我在主机域上的子站点通过它们各自的唯一域进行访问。
举个例子:
www.domainA.com would redirect to subsite1.host.domain.tld.
如果我使用 domainA 公共 DNS 上的以下设置来执行此操作:
www 10800 IN CNAME subsite1.host.domain.tld.
当我尝试访问 www.domainA.com 时,我没有转到 subsite1.host.domain.tld,而是重定向到我创建网络 (host.domain.tld) 的 Wordpress ROOT 站点。
有什么技巧可以对付吗?
关注这个不太受欢迎的问题:OpenStack & NGINX+uWSGI
我已经开始使用 well... 构建我的仪表板节点……当然是 NGINX 和 uWSGI,但我现在面临路径问题。
实际上,uWSGI 正在正确启动进程并且 NGINX 已正确连接到它。
但是,一旦我尝试检索仪表板主页,NGINX 就会抛出一个 503 错误页面,而我的 uWSGI 实例向我显示此错误消息:
导入错误:无法导入设置“openstack_dashboard.settings”(是否在 sys.path 上?):没有名为 openstack_dashboard.settings 的模块
这不是完整的堆栈,而是它的相关部分。
关于我,这只是PythonPath的问题,但关键是我不知道如何解决这个问题。
事实上,我现在 PythonPath 是一个 env 变量,我已经在我的 root 用户上设置了这样一个:
export PYTHONPATH='/srv/www/openstack-dashboard/'
现在,我的问题是这个 env 变量似乎没有被 python 检测到或没有使用,因为 uWSGI 继续崩溃并出现以下完整堆栈:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 219, in __call__
self.load_middleware()
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 39, in load_middleware
for middleware_path in settings.MIDDLEWARE_CLASSES:
File "/usr/lib/python2.7/dist-packages/django/utils/functional.py", line 184, in inner
self._setup()
File "/usr/lib/python2.7/dist-packages/django/conf/__init__.py", line 42, in _setup
self._wrapped = Settings(settings_module)
File "/usr/lib/python2.7/dist-packages/django/conf/__init__.py", line 95, in __init__
raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'openstack_dashboard.settings' (Is it on sys.path?): No module named openstack_dashboard.settings
[pid: 31409|app: 0|req: 1/1] 172.21.150.91 () {36 vars in 556 bytes} [Mon Apr 8 11:02:35 2013] GET / => generated 0 bytes in 1 msecs (HTTP/1.1 500) 0 headers in 0 bytes (0 switches on core 0)
所以,如果有人知道解决这个问题的方法,我会很乐意阅读它;-)
我目前正在更新我的 Web 平台并从 Apache 切换到 Nginx。
所以我必须在做之前测试我们所有的管理和内部应用程序。
好吧,到目前为止,我没有遇到任何问题,但是没有它会有点太容易了:D
所以,今天,我使用以下组件安装我的监督平台:
这是我的目录结构:
/usr/local/$APPNAME$/$SUBTREE$ --> Aim for all binaries and libraries outside the OS.
/etc/$APPNAME$/$SUBTREE$ --> Directory for all binaries configuration files.
/srv/apps/$WEBAPPNAME$/$SUBTREE$/ --> Directory for all HTML/PHP/CGI related files.
在这些之后我得到了:
/usr/local/nagios/ all owned by nagios user/group.
/usr/local/nginx/ all owned by nginx user/group.
/usr/local/fcgiwrap/ all owned by nginx user/group.
/usr/local/phpcgi/ all owned by nginx user/group.
&
/etc/nagios/ all owned by nagios user/group.
/etc/nginx/ all owned by nginx user/group.
&
/srv/app/nagios/{cgi-bin;stylesheets;etc} all owned by nginx.
我的 PhpCGI Wrapper 运行良好并按要求提供 PHP 页面,因为我已经正确显示了 Nagios 主页。
问题似乎来自我的 FastCGI Wrapper,它不停地发送一个愚蠢的错误,声称没有使用任何 DOCUMENT_ROOT 或 SCRIPT_FILENAME 参数调用它。
但是,关于我的 Nginx 配置,一切似乎都正常。
我在另一个 ServerFault 问题上找到了相关内容,但 FastCGI 包装器的升级对我没有帮助。
这是我的 NGinx 配置:
1 user nginx nginx;
2 worker_processes 4;
3 pid /var/run/nginx/nginx.pid;
4 error_log /var/log/nginx/error.log;
5
6 events {
7 worker_connections 1024;
8 }
9
10
11 http {
12 include mime.types;
13 default_type application/octet-stream;
14 sendfile on;
15 keepalive_timeout 65;
16 gzip on;
17
18 upstream fcgiwrap {
19 server unix:/var/run/fcgiwrap.socket;
20 }
21
22
23 server {
24 listen 443;
25 server_name nagios.domain.tld;
26 root /srv/apps/nagios;
27 ssl on;
28 ssl_certificate /etc/nginx/security/cert.crt;
29 ssl_certificate_key /etc/nginx/security/cert.key;
30 ssl_session_timeout 5m;
31 ssl_protocols SSLv2 SSLv3 TLSv1;
32 ssl_ciphers HIGH:!aNULL:!MD5;
33 ssl_prefer_server_ciphers on;
34
35 charset utf8;
36 access_log /var/log/nginx/access.log;
37
38 location / {
39 index index.php;
40 auth_basic "Nagios Restricted Access";
41 auth_basic_user_file /etc/nagios/passwd.users;
42 }
43
44 location ~\.php$ {
45 auth_basic "Nagios Restricted Access";
46 auth_basic_user_file /etc/nagios/passwd.users;
47 include fastcgi_params;
48 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
49 fastcgi_pass 127.0.0.1:9000;
50 }
51
52 location ~\.cgi$ {
53 auth_basic "Nagios Restricted Access";
54 auth_basic_user_file /etc/nagios/passwd.users;
55 include fastcgi_params;
56 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
57 fastcgi_param AUTH_USER $remote_user;
58 fastcgi_param REMOTE_USER $remote_user;
59 fastcgi_pass fcgiwrap;
60 }
61 }
62 }
Fcgiwrap 套接字由 nginx 处理,我的所有权限似乎都很好。
因此,如果您有任何线索或帮助,我们将不胜感激:D
提前致谢。
我只是想知道是否可以使用 for 循环创建大量的符号链接?
例如,我的 /tmp 目录中有很多目录(我知道,不推荐),我不想将它们移出。
相反,我只想使用符号链接将它们放在我的根目录中。
这是我所做的,但不幸的是,根本不起作用:
for directories in /tmp/; do ln -s /tmp/$directories /$directories; done
因此,如果有人可以给我提示,那就太好了 ;-) 谢谢。
我目前正在为 Q&A 开发 Tomcat 集群,但不幸的是,似乎在该集群中自动部署 war 根本不起作用。
我知道集群运行良好,因为每台服务器都正确接收多播通信,并立即意识到任何丢失的主机。
这里的问题来自 FarmWarDeployer 函数,它似乎不起作用。
实际上,当我使用 tomcat 管理器或简单的 SFTPd 推送在我的集群的节点 1 上上传战争时,战争被节点 1 解压缩并使用,但是,它没有发送到我的节点 2。相反,我的节点 1是说:
警告:管理器 [localhost#/APPTest##1.0.0]:没有上下文管理器在 12 年 9 月 14 日下午 5:21 发送,在 103 毫秒内收到。
我的 node2 声称:
警告:上下文管理器不存在:localhost#/APPTest##1.0.0
好吧,如果我手动将应用程序推送到 node2 上,我的 APPTest 已正确设置标签并且集群正在正确接收会话。
所以,关于我,问题来自我的 FarmWarDeployer 设置,它们是:
103 <Engine name="Catalina" defaultHost="localhost">
104
105
106
107 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
108 channelSendOptions="8">
109
110 <Manager className="org.apache.catalina.ha.session.DeltaManager"
111 expireSessionsOnShutdown="false"
112 notifyListenersOnReplication="true"/>
113
114 <Channel className="org.apache.catalina.tribes.group.GroupChannel">
115 <Membership className="org.apache.catalina.tribes.membership.McastService"
116 address="224.0.0.1"
117 port="45564"
118 frequency="500"
119 dropTime="3000"/>
120 <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
121 address="auto"
122 port="4000"
123 autoBind="100"
124 selectorTimeout="5000"
125 maxThreads="6"/>
126
127 <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
128 <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
129 </Sender>
130 <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
131 <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
132 </Channel>
133
134 <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
135 filter=""/>
136 <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
137
138 <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
139 tempDir="/opt/tomcat/temp/"
140 deployDir="/opt/tomcat/webapps/"
141 watchDir="/opt/tomcat/webapps/"
142 watchEnabled="enable"/>
143
144 <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
145 <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
146 </Cluster>
147
148 <Realm className="org.apache.catalina.realm.LockOutRealm">
149 <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
150 resourceName="UserDatabase"/>
151 </Realm>
152
153 <Host name="localhost" appBase="webapps"
154 unpackWARs="true" autoDeploy="true">
155 </Host>
156 </Engine>
关于我,对于测试集群来说没有什么太奇怪的了,但我绝对不是 tomcat 专家。
所以,如果有什么问题或遗漏,请告诉我 ;-)
我目前正在研究我们的 IT 系统以对其进行一些改进。我已经在我们的服务器(物理和虚拟)上安装并运行了 rsyslogd,所有这些现在都将它们的日志发送到数据库中。
现在,我可以请求这个数据库在我们的整个系统上快速有效地找到我正在寻找的任何类型的问题或信息,但是,这对我来说仍然是一个“问题”,即列出所有以人性化的方式为我的经理和所有其他非技术人员提供这些信息。
我想知道他们是否是一个能够做到这一点的网络应用程序,但令人惊讶的是,我一直无法在谷歌上找到一个。
所以问题是,您知道能够解析和报告我在数据库中托管的所有日志的网络应用程序的名称吗?
Wahoo,感谢你们所有人提供的这些惊人的解决方案。
我看了一下所有这些,我不得不说 splunk 和 Greylog2 似乎最适合我的需要 :D
非常感谢,我现在必须做一些 POC :D
我只是一个小问题。
我的 DNS 服务器由我们的 DHCP 服务器 (Microsoft Windows 2003 R2 SP2) 更新。
我的客户是 Debian Linux Distro 的,我必须修改我的 DHCLIENT.CONF 文件以发送他的完整合格主机名。
但是我有大约 1600 台计算机,我不想一个一个地修改每个客户端,那么,我可以在 Config 文件上使用系统变量吗?
示例:
#DHCLIENT CONF;
其中 $hostname 变量是在 BASHRC 上为 hostname -f 命令写入的别名。
send "$hostname"
如果您需要更多信息,请告诉我。
今天我的 Citrix Farm 上出现了一个奇怪的东西。我的用户配备了一台瘦客户机 Axel Model 80F,而今天,其中一位用户遇到了问题。
他打开了一个 citrix 的发布桌面会话(由 Windows 2003 R2 SP2 服务器场托管),他加载了 Lotus Notes 和一封包含 PDF 附件的邮件。
一旦他打开了他的 PDF 文件,他的会话就被冻结了。我们刚刚重新启动瘦客户端,并再次登录会话(在此过程中尚未关闭)。
一旦我们再次登录,我们尝试阅读 pdf 并再次在半页之后会话再次冻结(我可以看到鼠标在屏幕上移动,但可以做任何事情)。
然后我关闭会话,正确重新启动瘦客户端,然后使用相同的操作“Tada”,一切都是正确的,我们不会遇到任何冻结。
那么现在我的问题是:
该错误是来自瘦客户端还是服务器?我检查了我的场,但 Citrix 的监控控制台日志中没有任何警报。
据我说,这是由于瘦客户端,但我没有足够的监控工具来确定这一点。那么你有一些非常棒的监控工具或方法吗?
我的配置:
Windows 2003 R2 SP2 Citrix Xenapp 5.0