多年来,我在多台服务器上使用 munin 并取得了巨大成功,但是有 100 多个 munin 节点,并且当客户端上有负载时,处理会超时。
我对 cron 作业和客户端进程的数量进行了一些扩展更改,并减少了运行的插件数量等。但我决定寻找具有更可扩展架构的替代方案。
欢迎任何建议或经验。我基本上对用于容量规划和诊断资源使用情况的服务器指标感兴趣。(我们有 nagios 用于提醒)
短篇小说
嘎!我希望开发管理界面的开发人员会公开一个“webroot=/myAppAppearsHere”选项,或者让所有链接都是相对的。
很长的故事
我有一个客户的管理门户,它基本上是一个 apache mod_auth 登录,然后是一系列指向后端管理页面的链接,如下所示;
https://portal.mysite.com/login
https://portal.mysite.com/
Run Code Online (Sandbox Code Playgroud)
然后一堆像这样的链接
https://portal.mysite.com/monitoring -> https://nagios.localdomain/nagios
https://portal.mysite.com/munin -> https://munin.localdomain/nagios
https://portal.mysite.com/bacukups -> https://backups.localdomain/backups
Run Code Online (Sandbox Code Playgroud)
然而,有一些应用程序对反向代理到子目录真的不满意,例如 Chef-server-webui 和 logstash Web 界面。
ProxyPassReverse 将重新映射标头,但需要更改所有内部绝对 URL,如果应用配置中没有此选项,则必须将其强制转换为 HTML 响应。
显而易见的策略是创建子域或通配符子域以像这样映射到这些应用程序;
https://chef.mysite.com/ -> https://chefserver.localdomain:4040/
https://logstash.mysite.com/ -> https://logstash.localdomain/
https://*.mysite.com/ -> https://($1).localdomain/
Run Code Online (Sandbox Code Playgroud)
但不幸的是,我无法控制域的管理,获得这些添加是可能的,但很痛苦。(但我更喜欢一个不需要每个新链接都涉及某些 3rd 方的解决方案)(我知道通配符可以解决这个问题,但我有兴趣看看有哪些基于 HTTP 和 apache 的替代方案。 .. 用于学习等 ;-)
所以我转而使用类似于 mod_proxy_html的Apache2::ModProxyPerlHtml,并允许在文档中动态重新映射字符串。这实际上确实适用于 LocationMatch 和 ProxyHTMLRewrite 的某种组合,我什至可以让 javascript 发挥出色。然而,做每一个都是一个巨大的痛苦,尤其是对于任何非 web 1.0 应用程序。
例如,以下几乎修复了logstash 在/logstash 下正常工作的问题;
<LocationMatch "^/logstash/">
RequestHeader unset Accept-Encoding
PerlSetVar ProxyHTMLVerbose "On"
PerlInputFilterHandler Apache2::ModProxyPerlHtml
PerlOutputFilterHandler Apache2::ModProxyPerlHtml
SetHandler perl-script …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序场,它生成缩略图并使用 nfs 将它们提供给 Web 服务器场。但是性能太差,所以我要在每个网络节点上制作文件的本地副本。
我查看了 unison 和 lsync,但似乎没有可从 centOS5.5 存储库中获得的 rpm。
我应该使用哪个,或其他一些策略。我非常需要立即同步,因为用户需要立即在网页上显示缩略图,所以基于 inotify 的工具很好!
编辑:当我说立即,我的意思是推出而不是按某个时间表拉动。
最后,lsync 发布了更多版本,所以我使用了它,lsync 在运行后运行良好(即在几秒钟内同步)但是它需要事先枚举每个目录,对于非常大的文件系统需要很多小时..
我现有的 conf/context.xml 文件已经有一个元素;WEB-INF/web.xml
我想添加另一个以允许 localhost 访问 /manager/status 位置到我的监控中,但是添加一个新的 Context 元素,如下所示;
conf/context.xml
----
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="/manager" privileged="true"
docBase="/usr/share/tomcat6/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.0\.0\.1"/>
</Context>
----
Run Code Online (Sandbox Code Playgroud)
破坏了 xml,因为我认为文件需要单个根元素来 lint/parse ok 严重:解析第 6 行第 2 列的致命错误:文档中根元素后面的标记必须格式正确。
org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
Run Code Online (Sandbox Code Playgroud) 我的傀儡主服务器出现硬件故障,我已经恢复到另一个盒子。然而,这个盒子有不同的硬件和主机名。
如果我将现有的 /etc/puppet 目录恢复到新服务器,puppetmaster 将不会启动并出现以下错误;
# puppetmasterd --debug --verbose
Could not prepare for execution: Retrieved certificate does not match private key; please remove certificate from server and regenerate it with the current key
那么我需要采取哪些步骤来允许新的 puppetmaster 启动,并使用旧的 ca.. 生成新的 puppetmaster 证书。
傀儡客户端实际上是否会使用旧 CA 生成的服务器证书向不同的傀儡服务器报告?
我经常使用 ssh 登录远程服务器,以执行标准的管理工作。我有本地 bashrc/vimrc 和其他各种我希望远程可用的配置文件。通常我只登录一次这些远程服务器,所以我不想在这些盒子上留下我的个人资料的副本,其中一些在客户网站上。
我确实考虑过做一些 hack 让远程服务器挂载一个 fusefs webDAV 或其他一些方式来在会话期间将远程文件系统挂载到远程服务器。然而,如果远程系统没有必要的包,或者被防火墙关闭,这就会出现问题。
这个问题有什么好的解决方案可以跨发行版兼容,以及最新的fedora/RHEL/ubuntu/debian/CentOS,并且不会干扰或减慢登录过程?
[编辑]
我想其他考虑因素之一是我可能正在使用其他人的用户帐户登录,所以我不想对配置文件进行任何持久更改。理想情况下,我只会为会话使用一些临时配置文件,然后在注销时将其丢弃。这可能是在一个棍子领土上进入月球;-)
我有一个客户端,有 150 台 Linux 服务器,分布在各种云服务和物理数据中心。这种基础设施的大部分是收购的项目/团队和预先存在的服务器/安装。
客户端主要用于图像处理,许多服务器都有大型 SAN 或本地磁盘阵列,其中包含数百万个 jpeg/png 文件。
每个盒子上都有一个配置管理代理,我可以看到很多磁盘都是100%,有的很空,还有很多重复的数据。
客户端现在可以访问 CDN。但目前仅仅列举可能的情况是一项艰巨的任务。
是否有任何工具可以为所有这些数据创建有用的索引?
我看到像GlusterFS这样的工具来管理这些分布式文件系统,还有Hadoop HDFS
我想知道是否可以在不实际实现底层卷管理工具的情况下使用这些系统的索引工具。
生成潜在重复数据删除候选索引的起点应该是什么?
linux ×3
apache-2.2 ×1
centos ×1
inotify ×1
metrics ×1
monitoring ×1
munin ×1
puppet ×1
rsync ×1
ssh ×1
tomcat ×1
tomcat6 ×1
unison ×1
user-profile ×1