A Golang based CRD operator to set up and manage logging stack (Elasticsearch, Fluentd, and Kibana) in the Kubernetes cluster. It helps to set up each component of the EFK stack separately.
The "Logging Operator" includes these features:-
- Elasticsearch different node types, like:-
- Master Node => A node that has the master role (default), which makes it eligible to be elected as the master node, which controls the cluster.
- Data Node => A node that has the data role (default). Data nodes hold data and perform data-related operations such as CRUD, search, and aggregations.
- Ingestion Node => A node that has the ingest role (default). Ingest nodes are able to apply an ingest pipeline to a document in order to transform and enrich the document before indexing. With a heavy ingest load, it makes sense to use dedicated ingest nodes and to not include the ingest role from nodes that have the master or data roles.
- Client or Coordinator Node => Requests like search requests or bulk-indexing requests may involve data held on different data nodes. A search request, for example, is executed in two phases which are coordinated by the node which receives the client request — the coordinating node.
- Elasticsearch setup with or without TLS on Transport and HTTP Layer
- Customizable elasticsearch configuration and configurable heap size
- Fluentd as a lightweight log-shipper and JSON field separation support
- Kibana integration with elasticsearch for logs visualization
- Seamless upgrade for Elasticsearch, Fluentd, and Kibana stack
- Inculcated best practices for Kubernetes setup like
- Loosely coupled setup, i.e. Elasticsearch, Fluentd, and Kibana setup can be done individually as well
- Index Lifecycle support to manage rollover and cleanup of indexes
- Index template support for configuring index settings like- policy, replicas, shards, etc.