我已将syslog设置为使用以下过滤器将日志发送到logstash:
output {
elasticsearch
{ hosts => ["localhost:9200"]
document_id => "%{job_id}"
}
}
filter {
grok {
overwrite => ["message"]
}
json {
source => "message"
}
}
Run Code Online (Sandbox Code Playgroud)
我的一个应用程序的典型消息将具有初始状态和job_id:
{"job_id": "xyz782", state: "processing", job_type: "something"}
Run Code Online (Sandbox Code Playgroud)
大约几分钟后,另一个日志将具有相同的log_id,不同的状态和处理时间:
{"job_id": "xyz782", state:"failed", processing_time: 12.345}
Run Code Online (Sandbox Code Playgroud)
正确加载这些字段,但会创建两个文档.我希望只为初始日志创建一个文档,而第二个日志则更新第一个文档,这意味着更新后的文档将包含以下字段:
{"job_id": "xyz782", state: "failed", job_type: "something", processing_time: 12.345}
Run Code Online (Sandbox Code Playgroud)
正如您在我的logstash conf输出中所看到的,我使用job_id作为文档ID,但是,第二条消息似乎替换了第一条消息中的字段,但也删除了第一条消息中不在的第一条消息中的所有字段.例如,第二个消息中出现的job_type字段没有出现在最终文档中.这可能与json两次来自相同字段"消息"的事实有关.是否有另一种方法可以将两个日志消息合并到logstash中的一个文档中?
在python中,您可以创建一个临时文件,如下所示:
tempfile.TemporaryFile()
Run Code Online (Sandbox Code Playgroud)
然后你可以写信给它.在GNU/Linux系统中写入的文件在哪里?我似乎无法在/ tmp目录或任何其他目录中找到它.
谢谢,
我有一个从RSA私有密钥字符串中加载PrivateKey对象的类,如下所示:
X509EncodedKeySpec spec = new X509EncodedKeySpec(privKeyString.getBytes());
KeyFactory kf = KeyFactory.getInstance("RSA");
PrivateKey privateKey = kf.generatePrivate(spec);
Run Code Online (Sandbox Code Playgroud)
我认为以上将工作以获取PrivateKey对象。但是,一旦有了私钥,我还想从中生成一个X509Certificate对象。这是我的尝试之一,但是generateCertificate方法期望输入流(我相信包含来自文件的证书),因此这将无法工作:
CertificateFactory f = CertificateFactory.getInstance("X.509");
X509Certificate cert = f.generateCertificate(privateKey); // this doesn't work.
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以仅从PrivateKey对象或从我原来拥有的私钥字符串(privKeyString变量)创建证书(理想情况下,该证书不会过期)?
谢谢,
我有一个从 CSV 文件加载的数据框,其中包含标题行。分配从 read_csv 返回的数据帧后,我尝试使用 SQLAlchemy 引擎将行添加到 MySQL 数据库表中,我的方法调用如下所示:
my_dataframe.to_sql(name="my_table",
con=alch_engine,
if_exists="append",
chunksize=50,
index=False,
index_label=None)
Run Code Online (Sandbox Code Playgroud)
但是,该表已经存在,并且数据帧标题的值与列名称不匹配,因此我收到 MySQL 错误(1054,“'field_list' 中的未知列 'Col1'”)
我不想根本不使用第一行并运行插入查询而不指定列名。我还没有从 Pandas 手册中找到解决方案。
感谢您的帮助,