Skip to content

Commit 9cc9bf0

Browse files
author
vijay-stephen
committed
Merge pull request #1 from sourcefuse/feature/efk-and-prom
EFK and Prometheus
1 parent b3e03f8 commit 9cc9bf0

File tree

1 file changed

+126
-0
lines changed
  • docs/arc-iac-docs/modules/terraform-aws-ref-arch-observability-stack/docs/module-usage-guide

1 file changed

+126
-0
lines changed
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# Terraform AWS ARC Observability Module Usage Guide
2+
3+
## Introduction
4+
5+
### Purpose of the Document
6+
7+
This document provides guidelines and instructions for users looking to implement Terraform module for deploying Observability stack
8+
9+
### Module Overview
10+
11+
The [terraform-aws-arc-observability-stack](https://github.com/sourcefuse/terraform-aws-arc-observability-stack) module provides a secure and modular foundation for deploying observability stack
12+
13+
### Prerequisites
14+
15+
Before using this module, ensure you have the following:
16+
17+
- AWS credentials configured.
18+
- Terraform installed.
19+
- A working knowledge of Kuberntes
20+
- CSI driver is installed
21+
- AWS Loadbalancer controller is installed
22+
23+
## Getting Started
24+
25+
### Module Source
26+
27+
To use the module in your Terraform configuration, include the following source block:
28+
29+
```hcl
30+
module "efk" {
31+
source = "sourcefuse/arc-observability-stack/aws"
32+
version = "0.0.1"
33+
# insert the required variables here
34+
}
35+
```
36+
37+
### Integration with Existing Terraform Configurations
38+
39+
Integrate the module with your existing Terraform mono repo configuration, follow the steps below:
40+
41+
1. Create a new folder in `terraform/` named `observability-stack`.
42+
2. Create the required files, see the [examples](https://github.com/sourcefuse/terraform-aws-arc-observability-stack/tree/main/examples/elasticsearch_fleuntd) to base off of.
43+
3. Configure with your backend
44+
- Create the environment backend configuration file: `config.<environment>.hcl`
45+
- **region**: Where the backend resides
46+
- **key**: `<working_directory>/terraform.tfstate`
47+
- **bucket**: Bucket name where the terraform state will reside
48+
- **dynamodb_table**: Lock table so there are not duplicate tfplans in the mix
49+
- **encrypt**: Encrypt all traffic to and from the backend
50+
51+
### Required AWS Permissions
52+
53+
Ensure that the AWS credentials used to execute Terraform have the necessary permissions to deploy kuberntes objects , AWS parameter store, loadbalancer etc
54+
55+
## Module Configuration
56+
57+
### Input Variables
58+
59+
For a list of input variables, see the README [Inputs](https://github.com/sourcefuse/terraform-aws-arc-observability-stack?tab=readme-ov-file#inputs) section.
60+
61+
### Output Values
62+
63+
For a list of outputs, see the README [Outputs](https://github.com/sourcefuse/terraform-aws-arc-observability-stack?tab=readme-ov-file#outputs) section.
64+
65+
## Module Usage
66+
67+
### EFK Stack Usage
68+
69+
For basic usage, see the [example](https://github.com/sourcefuse/terraform-aws-arc-observability-stack/tree/main/examples/elasticsearch_fleuntd) folder.
70+
71+
## Resources Deployed by the Module
72+
### 1. Logging Stack (EFK)
73+
- FluentBit or Fluentd: Responsible for collecting and forwarding container logs.
74+
- Elasticsearch or OpenSearch: Centralized log storage and search backend.
75+
- Kibana: Dashboard for visualizing logs and creating queries.
76+
### 2. Monitoring Stack (Prometheus)
77+
- Prometheus: Metrics collection and alerting.
78+
- Alertmanager: Alert routing and management.
79+
- Grafana: Dashboard for visualizing metrics and setting up custom dashboards.
80+
- Blackbox Exporter: Endpoint monitoring to check health and response times.
81+
- Node Exporter: Exposes node-level metrics for monitoring.
82+
- Kube-State-Metrics: Exposes Kubernetes object state metrics.
83+
84+
85+
### Tips and Recommendations
86+
87+
- Users can choose their preferred search engine between AWS OpenSearch and Elasticsearch.
88+
- For log aggregation, users have the flexibility to select either Fluentd or FluentBit based on their requirements.
89+
90+
## Troubleshooting
91+
92+
### Reporting Issues
93+
94+
If you encounter a bug or issue, please report it on the [GitHub repository](https://github.com/sourcefuse/terraform-aws-arc-observability-stack/issues).
95+
96+
## Security Considerations
97+
98+
### AWS VPC
99+
100+
Understand the security considerations related to EKS cluster
101+
102+
### Best Practices for Observability stack
103+
104+
Follow best practices to ensure secure Observability configurations:
105+
106+
[EKS Cluster security on AWS](https://docs.aws.amazon.com/eks/latest/best-practices/introduction.html)
107+
108+
## Contributing and Community Support
109+
110+
### Contributing Guidelines
111+
112+
Contribute to the module by following the guidelines outlined in the [CONTRIBUTING.md](https://github.com/sourcefuse/terraform-aws-arc-observability-stack/blob/main/CONTRIBUTING.md) file.
113+
114+
### Reporting Bugs and Issues
115+
116+
If you find a bug or issue, report it on the [GitHub repository](https://github.com/sourcefuse/terraform-aws-arc-observability-stack/issues).
117+
118+
## License
119+
120+
### License Information
121+
122+
This module is licensed under the Apache 2.0 license. Refer to the [LICENSE](https://github.com/sourcefuse/terraform-aws-arc-observability-stack/blob/main/LICENSE) file for more details.
123+
124+
### Open Source Contribution
125+
126+
Contribute to open source by using and enhancing this module. Your contributions are welcome!

0 commit comments

Comments
 (0)