eKuiper provides docker image, binary packages and helm chart to install.
Please make sure docker has installed before running.
docker pull lfedge/ekuiper:x.x.x
docker run -p 9081:9081 -d --name kuiper -e MQTT_SOURCE__DEFAULT__SERVER=tcp://broker.emqx.io:1883 lfedge/ekuiper:xxx
In this example, we specify the default MQTT broker via environment variable to broker.emqx.io
, which is a public MQTT test server hosted by EMQ.
For more configuration and docker image tags, please check lfedge/ekuiper in docker hub.
eKuiper manager is a free eKuiper management web console which is provided as a docker image. We can use docker compose to run both eKuiper and eKuiper manager at once to ease the usage.
Please make sure docker compose has installed before running.
docker-compose.yaml
file. version: '3.4'
services:
manager:
image: emqx/ekuiper-manager:x.x.x
container_name: ekuiper-manager
ports:
- "9082:9082"
restart: unless-stopped
environment:
# setting default eKuiper service, works since 1.8.0
DEFAULT_EKUIPER_ENDPOINT: "http://ekuiper:9081"
ekuiper:
image: lfedge/ekuiper:x.x.x
ports:
- "9081:9081"
- "127.0.0.1:20498:20498"
container_name: ekuiper
hostname: ekuiper
restart: unless-stopped
user: root
volumes:
- /tmp/data:/kuiper/data
- /tmp/log:/kuiper/log
environment:
MQTT_SOURCE__DEFAULT__SERVER: "tcp://broker.emqx.io:1883"
KUIPER__BASIC__CONSOLELOG: "true"
KUIPER__BASIC__IGNORECASE: "false"
```
2. Start docker-compose cluster.
```shell
$ docker-compose -p my_ekuiper up -d
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e2dbcd4c1f92 lfedge/ekuiper:latest "/usr/bin/docker-ent…" 7 seconds ago Up Less than a second 0.0.0.0:9081->9081/tcp, 127.0.0.1:20498->20498/tcp ekuiper
fa7c33b3e114 emqx/ekuiper-manager:latest "/usr/bin/docker-ent…" About a minute ago Up 59 seconds 0.0.0.0:9082->9082/tcp manager
Please check use of eKuiper management console to set up and configure the eKuiper manager.
eKuiper binary packages are released on below operating systems with AMD64, ARM and ARM64 support:
For other operating systems such as Windows, users can compile from source code manually.
Unzip the installation file:
unzip kuiper-x.x.x-linux-amd64.zip
Start eKuiper.
$ bin/kuiperd
Remove eKuiper. Simply delete the eKuiper directory.
After installation, all the files are inside the unzipped directory. Please check installed directory structure for detail.
Install eKuiper.
# for debian/ubuntu
$ sudo apt install ./kuiper-x.x.x-linux-amd64.deb
# for CentOS
$ sudo rpm -ivh kuiper-x.x.x-linux-amd64.rpm
Start eKuiper.
$ sudo kuiperd
sudo systemctl start kuiper
Remove eKuiper.
sudo apt remove --purge kuiper
sudo yum remove kuiper
When installing by package, the eKuiper folders are not in the same directory. The installation structure is as below:
/usr/lib/kuiper/bin
kuiperd
kuiper
/etc/kuiper
...
/var/lib/kuiper/data
...
/var/lib/kuiper/plugins
...
/var/log/kuiper
...
$ helm repo add emqx https://repos.emqx.io/charts
$ helm repo update
$ helm search repo emqx
NAME CHART VERSION APP VERSION DESCRIPTION
emqx/emqx v4.0.0 v4.0.0 A Helm chart for EMQX
emqx/emqx-ee v4.0.0 v4.0.0 A Helm chart for EMQX
emqx/ekuiper 0.1.1 0.1.1 A lightweight IoT edge analytic software
$ helm install my-ekuiper emqx/ekuiper
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
my-ekuiper-0 1/1 Running 0 56s
$ git clone https://github.com/lf-edge/ekuiper.git
$ make
$ cd _build/kuiper-x.x.x-linux-amd64/
$ bin/kuiperd
eKuiper allows to tailor the binary in compilation to get a customized feature set. As written by go, it also allows cross compilation. For detail, please check compilation.
Below is the directory structure after installation.
bin
kuiperd
kuiper
etc
...
data
...
plugins
...
log
...
The bin
directory includes all of executable files. Such as the kuiper server kuiperd
and the cli client kuiper
.
The etc
directory contains the default configuration files of eKuiper. Such as the global configuration file kuiper.yaml
and all the source configuration files such as mqtt_source.yaml
.
This folder saves the persisted definitions of streams and rules. It also contains any user defined configurations.
eKuiper allows users to develop your own plugins, and put these plugins into this folder. See extension for more info for how to extend the eKuiper.
All the log files are under this folder. The default log file name is stream.log
.