3.5.2. Log Search OpenSearch Provider#
Log search OpenSearch provider paketi ile daha detaylı OpenSearch sorgularının yapılması hedeflenmektedir. Bu paket kullanılarak OpenSearch üzerindeki aggregation'ların kullanımına olanak sağlanmıştır.
Not
Log Search OpenSearch Provider paketi OpenSearch'e direkt olarak bağlantı kurarak işlem yapar. Logger Search Server üzerinden rest ile işlem yapmak istenildiği durumda Log Search İstemci API (Client) sayfası ziyaret edilmelidir.
Bağımlılıklar#
api (
[group: 'tr.com.havelsan.framework.logger', name: 'hvl-logger-search-opensearch-provider'],
)
YAML#
hvl:
opensearch:
ssl:
enabled: true
name: opensearch-ssl
bundle:
keystore:
location: ${OPENSEARCH_KEYSTORE_LOCATION:/home/acuhadaroglu/Desktop/truststore.jks}
password: ${OPENSEARCH_KEYSTORE_PASSWORD:changeit}
truststore:
location: ${OPENSEARCH_TRUSTSTORE_LOCATION:/home/acuhadaroglu/Desktop/truststore.jks}
password: ${OPENSEARCH_TRUSTSTORE_PASSWORD:changeit}
opensearch:
uris: ${OPENSEARCH_ENDPOINTS:https://hvlopensearch:9200,https://hvlopensearch2:9201}
username: ${OPENSEARCH_USERNAME:admin}
password: ${OPENSEARCH_PASSWORD:Hvl12345@}
restclient:
ssl:
bundle: opensearch-ssl
hvl-infra üzerinden Config Server kullanıldığı durumlarda bootstrap.yml dosyasındaki spring.cloud.config.profile pathine opensearch değerinin eklenmesi gerekmektedir. Böylece yukarıdaki özelliklerin ve daha fazlasının olduğu application-opensearch.yml dosyası projeye dahil olacaktır.
Kullanımı#
Log Search OpenSearch Provider paketinin çalışmasını sağlamak için @HvlEnableLogSearchOpenSearchProvider anotasyonunun konfigürasyon sınıfına eklenmesi gerekmektedir.
@Configuration
@ComponentScan(basePackages = {HvlLoggerConfigurationConstant.BASE_PACKAGE})
@HvlEnableLogSearchOpenSearchProvider
public class HvlLoggerConfiguration extends HvlBaseConfiguration {
}
@HvlEnableLogSearchOpenSearchProvider anotasyonu eklemesi yapıldıktan sonra HvlLogSearchOpenSearchProvider bean'i inject edilerek kullanılmaya başlanabilir.
@Service
public class HvlLoggerSearchServiceImpl implements HvlLoggerSearchService {
private final HvlLogSearchOpenSearchProvider logSearchOpenSearchProvider;
public HvlLoggerSearchServiceImpl(HvlLogSearchOpenSearchProvider logSearchOpenSearchProvider) {
this.logSearchOpenSearchProvider = logSearchOpenSearchProvider;
}
}
Aggregation örneği ve detaylı kullanım ile ilgili tam bir örnek kod için hvl-javalt-samples projesindeki örnek incelenebilir. Bu örnek elasticsearch üzerinden verilmiştir ancak, Aggregation gibi sınıfların elasticsearch yerine opensearch olanları kullanılıarak geliştirme yapılabilir.
Fluentd Konfigürasyonu#
<store>
@type opensearch
scheme https
hosts hvlopensearch:9200,hvlopensearch2:9200
user admin
password Hvl12345@
ssl_verify false
index_name ${indexName}-%Y-%m
suppress_type_name true
<buffer indexName, time>
@type file
path /fluentd/buffer/chunk.*
timekey 1h
flush_mode interval
flush_interval 10s
chunk_limit_size 8m
delayed_commit_timeout 120
overflow_action block
retry_forever true
retry_max_interval 300
</buffer>
</store>