小编ted*_*r42的帖子

Monit中存在文件的警报

我已经使用了monit一段时间,但我想报警文件是否存在.这是主文档中的相反用例.

这是医生说的:

IF [DOES] NOT EXIST [[<X>] <Y> CYCLES] THEN action [ELSE IF SUCCEEDED [[<X>] <Y> CYCLES] THEN action]
action is a choice of "ALERT", "RESTART", "START", "STOP", "EXEC" or "UNMONITOR".
Run Code Online (Sandbox Code Playgroud)

这给了我"如果文件丢失就吓坏了"的秘诀.但我想"如果文件在那里就吓坏了".行动的选择意味着没有"无所作为"的行动.我可以选择无操作,但对于"无所事事"的标准情况来说,这真的很愚蠢.

我猜到了一些基本情况:

IF EXISTS THEN alarm
IF EXIST THEN ALARM
Run Code Online (Sandbox Code Playgroud)

那么,有标准的方法IF IT DOES EXIST吗?

monit

6
推荐指数
1
解决办法
6999
查看次数

使用document_id将logstash输出到elasticsearch; 当我没有document_id时该怎么办?

我有一些logstash输入,我用它document_id来删除重复项.但是,大多数输入都没有document_id.以下是实际的document_id通过,但如果它不存在,它会被字面意思接受%{document_id},这意味着大多数文档被视为彼此的副本.这是我的输出块的样子:

output {
        elasticsearch_http {
            host => "127.0.0.1"
            document_id => "%{document_id}"
        }
}
Run Code Online (Sandbox Code Playgroud)

我以为我可以在输出中使用条件.它失败了,错误在代码下面给出.

output {
        elasticsearch_http {
            host => "127.0.0.1"
            if document_id {
                document_id => "%{document_id}"
            } 
        }
}

