Skip to content

Commit 75837d4

Browse files
authored
Merge pull request #2275 from ealagna/cms/ealagna/hpe-dev-portal/blog/deploying-cribl-stream-containers-on-hpe-greenlake
Create Blog “deploying-cribl-stream-containers-on-hpe-greenlake”
2 parents 3073e4f + afc15f8 commit 75837d4

File tree

3 files changed

+238
-0
lines changed

3 files changed

+238
-0
lines changed
Lines changed: 238 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,238 @@
1+
---
2+
title: Deploying Cribl Stream Containers on HPE GreenLake for Private Cloud Enterprise
3+
date: 2024-01-17T21:25:38.155Z
4+
author: Elias Alagna & Kam Amir
5+
authorimage: /img/Avatar1.svg
6+
disable: false
7+
tags:
8+
- ezmeral
9+
- hpe-ezmeral-container-platform
10+
- hpe-ezmeral-data-fabric
11+
- kubernetes
12+
- hpe-greenlake
13+
- as-a-service
14+
- PCE
15+
- Private Cloud Enterprise
16+
- logging
17+
- Splunk
18+
- GreenLake
19+
- Cribl
20+
---
21+
Hewlett Packard Enterprise and [Cribl](https://cribl.io/) bring together breakthrough technology to optimize and modernize observability data management, offering new levels of performance and platform independence.
22+
23+
The challenges of security and log management are only partly solved by existing software solutions. HPE and Cribl address the remaining problems of optimizing, routing, and replaying logs to provide independence from the industry’s software products in this space. HPE provides a robust way to run multiple log management software solutions and the Cribl Stream in a modern, easy-to-use, and robust platform. Together, HPE and Cribl reduce the total cost of ownership of log management systems by optimizing the software, accelerating the infrastructure, and reducing management costs.
24+
25+
Cribl Stream is an observability and data streaming platform for real-time processing of logs, metrics, traces, and observability data that enables the ITops, SRE, SecOps and observability teams to collect the data they want, shape the data in the formats they need, route the data wherever they want it to go, and replay data on-demand; thereby enabling customers to observe more and spend less, to have choice and flexibility, and to provide control over their data. HPE GreenLake is a private and hybrid cloud service that delivers the benefits of public cloud to your on-premises environment.
26+
27+
Cribl software can be deployed as stand alone software or run on a fully managed HPE GreenLake platform to offer further ease-of-use for organizations that want the benefits of cloud in an on-premise private cloud offering.
28+
29+
Deploying Cribl Stream containers on HPE GreenLake is a simple and effective way to implement a vendor-agnostic observability pipeline. Cribl Stream containers offer a number of advantages, including agility, cost savings, security, and management simplicity. [Cribl software](https://www.hpe.com/us/en/software/marketplace/cribl-stream.html) is available in the[ HPE GreenLake Marketplace](https://www.hpe.com/us/en/software/marketplace.html).
30+
31+
Deploying Cribl Stream containers on HPE GreenLake offers a number of advantages, including:
32+
33+
* **Agility:** Cribl Stream containers can be deployed quickly and easily on HPE GreenLake, giving you the agility to scale your observability pipeline up or down as needed.
34+
* **Cost savings:** Cribl Stream containers can help you reduce the cost of your observability pipeline by optimizing your data storage and processing through data reduction, data normalization and log routing.
35+
* **Security:** Cribl Stream containers can help you secure your data by encrypting it at rest and in transit.
36+
* **Management simplicity:** HPE GreenLake provides a single management console for managing your Cribl Stream containers, making it easy to keep your observability pipeline running smoothly.
37+
38+
![Cribl architecture diagram](/img/cribl-on-hpe-architecture.png "Cribl architecture")
39+
40+
#### Prerequisites
41+
42+
Before you deploy Cribl Stream containers on HPE GreenLake, you will need to:
43+
44+
* Have an active HPE GreenLake agreement and deployed HPE GreenLake for Private Cloud Enterprise and an account on [https://common.cloud.hpe.com/](<* https://common.cloud.hpe.com/>).
45+
* Install the HPE Ezmeral Runtime Enterprise [Kubectl executable](https://docs.ezmeral.hpe.com/runtime-enterprise/56/reference/kubernetes/tenant-project-administration/Dashboard__Kubernetes_TenantProject_Administrator.html).
46+
* Create a HPE Ezmeral Runtime Enterprise [Kubernetes cluster](https://youtu.be/HSYWa2MalF4).
47+
* Install the Cribl Stream [Kubernetes operator](https://docs.cribl.io/stream/getting-started-guide/).
48+
49+
Steps to deploy Cribl Stream containers on HPE GreenLake:
50+
51+
1. Create a Cribl Stream deployment file. This file will specify the Cribl Stream containers that you want to deploy, as well as the resources that they need.
52+
2. Deploy the Cribl Stream containers to your HPE GreenLake cluster using the Cribl Stream Kubernetes operator.
53+
3. Verify that the Cribl Stream containers are running and healthy.
54+
4. Configure Cribl Stream to collect and process your data.
55+
5. Send your data to your analysis platform of choice.
56+
57+
#### Example deployment file
58+
59+
The following example deployment file deploys a Cribl Stream container that collects and processes logs from a Kubernetes cluster:
60+
61+
```yaml
62+
apiVersion: apps/v1
63+
kind: Deployment
64+
metadata:
65+
name: cribl-stream
66+
spec:
67+
replicas: 1
68+
selector:
69+
matchLabels:
70+
app: cribl-stream
71+
template:
72+
metadata:
73+
labels:
74+
app: cribl-stream
75+
spec:
76+
containers:
77+
- name: cribl-stream
78+
image: cribl/cribl-stream:latest
79+
ports:
80+
- containerPort: 9000
81+
volumeMounts:
82+
- name: cribl-stream-config
83+
mountPath: /etc/cribl-stream
84+
volumes:
85+
- name: cribl-stream-config
86+
configMap:
87+
name: cribl-stream-config
88+
```
89+
90+
#### Deploying Cribl Stream using Helm Charts
91+
92+
The Cribl Stream helm charts can be found on github (<https://github.com/criblio/helm-charts>). This assumes that the namespace is set to `cribl`.
93+
94+
Log into cloud CLI or jump box and issue the following commands:
95+
96+
```shell
97+
export KUBECONFIG=<path_to_kube_settings>
98+
kubectl get nodes -n cribl
99+
kubectl get svc -n cribl
100+
```
101+
102+
Label the leader node and the worker nodes:
103+
104+
```shell
105+
kubectl label nodes <leader_node> stream=leader
106+
kubectl label nodes <worker_node> stream=worker
107+
```
108+
109+
Validate by running:
110+
111+
```shell
112+
kubectl get nodes --show-labels
113+
```
114+
115+
Create and modify the `values.yaml` file for workers and leader nodes. For the leader nodes, create a file named `Leader_values.yaml` and modify line 97:
116+
117+
```yaml
118+
nodeSelector:
119+
stream: leader
120+
```
121+
122+
For the worker nodes, create a file named `Worker_values.yaml` and modify line 97:
123+
124+
```yaml
125+
nodeSelector:
126+
stream: worker
127+
```
128+
129+
Next, set the labels for your workers and leader node.
130+
131+
To do this, you'll first need to get a list of all the nodes and the labels associated with them.
132+
133+
```shell
134+
kubectl get nodes --show-labels
135+
```
136+
137+
Now, identify the nodes and make sure to label the nodes according to their role for this deployment.
138+
139+
Here is an example of setting the host `k8s-cribl-master-t497j-92m66.gl-hpe.net` as a leader:
140+
141+
```shell
142+
kubectl label nodes k8s-cribl-master-t497j-92m66.gl-hpe.net stream=leader
143+
```
144+
145+
Here is an example of setting the host `k8s-cribl-wor8v32g-cdjdc-8tkhn.gl-hpe.net` as a worker node:
146+
147+
```shell
148+
kubectl label nodes k8s-cribl-wor8v32g-cdjdc-8tkhn.gl-hpe.net stream=worker
149+
```
150+
151+
If you accidentally label a node and want to remove or overwrite the label, you can use this command:
152+
153+
```shell
154+
kubectl label nodes k8s-cribl-wor8v32g-cdjdc-876nq.gl-hpe.net stream=worker --overwrite=true
155+
```
156+
157+
Once the labels have been set, you are ready to run the helm command and deploy Cribl Stream on your environment. The first command will deploy the Cribl Leader node:
158+
159+
```shell
160+
helm install --generate-name cribl/logstream-leader -f leader_values.yaml -n cribl
161+
```
162+
163+
When successful, you will see output similar to what's shown below:
164+
165+
```shell
166+
NAME: logstream-leader-1696441333
167+
LAST DEPLOYED: Wed Oct 4 17:42:16 2023
168+
NAMESPACE: default
169+
STATUS: deployed
170+
REVISION: 1
171+
TEST SUITE: None
172+
```
173+
174+
Note that this will deploy the leader node with the parameters found in the `leader_values.yaml` file and into the namespace `cribl`.
175+
176+
Next, deploy the worker nodes using the `worker_values.yaml` file into the namespace `cribl`.
177+
178+
```shell
179+
helm install --generate-name cribl/logstream-workergroup -f workers_values.yaml
180+
```
181+
182+
When successful, you will see a similar output like the one below:
183+
184+
```shell
185+
NAME: logstream-workergroup-1696441592
186+
LAST DEPLOYED: Wed Oct 4 17:46:36 2023
187+
NAMESPACE: default
188+
STATUS: deployed
189+
REVISION: 1
190+
TEST SUITE: None
191+
```
192+
193+
Now you can validate the deployment by running the following command:
194+
195+
```shell
196+
kubectl get svc
197+
```
198+
199+
You should see the following results:
200+
201+
```shell
202+
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
203+
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 22d
204+
logstream-leader-1696441333 LoadBalancer 10.111.152.178 <pending> 9000:31200/TCP 9m56s
205+
logstream-leader-1696441333-internal ClusterIP 10.105.14.164 <none> 9000/TCP,4200/TCP 9m56s
206+
logstream-workergroup-1696441592 LoadBalancer 10.102.239.137 <pending> 10001:30942/TCP,9997:32609/TCP,10080:32174/TCP,10081:31898/TCP,5140:30771/TCP,8125:31937/TCP,9200:32134/TCP,8088:32016/TCP,10200:32528/TCP,10300:30836/TCP 5m35s
207+
```
208+
209+
Note: the names and IP addresses will differ from the above example. To test that the deployment was successful, you can run the following command and log into your deployment using the localhost and port 9000:
210+
211+
```shell
212+
kubectl port-forward service/logstream-leader-1696441333 9000:9000 &
213+
```
214+
215+
#### Uninstalling Cribl using Helm
216+
217+
You can uninstall the Cribl deployment for both the leader and worker nodes by running the following commands respectively:
218+
219+
```shell
220+
helm uninstall logstream-leader-1696441333 -n default
221+
helm uninstall logstream-workergroup-1696441592 -n default
222+
```
223+
224+
Make sure to use your leader and worker group name when uninstalling Cribl from your deployment.
225+
226+
#### Configuring Cribl Stream
227+
228+
Once you have [deployed the Cribl Stream](https://docs.cribl.io/stream/deploy-kubernetes-leader/) containers, you need to configure them to collect and process your data. You can do this by editing the Cribl Stream configuration file. The Cribl Stream documentation provides detailed instructions on how to configure Cribl Stream.
229+
230+
#### Sending your data to your analysis platform of choice
231+
232+
Once you have configured Cribl Stream to collect and process your data, you need to send it to your analysis platform of choice. Cribl Stream supports a wide range of analysis platforms, including Elasticsearch, Splunk, and Kafka.
233+
234+
#### Conclusion
235+
236+
For more information on Cribl Stream, check out "Optimized Enterprise Logging Solution With HPE Ezmeral And Cribl Business white paper": <https://www.hpe.com/psnow/doc/a50006507enw>
237+
238+
For more blog posts related to HPE Ezmeral Software, keep coming back to the HPE Developer Community blog and search on HPE Ezmeral.
206 KB
Loading

static/img/criblarchitecure.png

214 KB
Loading

0 commit comments

Comments
 (0)