Skip to content

Latest commit

 

History

History
234 lines (164 loc) · 6.51 KB

README.md

File metadata and controls

234 lines (164 loc) · 6.51 KB

We have rebuilt NexClipper with new architecture & components. All-new NexClipper version 0.2.0 is to be released soon.

Previous version (NexClipper v0.1.0) has been moved to NexClipperBasic repository: NexClipperBasic

NexClipper

NexClipper is the container and container orchestration monitoring and performance management solution specialized in Docker, DC/OS, Mesosphere, Kubernetes. NexClipper Cloud especially supports machine learning based predictive, forecasting, anomaly detection.

There are two different versions of NexClipper: NexClipper Cloud and NexClipper.

Please note that previous NexClipper Light project which was host level container monitoring tool was moved to NexLight directory.

NexClipper is a silver member of Cloud Native Computing Foundation (CNCF).

NexClipper Cloud (SaaS)

NexClipper Cloud is an online SaaS to monitor and manage performance of the container cluster - Docker, DC/OS and Kubernetes. NexClipper Cloud features the following capabilities:

  • Fullstack dashboard (Infrastructure, DC/OS, Kubernetes)
  • Container Cluster (DC/OS, Kubernetes)
  • Service Performance (for API)
  • Infrastructure Monitoring (Container, Host, Resource)
  • Incidents Management
  • AI Analytics (Forecasting, Anomaly detection, Metric correlation)

For more details visit https://www.nexclipper.io/ For beta service, visit https://server.nexclipper.com

NexClipper (On-Premise)

NexClipper is an open source software to monitor and manage performance of the container cluster - Docker and Kubernetes. NexClipper features the following capabilities:

  • Fullstack dashboard (Kubernetes and Infrastructure)
  • Container Cluster (Kubernetes cluster, nodes and workloads)
  • Infrastructure Monitoring (Docker Container, Host, Resource)
  • Incidents Management (Rule set and alert manager) (#30)
  • Rest API service (Soon)
  • Dashboard Enhancement to replace k8s dashboard (Soon)
  • Dashboard Enhancement for customizing (Plan)
  • Global view and multi tenancy (Plan)
  • Prometheus Integration (Plan)
  • Workload management and deployment (Plan)
  • Resource analytics and forecasting (Plan)

Architecture Overview

NexClipper Dashboard

Quick Install

NexClipper can be deployed on Kubernetes cluster.

Prerequisites

  • Installed Kubernetes Cluster (Master Node, Worker Node 1 more)
  • An SSH key pair on your local Linux/macOS/BSD machine.
  • Create namespace nexclipper
  • Download yaml files from yaml directory

HELM chart Deployment

Prepare deployment

From your master node run kubectl create.

redis

  • create
  $ kubectl create -f <yaml/redis/deployment.yaml>
  $ kubectl create -f <yaml/redis/service.yaml>

mysql(or mariaDB)

  • Update hostpath for volume
// yaml/mysql/deployment.yaml
...
volumes:
  - name: mysql-data
    hostPath:
      path: /nfs/mysql        # update hostpath
...
  • create
  $ kubectl create -f <yaml/mysql/deployment.yaml>
  $ kubectl create -f <yaml/mysql/service.yaml>
  • Create MySQL table and data
  $ kubectl exec -it <mysql pod id> -n nexclipper sh
  > mysql -uadmin -ppassword
  > use defaultdb
  > (Execute stript of load.sql at https://github.com/NexClipper/NexClipper/blob/master/yaml/mysql/load.sql) 

influxdb

  • Update hostpath for volume
// yaml/influx/deployment.yaml
...
volumes:
  - name: influx-data
    hostPath:
      path: /nfs/influxdb        # update hostpath
...
  • create
  $ kubectl create -f <yaml/influxdb/deployment.yaml>
  $ kubectl create -f <yaml/influxdb/service.yaml>

rabbitmq (or kafka)

  • create
  $ kubectl create -f <yaml/rabbitmq/deployment.yaml>
  $ kubectl create -f <yaml/rabbitmq/service.yaml>

NexClipper service deployment

workflow

  • create
  $ kubectl create -f <yaml/workflow/deployment.yaml>

collector

  • create
  $ kubectl create -f <yaml/collector/deployment.yaml>
  $ kubectl create -f <yaml/collector/service.yaml>

nexservice

  • create
  $ kubectl create -f <yaml/nexservice/deployment.yaml>
  $ kubectl create -f <yaml/nexservice/service.yaml>

NexClipper Agent daemonset/deployment

  • Deploy NexClipepr Agent on Kubernetes cluster as follows

    • agent deployed by daemonset: get host and docker container's information
    • agent deployed by deployment: get Kubernetes cluster's information
  • Update agent endpoint into Kubernetes master node ip

// yaml/nexclipper-agent/nexclipper-agent.yaml
...
kind: DaemonSet
...
env:
  - name: agent_endpoint
    value: 192.168.0.180:32100      # <k8s master ip>:<nodeport>
...
kind: Deployment
...
env:
  - name: agent_endpoint
    value: 192.168.0.180:32100      # <k8s master ip>:<nodeport>
...
  • create
  $ kubectl create -f <yaml/nexclipper-agent/nexclipper-agent.yaml>

Now you can access web UI

  https://<k8s master ip>:32200

For API Swasgger UI

  https://<k8s master ip>:32200/swagger-ui.html 

Licensing

NexClipper is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Contact

Email: [email protected]

Homepage: https://www.nexclipper.io/

Facebook : https://www.facebook.com/nexclipper/

Linkedin: https://www.linkedin.com/company/nexcloud/

Twitter: https://twitter.com/NexClipper