我有一个包含4个节点的ES集群:
number_of_replicas: 1
search01 - master: false, data: false
search02 - master: true, data: true
search03 - master: false, data: true
search04 - master: false, data: true
Run Code Online (Sandbox Code Playgroud)
我不得不重新启动search03,当它返回时,它重新加入群集没有问题,但留下了7个未分配的分片.
{
"cluster_name" : "tweedle",
"status" : "yellow",
"timed_out" : false,
"number_of_nodes" : 4,
"number_of_data_nodes" : 3,
"active_primary_shards" : 15,
"active_shards" : 23,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 7
}
Run Code Online (Sandbox Code Playgroud)
现在我的群集处于黄色状态.解决此问题的最佳方法是什么?
有趣的是,当添加一个新索引时,该节点开始处理它并与群集的其余部分一起玩得很好,它只是留下未分配的分片.
关注问题:我是否做错了导致这种情况发生在一开始?对重新启动节点时以这种方式运行的集群,我没有多少信心.
注意:如果由于某种原因运行单个节点群集,则可能只需执行以下操作:
curl -XPUT 'localhost:9200/_settings' -d '
{
"index" : {
"number_of_replicas" …Run Code Online (Sandbox Code Playgroud) 我想知道使用Logstash Grok过滤器的最佳方法是什么.我有一些特定日志条目的过滤器,不适用于所有条目.那些不适用的标签始终生成_grokparsefailure标签.例如,我有一个grok过滤器,用于每个日志条目,它工作正常.然后我有另一个过滤器,用于带有回溯的错误消息.回溯过滤器为每个没有回溯的日志条目抛出grokparsefailure.
如果没有匹配而不是添加parsefailure标记,我宁愿让它只是通过规则.我使用parsefailure标签来查找未正确解析的内容,而不是与特定过滤器不匹配的内容.也许只是命名"解析失败"才能得到我.对我而言,这意味着过滤器出现了问题(例如格式错误),而不是它不匹配.
所以问题是,我该如何处理?
使用过滤器模式可选吗?
(ab)使用tag_on_failure选项将其设置为空[]
使用诸如"if ifback in message"之类的东西使过滤器有条件
还有别的什么我不考虑?
提前致谢.
编辑
我采取了在过滤器周围添加条件的路径:
if [message] =~ /took\s\d+/ {
grok {
patterns_dir => "/etc/logstash/patterns"
match => ["message", "took\s+(?<servicetime>[\d\.]+)"]
add_tag => [ "stats", "servicetime" ]
}
}
Run Code Online (Sandbox Code Playgroud)
仍然对反馈感兴趣.什么被认为是"最佳实践"?
我一直在遇到一个问题,这个问题是通过谷歌adwords推动的营销活动揭示出来的.使用的标准参数之一是"区域".当用户搜索并点击赞助商链接时,Google会生成一个长URL来跟踪点击,并在引荐来源中发送大量内容.我们捕获了这些记录,我们注意到"Region"参数输入错误.应该是什么
http://ravercats.com/meow?foo=bar®ion=catnip
Run Code Online (Sandbox Code Playgroud)
而是通过以下方式:
http://ravercats.com/meow?foo=bar®ion=catnip
Run Code Online (Sandbox Code Playgroud)
我已经证实这种情况发生在所有浏览器中.我的理解是HTML实体语法定义如下:
&VALUE;
Run Code Online (Sandbox Code Playgroud)
其中前导边界是&符号,闭合边界是分号.看起来很简单.问题是,这个实体并没有得到尊重,而且它在整个系统中造成了各种各样的破坏.
有谁知道为什么会这样?这是DTD中的错误吗?(我正在寻找当前的HTML DTD以确定我是否可以理解它)我正在试图找出跨浏览器的常见情况,以便实现这一点,因此我在寻找DTD.
这是您可以使用的证明.获取此代码,从中制作HTML文件并在浏览器中呈现它:
<html>
<a href="http://foo.com/bar?foo=bar®ion=US®ister=lowpass®_test=fail&trademark=correct">http://foo.com/bar?foo=bar®ion=US®ister=lowpass®_test=fail&trademark=correct</a>
</html>
Run Code Online (Sandbox Code Playgroud)
编辑:对于那些建议我需要转义整个网址的人来说,上面的示例网址就是这样的例子.真正的网址直接来自Google,我无法控制它的构建方式.这些建议虽然有效,却没有回答这个问题:"为什么会这样?"
我正在试图找出我目前安装的版本.OS X Mountain Lion(10.8.2)
提前致谢!
我有一堆在GCE中运行的实例.我想以编程方式获取它们的内部IP地址列表,而无需登录实例(本地).
我知道我可以跑:
gcloud compute instances list
Run Code Online (Sandbox Code Playgroud)
但是有没有我可以通过的标志来获取我想要的信息?例如
gcloud compute instances list --internal-ips
Run Code Online (Sandbox Code Playgroud)
或者类似的?或者我将不得不掸掉我的sed/awk大脑并解析输出?
我也知道我可以使用--format = json在JSON中获取输出,但我正在尝试在bash脚本中执行此操作.
好的,我放弃了.在尝试了内联函数,回调,返回参数的无穷无尽的排列之后,我仍然无法按照我的意愿行事.任何帮助,将不胜感激.
当前状态:除"checkEmail"错误消息外,一切正常.javascript弹出窗口向用户传达正确的消息,但该字段不会显示任何错误消息,处理程序返回true或false.
期望的结果是,如果来自AJAX调用的JSON有效负载不是200,则弹出Javascript警报并使用相应的错误消息将该字段突出显示为无效.目前,它会弹出警报,但不会将该字段标记为无效.
(对不起,这是jQuery 1.7 + jquery.validation插件)
我们的JSON响应有效负载如下所示:
{"message": "Email is not in use.", "code": 200, "email": "test-39485787@mailinator.com"}
Run Code Online (Sandbox Code Playgroud)
要么
{"message": "Duplicate email address detected", "code": 401}
Run Code Online (Sandbox Code Playgroud)
<html>
<head>
<script>
// You'd think this should be false, but no
// Also it apparently needs to be a quoted
// string: http://stackoverflow.com/a/11496502/814669
var checkEmailStatus = "true";
// Success Handling
checkEmailSuccess = function(data, textStatus, jqXHR) {
checkEmailStatus = "true";
switch (data.code) {
case 200:
checkEmailStatus = "false"; // Nothing set here …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用mod_header在Apache(2.2)中设置两个cookie,如下所示:
Header set Set-Cookie "poodle=noodle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT"
Header set Set-Cookie "tweedle=puddle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT"
Run Code Online (Sandbox Code Playgroud)
但只有最后一个cookie被发送到浏览器.我已经做了一些搜索,但只发现有这个问题的人没有解决方案.我尝试将它们组合成一个:
Header set Set-Cookie "poodle=noodle;tweedle=puddle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT"
Run Code Online (Sandbox Code Playgroud)
同样的问题.我需要使用"Header append"吗?任何例子将不胜感激.
我有一个很长的JSON块我想粘贴到正文中.我看到我可以导入文件或将其粘贴到文本区域.是否可以将此粘贴的文本转换为JSON,以便我可以使用漂亮的JSON编辑器?当我将其粘贴到文本区域然后切换JSON时,它会覆盖正文(带有警告).
我想这里的最终问题是,如何在Paw的JSON编辑器中获得预构建的JSON?
我要粘贴的文字样本是:
{
"type": "user",
"id": "530370b477ad7120001d",
"user_id": "25",
"email": "wash@serenity.io",
"name": "Hoban Washburne",
"remote_created_at": 1392731331,
"updated_at": 1392734388,
"session_count": 0,
"last_seen_ip" : "1.2.3.4",
"unsubscribed_from_emails": false,
"last_request_at": 1397574667,
"remote_created_at": 1392734387,
"created_at": 1392734388,
"updated_at": 1398269574,
"session_count": 179,
"user_agent_data": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9",
"custom_attributes": {
"paid_subscriber" : true,
"monthly_spend": 155.5,
"team_mates": 1
}
Run Code Online (Sandbox Code Playgroud) 我一直在尝试让 MFA 与 kubectl 一起工作,以保护对 AWS 中 EKS 主节点的访问。文档似乎暗示这是可能的,但我遇到了问题,我无法弄清楚。
没有什么特别的,我可以连接到我的 EKS 集群:
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 172.20.0.1 <none> 443/TCP 2d
Run Code Online (Sandbox Code Playgroud)
如果我将 MFA 添加到 AWS CLI,请遵循以下帖子:
https://docs.aws.amazon.com/cli/latest/userguide/cli-roles.html
我像这样设置我的本地凭据:
[default]
aws_access_key_id = **********************
aws_secret_access_key = **********************
region = us-west-2
[default_role]
mfa_serial = arn:aws:iam::1234567890:mfa/spanktar
role_arn = arn:aws:iam::1234567890:role/test_assumeRole
source_profile = default
Run Code Online (Sandbox Code Playgroud)
...然后我可以看到 AWS CLI 具有 MFA:
aws sts get-caller-identity --profile default_role
Enter MFA code for arn:aws:iam::1234567890:mfa/spanktar: 123456
{
"UserId": "**********************:botocore-session-1234567890",
"Account": …Run Code Online (Sandbox Code Playgroud) kubernetes kubectl aws-iam multi-factor-authentication amazon-eks
我从Logstash收到以下错误:
{:timestamp =>"2013-12-30T17:05:01.968000-0800",:message =>"无法从字段中解析日期",:field =>"message",:value =>"2013-12-30 17 :04:59,539.539 INFO 14282:140418951137024 [foo.lib.base.onResults:152] - /1.12/media - \"getMediaStoreUrl \":,10.101.AA.BB,10.101.19.254取0.170675992966,返回https:// foo.s3.amazonaws.com/foo/customerMedia/1009238911/23883995/image?Signature=%2BfXqEdNWtWdhwzi%&*YEGJSDDdDFF%3D&Expires = 1388455499&AWSAccessKeyId = NOIMNOTTHATSTUPID> ,, >>>",:exception => java.lang.IllegalArgumentException:格式无效:"2013-12-30 17:04:59,539.539 INFO 14282:140418951137024 ..."格式错误为".539 INFO 14282:140418951137024 ...",:level =>:warn}
错误显然是关于日期格式,这对我来说是:
2013-12-30 17:04:59,539.539 INFO 14282:140418951137024...
Run Code Online (Sandbox Code Playgroud)
我的模式如下:
date {
match => ["message", "yyyy-MM-dd HH:mm:ss,SSS"]
}
Run Code Online (Sandbox Code Playgroud)
我读了Joda-Time Library,我想我的格式是正确的.我很奇怪,错误消息包含加倍的SSS(毫秒)部分:",539.539"(由于某种原因,我们的日志以这种方式输出).我故意没有将第二部分".539"放在我的模式中,因为我希望它被忽略.
我也成功在另一个过滤器中使用以下模式:
(?<pylonsdate>%{DATESTAMP}\.[0-9]+)
Run Code Online (Sandbox Code Playgroud)
我只是不确定这个错误来自哪里.有什么想法我需要做些什么才能纠正这个问题?我是否需要改变@timestamp?任何帮助表示赞赏!
filter ×2
logstash ×2
ajax ×1
amazon-eks ×1
apache ×1
awk ×1
aws-iam ×1
cookies ×1
date ×1
gcloud ×1
html ×1
jquery ×1
json ×1
kubectl ×1
kubernetes ×1
libxml2 ×1
libxslt ×1
macos ×1
master ×1
mod-headers ×1
multi-factor-authentication ×1
paw-app ×1
query-string ×1
sharding ×1
validation ×1