我有一个dockerized应用程序,其中一些服务使用docker-compose运行.我想使用另一个搬运工-撰写应用,来连接与ElasticSearch/Logstash/Kibana(ELK)本申请搬运工-麋鹿.它们都在开发中的同一个docker机器上运行.在生产中,情况可能并非如此.
如何配置我的应用程序docker-compose.yml以链接到ELK堆栈?
I am running ELK stack with Docker for log management with current configuration of ES 1.7, Logstash 1.5.4 and Kibana 4.1.4. Now I am trying to upgrade Elasticsearch to 2.4.0, found at https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.0/elasticsearch-2.4.0.tar.gz by using tar.gz file with Docker. As ES 2.X does not allow running it as root user, I have used
-Des.insecure.allow.root=true
Run Code Online (Sandbox Code Playgroud)
option while running the elasticsearch service, yet my container doesn't start. The logs don't mention any problem.
% Total % Received % Xferd Average Speed Time …Run Code Online (Sandbox Code Playgroud) 我对此有些困惑,因为文档说我可以将stackdriver用于“ App Engine应用程序的请求日志和应用程序日志”,所以这意味着像Web请求吗?这是否意味着像数百万个Web请求一样?
Stackdriver的价格是按资源定价的,这是否意味着我可以记录所有Web服务器的Web请求日志(这将是巨大的)而无需支付额外费用(意味着不会因日志使用的存储量而收费)?
stackdriver是否将GCP云存储用作后端,我是否需要为存储付费?看起来我几乎不需要花钱就能获得数百GB的日志聚合,只是想确保Im能够理解这一点。
我提出ELK是因为Elastic只是与Google合作,所以它一定不能做Elasticsearch所做的一切(几乎不花钱),否则它将成为竞争对手?
也许我缺少一些简单的东西,但是仍然无法弄清楚以下事情:
从ES 6.x开始,该_all字段已弃用,建议使用copy_to说明(https://www.elastic.co/guide/en/elasticsearch/reference/current/copy-to.html)。
但是,给我的印象是,您需要显式指定要复制到自定义_all字段的字段。但是,如果我使用动态映射,则我事先不知道字段,因此不能使用copy_to?。
我可以通过什么方式告诉ES将所有遇到的字段复制到自定义_all字段,以便可以在所有字段中进行搜索?
提前致谢!
我正在运行docker容器的集群中运行ELK(Elasticsearch,Logstash,Kibana).这些容器通过GELF端点将日志发送到Logstash.
docker run --log-driver=gelf --log-opt gelf-address=udp://somehost:12201 -ti my-app:latest
Run Code Online (Sandbox Code Playgroud)
然后我在Logstash中处理日志.在这里,我想折叠多行消息并将它们合并为一个单独的事件(在我的例子中是Java异常).我的配置是:
input {
gelf {}
}
filter{
multiline {
pattern => "^%{TIMESTAMP_ISO8601}"
negate => true
what => "previous"
source => "short_message"
}
}
output {
stdout { codec => rubydebug }
}
Run Code Online (Sandbox Code Playgroud)
当我从一个docker容器处理日志时,它工作得很好,但是对于两个或更多个,它不起作用,因为它会折叠两个(或更多)日志流的消息.
我希望,在输入中设置多线程可以解决问题
input {
gelf {
filter{
multiline {
pattern => "^%{TIMESTAMP_ISO8601}"
negate => true
what => "previous"
}
}
}
Run Code Online (Sandbox Code Playgroud)
但多线程无法正常使用此设置(似乎是因为bug).有什么建议?谢谢.
我正在使用:Docker 1.9.1,Logstash 2.1
我刚刚启动 springboot 并尝试使用 spring-boot 实现弹性搜索,但在运行 spring-boot 应用程序时出现此类错误
考虑在您的配置中定义一个名为“elasticsearchTemplate”的 bean。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>5.6.10</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
@Repository
public interface StudentRepository extends ElasticsearchRepository<Student, Integer>{}
Run Code Online (Sandbox Code Playgroud)
@RestController
public class Controller {
@Autowired
StudentRepository studentRepo;
@GetMapping(value="/student/all")
List<Student> getAllStudent() {
Iterator<Student> studentList = studentRepo.findAll().iterator();
List<Student> students = …Run Code Online (Sandbox Code Playgroud) 我正在获取Logstash的Java版本和mysql-connect-java.jar兼容性问题。
谁能告诉我哪个版本的mysql-connect-java.jar与哪个版本的Java兼容?
错误:
com.mysql.cj.jdbc.Driver not loaded. Are you sure you've included the correct jdbc driver in :jdbc_driver_library?
Run Code Online (Sandbox Code Playgroud)
我当前的Java版本是
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.16.04.1-b03)
OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)
Run Code Online (Sandbox Code Playgroud)
我曾尝试使用以下mysql连接器jar文件,但每个失败。
mysql-connector-java-8.0.16.jar
mysql-connector-java-8.0.15.jar
mysql-connector-java-6.0.5.jar
mysql-connector-java-5.1.46.jar
mysql-connector-java-5.1.4.jar
Run Code Online (Sandbox Code Playgroud)
Logstash配置文件是mysql.conf
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://localhost:3306/prbi"
jdbc_user => "root"
jdbc_password => ""
jdbc_driver_library => "mysql-connector-java-8.0.15.jar" #tried above every jar
jdbc_driver_class => "com.mysql.cj.jdbc.Driver" #tried com.mysql.jdbc.Driver too
schedule => "* * * * *"
use_column_value => true
tracking_column => "%{id}" …Run Code Online (Sandbox Code Playgroud) 我对使用 Elastic Stack 还很陌生,所以请原谅我缺乏这方面的知识。我在 Windows 10 公司工作计算机上运行 Elastic Stack。我已经为 bash cli 安装了 Git Bash,并且可以成功启动整个 Elastic Stack。我的任务是获取存储在我们的数据库之一中的日志数据并将其显示在 Kibana 仪表板上。
根据我和我的团队的推理,我不需要使用 Logstash,因为日志发送到的数据库实际上是我们的“日志存储”,因此使用 Logstash 服务将是多余的。我发现了这个漂亮的图表
在 freecodecamp 上,据我所知,Logstash 只是日志检索不同服务的中介。因此,我可以不使用 Logstash,因为日志数据已经在数据库中,我可以这样做
USER ---> KIBANA <---> ELASTICSEARCH <--- My Python Script <--- [DATABASE]
Run Code Online (Sandbox Code Playgroud)
我的 python 脚本成功调用我们的数据库并检索数据,以及将数据塑造成 dict 对象的函数(据我所知,Elasticsearch 以 JSON 格式获取数据)。
现在我想将所有这些数据插入 Elasticsearch - 我一直在阅读 Elastic 文档,并且有很多关于索引的讨论,但并不是真正的索引,而且我还没有找到任何可以用来插入的 API 调用将数据直接导入 Elasticsearch。到目前为止我找到的所有文档都涉及 Logstash 的使用,但由于我没有使用 Logstash,所以我在这里有点不知所措。
如果有人可以帮助我并指出正确的方向,我将不胜感激。谢谢
-担
我遇到 APM 服务器和 APM 代理 (Elastic Stack) 的兼容性问题。
"elastic-apm-node": "^3.0.0"
Run Code Online (Sandbox Code Playgroud)
配置:
var apm = require('elastic-apm-node').start({
serviceName: "******-dev",
captureBody: 'all',
stackTraceLimit: 10,
transactionMaxSpans:10,
serverUrl: "http://localhost:5601"
}).addErrorFilter(function (payload) {
if(payload.context.response && payload.context.response.status_code === 429){
return false;
}
return payload;
})
Run Code Online (Sandbox Code Playgroud)
APM服务器版本: 7.4.0
错误:
APM Server responded with "404 Not Found". This might be because you're running an incompatible version of the APM Server. This agent only supports APM Server v6.5 and above. If you're using an older version of the APM Server, …Run Code Online (Sandbox Code Playgroud) 我的 ES 节点之一因java.lang.OutOfMemoryError: Java heap space错误而失败。这是日志中的完整堆栈跟踪:
[2020-09-18T04:25:04,215][WARN ][o.e.a.b.TransportShardBulkAction] [search1] [[my_index_4][0]] failed to perform indices:data/write/bulk[s] on replica [my_index_4][0], node[cm_76wfGRFm9nbPR1mJxTQ], [R], s[STARTED], a[id=BUpviwHxQK2qC3GrELC2Hw]
org.elasticsearch.transport.NodeDisconnectedException: [search3][X.X.X.179:9300][indices:data/write/bulk[s][r]] disconnected
[2020-09-18T04:25:04,215][WARN ][o.e.c.a.s.ShardStateAction] [search1] [my_index_4][0] received shard failed for shard id [[my_index_4][0]], allocation id [BUpviwHxQK2qC3GrELC2Hw], primary term [2], message [failed to perform indices:data/write/bulk[s] on replica [my_index_4][0], node[cm_76wfGRFm9nbPR1mJxTQ], [R], s[STARTED], a[id=BUpviwHxQK2qC3GrELC2Hw]], failure [NodeDisconnectedException[[search3][X.X.X.179:9300][indices:data/write/bulk[s][r]] disconnected]]
org.elasticsearch.transport.NodeDisconnectedException: [search3][X.X.X.179:9300][indices:data/write/bulk[s][r]] disconnected
[2020-09-18T04:25:04,215][DEBUG][o.e.a.a.c.n.i.TransportNodesInfoAction] [search1] failed to execute on node [cm_76wfGRFm9nbPR1mJxTQ]
org.elasticsearch.transport.NodeDisconnectedException: [search3][X.X.X.179:9300][cluster:monitor/nodes/info[n]] disconnected
[2020-09-18T04:25:04,219][INFO ][o.e.c.r.a.AllocationService] [search1] Cluster health status changed from …Run Code Online (Sandbox Code Playgroud)