我们使用 Nagios 来监控相当多(~130)台服务器。我们监控每台服务器上的 CPU、磁盘、RAM 和其他一些东西。我一直使用 SSH 来运行远程命令,纯粹是因为它在远程服务器上几乎不需要额外的配置,只需安装 nagios-plugins,创建 nagios 用户并添加 SSH 密钥,所有这些我都自动化了一个 shell 脚本。我从未真正考虑过在 NRPE 上使用 SSH 对性能的影响。
我不太担心 Nagios 服务器上的负载(它的功能可能超出了规格,CPU 从未超过 10%),但我们每 30 秒运行一次远程检查,每个服务器有 5 个不同的检查执行。我认为 SSH 每次检查都需要更多资源,但有很大的不同吗?(即足以保证切换到 NRPE 的差异)。
如果有帮助,我们会监控物理服务器(通常具有 8、12 或 16 个物理核心)和 Amazon EC2 中/大型实例的组合。
我之前注意到,我们的 EC2 实例中的一个(许多)不响应ping请求。其他一切运行正常,SSH、HTTP、FTP、数据库都运行良好,但 ping 失败。
此实例基于我们在 EC2 上用于大约 40 个节点的映像,我不记得以前有此问题。我注意到是因为我们对 NAGIOS 中每个服务器的主要“是否启动”检查使用 Ping,所以我注意到了。
从功能上讲,这不是问题(刚刚启动了另一个实例并且该实例运行良好),但是对于我的教育(并且只是因为我感兴趣),为什么在其他服务可以时 ping 不起作用?
Sam-Rudges-MacBook-Pro:~ sam$ curl -i http://50.19.x.x/
HTTP/1.1 302 Found
Date: Tue, 14 Jun 2011 16:38:36 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Content-Length: 0
Location: /dash
Server: TornadoServer/1.2.1
Sam-Rudges-MacBook-Pro:~ sam$ ping 50.19.x.x
PING 50.19.x.x (50.19.x.x): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
^C …Run Code Online (Sandbox Code Playgroud) 是否可以为 NGINX 服务器创建一个“全局”位置?我希望 NGINX 服务的每个站点都可以访问 /global/ 文件夹;沿着
http {
[...stuff...]
#Global path
location /global/ {
root /my/global/location/;
}
server {
listen 127.0.0.1:80;
server_name example.com;
[...standard config...]
}
server {
listen 127.0.0.1:80;
server_name example.org;
[...standard config...]
}
server {
listen 127.0.0.1:80;
server_name example.net;
[...standard config...]
}
}
Run Code Online (Sandbox Code Playgroud)
并且能够从http://example.com/global/ http://example.org/global/等访问全局位置的文件。
如果我将全局位置块添加到每个server块中,我可以做到这一点,但这很烦人,我希望将其定义为全局并能够从站点内访问它。
我可以include在每个主机中使用一个指令,但它仍然需要在每个主机中指定。NGINX wiki 说“位置”块仅在server上下文中有效,但我不知道是否有重写技巧或类似的东西。
首先,我有点拘泥于 n00b,所以如果我说一些没有意义的事情,请忽略它们 =)
是否有任何软件可以允许“API”之类的命令用于在 BIND 上创建、更新、删除等区域和记录?
我有两个 DNS 服务器在 EC2 上运行,我希望能够从另一个应用程序轻松管理它们上的域。我知道像 CPanel 这样的东西有一个 HTTP API 和与 BIND 的接口,但这对于我需要的东西来说可能有点过分了。我不介意安装 Apache/PHP/Mysql/Python/Rails/无论其他需要让它工作但所有服务器都会做的是 DNS
编辑: 或者让 BIND 使用 MySQL 来存储它的配置,然后我可以编写一个简单的 PHP 脚本来执行“API”位
我已经设置 NGINX 为我的代理服务器返回自定义错误文档,它显示正确的文件但总是返回一个200 OK标题。
相关的 NGINX 配置是
server {
listen 94.23.155.32:80;
server_name rmg.io www.rmg.io;
proxy_intercept_errors on;
location / {
proxy_pass http://rmgshort/;
}
error_page 404 = /error/404.html;
error_page 500 501 502 503 503 = /error/500.html;
location /error/ {
root /var/rmg/;
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想,你可以对此进行测试,这个页面应该返回404错误,它返回正确的文档,但更改状态代码“200 OK”(测试HTTP头位置),如果我更换root /var/rmg/与internal;正确的标题是返回,但随后我自定义错误页面不起作用。
如何让 NGINX 返回带有正确状态标题的自定义错误文档?
我在 RHEL 6.1 上运行 NGINX 1.0.4
我们有 6 台 ESX 服务器运行 +150 台虚拟机。目前,我们的 VCenter 服务器是这些 VM 之一。前几天,我们的 DC 发生了硬件故障(由顽皮的 UPS 引起),导致其中两台服务器瘫痪。它取出的第一台服务器运行我们的主 VCenter 服务器,第二台运行我们的 HA/Heartbeat VCenter 服务器,因此我们的主机都没有从两台故障主机迁移到 4 台正常工作的主机上,我们失去了大部分 VM 管理(用户全部使用 VSphere)。这是一个非常不幸的情况,希望不应该经常发生,但我想知道,在不同数据中心的单独机器上运行我们的主 VCenter 服务器是否是个好主意*/仅专用于 VCenter 的冗余块,备份是虚拟机?甚至有可能吗?(我们所拥有的只是虚拟设备,但如果它可用,我不会
*我很惭愧,我们在一个 DC 中运行我们所有的 VMWare 服务器。我们将 SAN 镜像到第二个 DC,但那里没有服务器。它们只是开发/非关键服务器,但如果它们宕机,人们仍然会大喊大叫。
我有一台带有 8 个 IP 地址的服务器用作邮件服务器(使用 PostFix)。我希望 PostFix 为每条消息轮换 IP 和主机名。我找到了配置参数
smtp_bind_address = 1.2.3.4
Run Code Online (Sandbox Code Playgroud)
(还有另一个我不记得是主机名的)但这只能让我绑定到一个 IP/主机名。
例子;
我有这些IP:
1.1.1.1 => mail1.mydomain.com
1.1.1.2 => mail2.mydomain.com
1.1.1.3 => mail3.mydomain.com
[etc]
Run Code Online (Sandbox Code Playgroud)
第一条消息应该从 1.1.1.1 发送,第二条消息从 1.1.1.2 发送,第三条消息从 1.1.1.3 等发送,所以只需循环平衡可用 IP
这可以用 Postfix 实现吗?
我们有 3 个服务模板low-priority,high-priorty和medium-priorty。低优先级服务附加到low联系人组medium,中优先级服务附加到联系人组和高优先级(好吧,你可能明白了)。
低优先级服务不通知,中优先级警报通过电子邮件通知,高优先级警报通过电子邮件和电话通知。除了他们没有(还)
我需要做的是指定high-priorty服务生成的任何警报都应该运行通知命令notify-service-by-email和notify-service-by-phone. 通过阅读文档(以及我对 Nagios 的了解),我知道设置通知命令的唯一方法是service_notification_commands联系人中的选项,但这意味着每个联系人都需要两个定义,一个用于电话,一个用于电子邮件。我将如何获得high-priority调用notify-service-by-phone命令的服务?
更多信息;
;High priority service (Alert by call, 1 min check period)
define service{
name high-priority-service
notifications_enabled 1
normal_check_interval 1
contact_groups high
use generic-service
register 0
}
;Med priority service (Alert by email, 5 min check period)
define service{
name med-priority-service
notifications_enabled 1
normal_check_interval 5
contact_groups medium
use generic-service
register …Run Code Online (Sandbox Code Playgroud) 如何让 NGINX 通过上游服务器的“服务器”标头?
就像,如果 NGINX 代理到服务器标头为“Apache2.2 (CentOS)”的 Apache 服务器,它会将其剥离并替换为“NGINX/1.0.1”。我们在 Server: 头中有我们的机器 ID,所以我们需要让 NGINX 停止覆盖它们。
背景:
我即将推出一项服务,为大量域提供电子邮件转发。
假设您希望人们能够使用 you@somesite.com 与您联系,所有发送到该地址的电子邮件都将转发到 your@realaddress.com
我们将拥有 3 台拥有自己 IP 的服务器,这些服务器将运行 Postfix,并且所有域都将有 Abus@ 和 postmaster@ 地址,这些地址将转发给我们的管理员。
我不希望我们的 IP 被阻止,我们所做的只是转发收到的邮件,但我真的不想在转发的邮件上启用垃圾邮件阻止(这是我们的用户,不是我们的,应该由他们的入站电子邮件提供商检测垃圾邮件并将其放入“垃圾邮件”文件夹中,我们唯一的选择是删除垃圾邮件,但如果我们开始出错,人们开始因为我们没有发送他们的电子邮件而感到不安,我们可能会得到和他们有麻烦)
一种选择是经常(可能每月一次)为服务器获取新 IP,因此它们应该是干净的(我们可以以每个 IP 每年约 2 美元的价格获得它们,因此对我们来说没有巨大的成本,但我们最终会得到很多“污染” ' ips 位于我们的托管公司不会收回的周围)。是否有其他建议可以帮助我们避免被电子邮件提供商阻止?
编辑:
我们将每天将 15-20k 封电子邮件转发到约 10k 不同帐户。我们目前正在使用 OpenSRS 的电子邮件转发服务,但现在我们已经达到这个级别的用户,它太贵了
这更像是我感兴趣的一个通用问题,而不是我计划在生产中使用的问题。如果我得到了一个 40GB 的 SSD 驱动器并将整个驱动器分配为交换空间,只在系统中留下少量的“真实”内存(例如,我会说 512MB 物理内存),性能与拥有相比如何40GB 的真实内存?
可能无法进行一般比较,因此例如在运行 RedHat、MySQL、MongoDB 和 Memcached 的情况下运行数据库服务器(根据我的经验,数据库服务器喜欢大量内存,尤其是使用 Memcached)并节省大惊小怪假设所有服务都经过优化配置和调整,而不仅仅是库存安装。
TL;DR
SSD 驱动器可以用作 RAM 的替代品吗?
我不明白,如何下载 CentOS 或 CentOS6。我们花了几个小时试图找到 ISO 图像,但整个过程极其复杂。CentOS 网站是一场真正的灾难!
谁能给我一个 CentOS 6 的下载链接?
您在服务器上使用 Google 桌面的体验如何?
我的服务器相对较慢(实际上很慢)。我已安装 Google 桌面以加快搜索过程。它在一周前开始索引。它很快开始完成 6%,然后慢慢地、慢慢地……在接下来的 5 天内完成了 40%。现在它刚刚开始再次索引并达到了 6%。
虽然 Google 桌面在桌面上运行快速且出色,但您对服务器的体验如何?有我不知道的事情吗?
我在 MS Windows Server 2003 上运行它。
nginx ×3
email ×2
nagios ×2
amazon-ec2 ×1
bind ×1
centos ×1
google ×1
http-headers ×1
indexing ×1
linux ×1
memory ×1
monitoring ×1
mysql ×1
nrpe ×1
performance ×1
ping ×1
postfix ×1
spam ×1
ssd ×1
swap ×1
vmware-esxi ×1