Error: Expected one of #, => at line 101, column 8 (byte 3103) after output {
        elasticsearch_http {
    host => "127.0.0.1"
    if 
Run Code Online (Sandbox Code Playgroud)

我尝试了一些"if"语句并且它们都失败了,这就是为什么我认为问题是在该块中有任何类型的条件.以下是我尝试的替代方案:

if document_id <> "" {
if [document_id] <> "" {
if [document_id] {
if "hello" <> "" {
Run Code Online (Sandbox Code Playgroud)

elasticsearch logstash logstash-configuration

6
推荐指数
2
解决办法
9361
查看次数

使用 S3 元数据调用 kms.decrypt 时出现 InvalidCiphertextException

我可以通过 Java SDK 添加客户端加密文件,我也可以获取该文件。我现在正在尝试使用 boto3 访问它。(我知道 boto3 不支持这一点,但 s3-wrapper 支持。不过这与 boto3 相关)。

我正在获取 s3 元数据,然后像这样调用 kms.decrypt:

object_info = s3.head_object(Bucket=bucket_name, Key=key_name)
metadata = object_info['Metadata'] # metadata is a dict with lots of x-amz-key, x-amz-iv, etc
ekey = kms.decrypt(CiphertextBlob=metadata,EncryptionContext=metadata)

# fails with:
# ParamValidationError:
# Parameter validation failed: Invalid type for parameter CiphertextBlob, value: .. type: <class 'dict'>, valid types: <class 'bytes'>, <class 'bytearray'>, file-like object`
Run Code Online (Sandbox Code Playgroud)

那么,如果我应该将密钥作为 CiphertextBlob 传递呢?

# this key looks like 'CiAlgoyM4k...
ekey = kms.decrypt(CiphertextBlob=metadata['x-amz-key-v2'],EncryptionContext=metadata)

# fails with:
# …
Run Code Online (Sandbox Code Playgroud)

python amazon-s3 amazon-web-services boto3 aws-kms

6
推荐指数
1
解决办法
1万
查看次数

AWS IAM 用户限制如果超过

每个 AWS 账户的 IAM 用户限制为 5000。我有比这更多的用户。

请告诉我是否有任何方法可以拥有超过 5000 个 IAM 用户。

amazon-web-services amazon-iam

5
推荐指数
1
解决办法
5756
查看次数

忽略比给定日期更早的传入logstash条目

我希望Logstash在处理输入条目时简单地删除超过N天的条目.

我假设我将使用日期模块并明显掉线,但我不知道如何连接它们.

logstash

5
推荐指数
1
解决办法
2274
查看次数

FreeStorageSpace 指标的 Amazon elasticsearch 解释

我有 6 个 m3.large.elasticsearch 类型和存储类型实例的实例。

在此处输入图片说明

我真的不明白这里的平均值、最小值、最大值是什么意思?

尽管此处显示 FreeStorageSpace 为 14.95GB,但我现在没有将任何日志记录到我的集群中:

在此处输入图片说明

但是我的“最小值”的 FreeStorageSpace 图已经达到零!

在此处输入图片说明

这里发生了什么?

amazon-web-services elasticsearch logstash elastic-stack amazon-elasticsearch

5
推荐指数
1
解决办法
3255
查看次数

用 lambda@edge 重写 cloudfront 源主机,如何?

我看到人们在谈论如何根据各种信息重写 URI。但我想规范化请求的域名。这是我尝试过的:

exports.handler = (event, context, callback) => {
    const request = event.Records[0].cf.request;

    if (request.method.toUpperCase() != 'GET') {
        callback(null, request);
        return;
    }

    request.origin = {
        custom: {
            domainName: 'slashdot.org',
            port: 443,
            protocol: 'https',
            path: request.uri
        }
    };
    request.headers.host = {
        "key": "Host",
        "value": request.origin.custom.domainName
    };

    console.log("returning req:", request);

    callback(null, request);
}
Run Code Online (Sandbox Code Playgroud)

我希望这会拉起请求,然后 Cloudfront 会针对我的规范化域发出请求。(对于示例和测试,我使用的是 slashdot,因为很明显它不是我的内容)。

最终,我试图规范化请求而不进行重定向,而是在命中命中源之前重写请求。

url-rewriting amazon-cloudfront aws-lambda-edge

5
推荐指数
1
解决办法
4250
查看次数

如何列出所有kubernetes DNS记录?

我有在(裸机)群集中运行的kube-dns。我知道它可以正常工作,因为我可以将服务插入到我创建的名称中并获得主机条目:

$ host elk-service-headless.default.svc.cluster.local
elk-service-headless.default.svc.cluster.local has address 10.42.0.151
elk-service-headless.default.svc.cluster.local has address 10.42.0.152
elk-service-headless.default.svc.cluster.local has address 10.42.0.153
(...)
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做是列出kube-dns持有的所有记录。我已经尝试过像dig这样的标准DNS技巧host -l,但无法获得它们。但是无论如何,必须有一种方法可以通过Kubernetes本身来实现。我尝试检查ConfigMap,但未找到所需的内容。

kubernetes

5
推荐指数
2
解决办法
1345
查看次数

错误 - Jenkins检测到运行多个实例

我正在运行Jenkins作为Windows服务.这一切都很好,从今天中午突然我开始看到以下错误.

Jenkins检测到您似乎正在运行多个共享同一主目录的Jenkins实例.这极大地混淆了詹金斯,你可能会遇到奇怪的行为,所以请纠正这种情况.

这个Jenkins:17485453 contextPath =""在1264 @ <MachineName>
其他Jenkins:15621395 contextPath =""at 13424 @ <MachineName>

怎么会这样?有什么帮助解决这个问题?

任何帮助表示赞赏!!

hudson jenkins

4
推荐指数
1
解决办法
5656
查看次数

当对象不存在时,使用 terraform 安全读取 s3_bucket_object 失败

我想安全地从s3_bucket_object. 这意味着如果 s3 对象不存在,则提供默认值。有没有办法做到这一点 ?

如果我指定不存在的密钥,则会失败

data "aws_s3_bucket_object" "deployed_builds_s3" {
  bucket = my_bucket_name
  key    = "path/to/file.txt"
}
Run Code Online (Sandbox Code Playgroud)

错误:

Error: Failed getting S3 object: NotFound: Not Found

Run Code Online (Sandbox Code Playgroud)

我知道可以像这样处理本地文件:

locals {
  file_content = fileexists("file.txt") ? file("file.txt") : ""
}
Run Code Online (Sandbox Code Playgroud)

s3 对象有类似的东西吗?

amazon-web-services terraform terraform-provider-aws

3
推荐指数
1
解决办法
1659
查看次数