Skip to content

Commit f6026f5

Browse files
committed
refactoring documentation and deployment manifests
1 parent 30abf8c commit f6026f5

24 files changed

+365
-80
lines changed

.idea/.gitignore

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/realopinsight.iml

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations.xml

+10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

+33-80
Original file line numberDiff line numberDiff line change
@@ -1,97 +1,50 @@
11

2+
![](./images/banners/realopinsight-overview-thumbnail.png)
3+
4+
5+
![GPL v3 License](https://img.shields.io/github/license/rchakode/realopinsight.svg?label=License)
6+
[![Calendar Versioning](https://img.shields.io/badge/calver-YY.MM.MICRO-bb8fce.svg)](http://calver.org)
27
![build](https://github.com/rchakode/realopinsight/workflows/CI/badge.svg)
8+
![Docker pulls](https://img.shields.io/docker/pulls/rchakode/realopinsight.svg?label=Docker%20Pulls)
39

4-
# Overview
5-
RealOpInsight allows to monitor, measure and observe end-user applications availability atop of Kubernetes®, Zabbix®, Nagios®. It features application-specific knowledges to aggregate and handle the status of low-level probes in a way that is meaningful for any targeted end-user application.
10+
---
611

712
- [Overview](#overview)
8-
- [Key Features](#key-features)
9-
- [Quick Start](#quick-start)
10-
- [Deployment on kubernetes](#deployment-on-kubernetes)
11-
- [Deployment on Docker](#deployment-on-docker)
12-
- [Getting Started](#getting-started)
13+
- [Getting Started](#getting-started)
14+
- [License](#license)
1315
- [Contributions](#contributions)
14-
- [Copyrights & License](#copyrights--license)
15-
16-
# Key Features
17-
Fully open source ([GPL v3 Licence](LICENSE)), RealOpinsight features include:
18-
* **Monitor business values, Define & track SLA/SLO targets:** Focus on the applications that underlie your business, set up application-aware notifications, measure, observe and analyze applications availability over time.
19-
* **Federated & unified applications monitoring:** RealOpInsight enables to set up unified applications monitoring views on top of applications and corporate environments that rely on many monitoring systems. Thereby breaking monitoring silos, it boosts the productivity of operations staffs while helping them solving incident with relevant priorities.
20-
* **Relationship mapping & event correlation:** Map relationships among each application components, set up application-specific policies to calculate and propagate the severity of incidents so as to meet your particular incident management needs.
21-
* **Simple and secured integration through API:** Don't waste time on complex or boring configuration tasks, RealOpInsight only requires a read-only access to the API of the monitoring data collection backends (i.e. Kubernetes API, Zabbix API...). It's released as Docker images along with Kubernetes Helm3 manifests to ease its deployment.
22-
* **Tactical Operations Dashboards:** Whether you're an operations staff or executive, RealOpInsight allows to build user-specific tactical dashboards that allow you to have a quick insight on how your applications are operating while be able to have more details in one click.
23-
24-
![](./images/banners/screenshots.png)
25-
26-
# Quick Start
27-
RealOpInsight is released as Docker images along with Kubernetes Helm3 manifests to ease its deployment.
28-
29-
The below sections show how to set an instance of RealOpInsight in a couple of seconds on Kubernetes or on an [OCI](https://opencontainers.org/)-compliant container engine (Docker, Podman, CRI-O, etc).
3016

31-
## Deployment on Kubernetes
32-
Assuming you have a Linux terminal with Helm3 installed and able to access a KUBECONFIG file to deploy resources on Kubernetes, the following command shall install an instance in the `monitoring` namespace. **The namespace must exist**, it can be changed to another value.
33-
34-
```
35-
helm upgrade \
36-
--namespace monitoring \
37-
--install realopinsight \
38-
helm/realopinsight/
39-
```
40-
41-
By default the Helm manifests also deploy a **ClusterIP** service named `realopinsiht` to expose the UI on port `80` and Prometheus metrics on port `4584`. The associated in-cluster URLs are the following:
42-
* UI: `http://realopinsight.monitoring/ui`.
43-
* Prometheus metrics: `http://realopinsight.monitoring:4583/metrics`.
17+
# Overview
18+
RealOpInsight features application-specific knowledges to monitors an IT infrastructure from an end-user service point of view. It leverages low-level probes from Kubernetes®, Zabbix® and/or Nagios®, and enable to build on top of that an application service tree allowing to easily evaluate the impact of each incident on the service availability.
4419

45-
## Remote access to the UI
46-
To get a remote access to the UI, use one of the following options:
47-
* Change the service type to **LoadBalancer** (see [Helm value files](helm/realopinsight/values.yaml));
48-
* Enable an Ingress access (see [Helm value files](helm/realopinsight/values.yaml));
49-
* Enable port-forwarding from your local machine as follows (change the namespace if different).
50-
```
51-
kubectl port-forward \
52-
--namespace monitoring \
53-
service/realopinsight-ui 4583:80
54-
```
55-
Then point your browser at the following address: http://localhost:4583/ui/.
20+
Key features:
5621

57-
## Deployment on Docker
58-
The following command shall pull the image and start an instance of RealOpInsight in background. The `-d` option can be removed to start the instance in foreground.
59-
With this command the data of the instance will be stored locally on the Docker machine at the specified path (value of option `--volume`, can be changed if needed).
22+
* **Monitor business values, Define & track SLA/SLO targets:** Focus on the applications that underlie your business, set up application-aware notifications, measure, observe and analyze applications availability over time.
23+
* **Federated & unified applications monitoring:** Break silos by setting up unified applications monitoring operations views that hide the underlying monitoring systems while helping you solving incidents with relevant business priorities.
24+
* **Relationship mapping & event correlation:** Map relationships among application components, set up specific business-oriented policies to handle and propagate each incident with appropriate business impact.
25+
* **Simple and secured integration through API:** Don't waste time on complex configuration tasks, just a couple of minute is required to deploy and get started with RealOpInsight.
26+
* **Tactical Operations Dashboards:** For operations staff or executive, build specific tactical dashboards to get quick insight on how your applications are operating, be able to get details in one click.
27+
* Open source licensed under the terms of [GPL v3 Licence](LICENSE).
6028

61-
```
62-
$ docker run -d \
63-
--name realopinsight \
64-
--network host \
65-
--volume $HOME/.realopinsight:/opt/realopinsight \
66-
rchakode/realopinsight
67-
```
29+
![](./images/banners/screenshots.png)
6830

69-
Once the container started, it shall enable the following endpoints:
70-
* UI: `http://localhost:4583/ui`.
71-
* Prometheus metrics: `http://localhost:4584/metrics`.
31+
# Getting Started
32+
* [Deployment on Kubernetes](./docs/deployement-on-kubernetes.md)
33+
* [Deployment on Docker](./docs/deployement-on-deployment-on-docker.md)
34+
* [Integration with Kubernetes](https://realopinsight.com/docs/quickstart-kubernetes-dashboard/)
35+
* [Integration with Zabbix](https://realopinsight.com/docs/quickstart-zabbix-dashboard/)
36+
* [Integration with Nagios and alike](https://realopinsight.com/docs/quickstart-nagios-icinga-centreon-dashboard/)
37+
* [Design fundamentals](https://realopinsight.com/docs/monitoring-data-sources/)
7238

73-
## Default admin credentials
74-
The default username and password for the UI are `admin` and `password`.
39+
> The default credentials: username => `admin`, password => `password` (should be changed).
7540
76-
> For a production setup, you must change this default password as quick as possible.
41+
# License
42+
RealOpInsight is licensed under the terms of [GPLv3 License](LICENSE), mainly due to copyleft contamination by third-party software to which it's bound (e.g. [Qt](https://www.qt.io/), [Wt](https://www.webtoolkit.eu/wt)).
7743

78-
## Configuration and next steps
79-
Consider the following resources to start integrating RealOpInsight with your target monitoring environment.
80-
* [Architecture & Supported Monitoring Sources](https://realopinsight.com/docs/monitoring-data-sources/)
81-
* [Integration with Kubernetes](https://realopinsight.com/docs/quickstart-kubernetes-dashboard/)
82-
* [Integration with Zabbix](https://realopinsight.com/docs/quickstart-zabbix-dashboard/)
83-
* [Integration with Nagios and related systems](https://realopinsight.com/docs/quickstart-nagios-icinga-centreon-dashboard/)
8444

8545
# Contributions
86-
Contributions in any form (feedback, code, documentation...) are welcome.
87-
88-
For code contributions it's required to have skills in writing code in C+11 or later.
89-
90-
The software also includes [Qt](https://www.qt.io/) and [Wt](https://www.webtoolkit.eu/wt) at it core. Having fundamentals to develop software using this frameworks may be helpful, but not required.
91-
92-
# Copyrights & License
93-
This project has been initiated by Rodrigue Chakode and open to contributions.
94-
95-
Contributions in any form (code, documentation...) must be aligned and compliant with the following terms.
46+
Contributions in any forms are welcomed (feedback, code, documentation, etc).
9647

97-
The software is licensed under the terms of [GPLv3 License](LICENSE), mainly due to contamination by third-party systems that the software is bound to. All those third-party systems may offer dual licenses (e.g. for proprietary uses), subject to pay some license fees. You can contact us you're interested in such a use.
48+
RealOpInsight is developed using C++14 and is bound the [Qt](https://www.qt.io/) and [Wt](https://www.webtoolkit.eu/wt) frameworks.
49+
Having fundamentals to develop software in C++11 or higher is required.
50+
It may be helpful, but not required, to have experience building software with Qt and Wt.

docs/deployement-on-kubernetes.md

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Deploy RealOpInsight on Kubernetes
2+
This document describes how to deploy RealOpInsight on a Kubernetes cluster.
3+
4+
The deployment can be achieved using `Helm` or `kubectl` + `Kustomize`. Select the appropriate section below to getting started.
5+
6+
- [Deploy RealOpInsight on Kubernetes](#deploy-realopinsight-on-kubernetes)
7+
- [Installation using kubectl and Kustomize](#installation-using-kubectl-and-kustomize)
8+
- [Deployment with Helm](#deployment-with-helm)
9+
- [In-cluster access to service](#in-cluster-access-to-service)
10+
- [Remote access to the service](#remote-access-to-the-service)
11+
12+
## Installation using kubectl and Kustomize
13+
First review the default configuration settings in the deployment ConfigMap: `kustomize/realopinsight-config.yaml`.
14+
15+
Then, perform the following command to submit the deployment.
16+
The target namespace (`monitoring`) is assumed to exist. Otherwise, create it first.
17+
18+
```
19+
kubectl -n monitoring apply -k ./manifests/kustomize
20+
```
21+
22+
## Deployment with Helm
23+
Assuming you have a Linux terminal with Helm3 installed and able to access a KUBECONFIG file to deploy resources on Kubernetes, the following command shall install an instance in the `monitoring` namespace. **The namespace must exist**, it can be changed to another value.
24+
25+
```
26+
helm upgrade --namespace monitoring --install realopinsight manifests/helm/realopinsight/
27+
```
28+
29+
## In-cluster access to service
30+
On success, the deployment does create a Kubernetes **ClusterIP** service named `realopinsiht`.
31+
32+
This service exposes the RealOpInsight's web interface (port `80`) as well as its Prometheus exporter (port `4584`).
33+
34+
Their in-cluster URLs are the following:
35+
* Web UI: `http://realopinsight.monitoring/ui`.
36+
* Prometheus metrics: `http://realopinsight.monitoring:4583/metrics`.
37+
38+
39+
## Remote access to the service
40+
As a developer or for debugging purposes, you can enable port forwarding for local access as follows.
41+
42+
```
43+
kubectl port-forward --namespace monitoring service/realopinsight-ui 4583:80
44+
```
45+
46+
For production access, typically for operations monitoring, you must have to consider the Ingress policies defined in your organization. Contact your IT staff for additional information.
47+

docs/deployment-on-docker.md

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
# Deploy RealOpInsight on Docker
3+
This document describes how to deploy RealOpInsight on a Docker machine.
4+
5+
## Start the container
6+
The following command shall pull the image and start an instance in background (`-d`). You can remove this option to start the instance in foreground.
7+
8+
With this command the data of the instance will be stored locally on the Docker machine at the specified path (value of option `--volume`, can be changed if needed).
9+
10+
```
11+
docker run -d \
12+
--name realopinsight \
13+
--network host \
14+
--volume $HOME/.realopinsight:/opt/realopinsight \
15+
rchakode/realopinsight
16+
```
17+
18+
## Accessing the service
19+
Once the container started, it shall enable the following endpoints:
20+
* Web UI: `http://localhost:4583/ui`.
21+
* Prometheus metrics: `http://localhost:4584/metrics`.
Loading
File renamed without changes.
File renamed without changes.
File renamed without changes.
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
apiVersion: kustomize.config.k8s.io/v1beta1
3+
kind: Kustomization
4+
namespace: monitoring
5+
6+
resources:
7+
- resources/realopinsight-config.yaml
8+
- resources/realopinsight-rbac.yaml
9+
- resources/realopinsight-app.yaml
10+
- resources/realopinsight-tests.yaml
11+
images:
12+
- name: realopinsight
13+
newName: rchakode/realopinsight
14+
newTag: 22.02.0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
---
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
name: realopinsight
6+
labels:
7+
app.kubernetes.io/name: realopinsight
8+
app.kubernetes.io/instance: realopinsight
9+
app: realopinsight
10+
spec:
11+
type: ClusterIP
12+
ports:
13+
- name: http-ui
14+
protocol: TCP
15+
port: 80
16+
targetPort: 4583
17+
- name: http-metrics
18+
protocol: TCP
19+
port: 4584
20+
targetPort: 4584
21+
selector:
22+
app.kubernetes.io/name: realopinsight
23+
app.kubernetes.io/instance: realopinsight
24+
---
25+
apiVersion: apps/v1
26+
kind: StatefulSet
27+
metadata:
28+
name: realopinsight
29+
labels:
30+
app.kubernetes.io/name: realopinsight
31+
app.kubernetes.io/instance: realopinsight
32+
app: realopinsight
33+
spec:
34+
replicas: 1
35+
serviceName: realopinsight
36+
selector:
37+
matchLabels:
38+
app.kubernetes.io/name: realopinsight
39+
app.kubernetes.io/instance: realopinsight
40+
template:
41+
metadata:
42+
labels:
43+
app.kubernetes.io/name: realopinsight
44+
app.kubernetes.io/instance: realopinsight
45+
spec:
46+
securityContext:
47+
runAsUser: 54583
48+
fsGroup: 54583
49+
serviceAccountName: realopinsight
50+
restartPolicy: Always
51+
containers:
52+
- name: realopinsight
53+
image: "rchakode/realopinsight"
54+
imagePullPolicy: Always
55+
env:
56+
- name: "REALOPINSIGHT_DATA_DIR"
57+
valueFrom:
58+
configMapKeyRef:
59+
key: REALOPINSIGHT_DATA_DIR
60+
name: realopinsight-config
61+
- name: "REALOPINSIGHT_DB_NAME"
62+
valueFrom:
63+
configMapKeyRef:
64+
key: REALOPINSIGHT_DB_NAME
65+
name: realopinsight-config
66+
- name: "REALOPINSIGHT_DB_PASSWORD"
67+
valueFrom:
68+
configMapKeyRef:
69+
key: REALOPINSIGHT_DB_PASSWORD
70+
name: realopinsight-config
71+
- name: "REALOPINSIGHT_DB_SERVER_ADDR"
72+
valueFrom:
73+
configMapKeyRef:
74+
key: REALOPINSIGHT_DB_SERVER_ADDR
75+
name: realopinsight-config
76+
- name: "REALOPINSIGHT_DB_SERVER_PORT"
77+
valueFrom:
78+
configMapKeyRef:
79+
key: REALOPINSIGHT_DB_SERVER_PORT
80+
name: realopinsight-config
81+
- name: "REALOPINSIGHT_DB_TYPE"
82+
valueFrom:
83+
configMapKeyRef:
84+
key: REALOPINSIGHT_DB_TYPE
85+
name: realopinsight-config
86+
- name: "REALOPINSIGHT_DB_USER"
87+
valueFrom:
88+
configMapKeyRef:
89+
key: REALOPINSIGHT_DB_USER
90+
name: realopinsight-config
91+
- name: "REALOPINSIGHT_ROOT_DIR"
92+
valueFrom:
93+
configMapKeyRef:
94+
key: REALOPINSIGHT_ROOT_DIR
95+
name: realopinsight-config
96+
ports:
97+
- name: http-ui
98+
containerPort: 4583
99+
protocol: TCP
100+
- name: http-metrics
101+
containerPort: 4584
102+
protocol: TCP
103+
livenessProbe:
104+
httpGet:
105+
path: /ui
106+
port: http-ui
107+
readinessProbe:
108+
httpGet:
109+
path: /ui
110+
port: http-ui
111+
resources:
112+
{}
113+
volumeMounts:
114+
- mountPath: /data
115+
name: data-vol
116+
- mountPath: /opt/realopinsight/etc
117+
name: config-data-vol
118+
volumes:
119+
- name: config-data-vol
120+
emptyDir: {}
121+
volumeClaimTemplates:
122+
- metadata:
123+
name: data-vol
124+
spec:
125+
accessModes:
126+
- ReadWriteOnce
127+
resources:
128+
requests:
129+
storage: 1Gi

0 commit comments

Comments
 (0)