SpringBootでESログを統合する方法
Elasticsearch に Spring Bootのログを統合するには、以下の手順を実行します。
- Elasticsearchの依存関係をpom.xmlファイルに追加します:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
- Elasticsearchの接続情報を「application.properties」に設定する:
spring.data.elasticsearch.cluster-nodes=localhost:9200
- Elasticsearch用のエンティティクラスを作成して、インデックス内のドキュメントをマッピングする。
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
@Document(indexName = "logs", type = "log")
public class Log {
@Id
private String id;
private String message;
// 其他字段和getter/setter方法
}
- インデックス操作用のElasticsearchリポジトリインターフェイスを作成します。
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
public interface LogRepository extends ElasticsearchRepository<Log, String> {
}
- ログを記録する必要のある場所で LogRepository を注入し、その save メソッドを使用してログを保存します。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class MyLogger {
@Autowired
private LogRepository logRepository;
public void log(String message) {
Log log = new Log();
log.setMessage(message);
logRepository.save(log);
}
}
この方法を呼び出すと、Elasticsearchのlogsインデックスの、logタイプのログにログが保存されます.
なお、上記の手順はあくまで簡易的なもので、実運用ではシャードやレプリカ数の設定、カスタムクエリなどの追加の設定と処理が必要になる場合があります。