1
0
mirror of https://github.com/mainflux/mainflux.git synced 2025-04-29 13:49:28 +08:00
Drasko DRASKOVIC f090573567
NOISSUE - Improve MQTT benchmarking tools (#828)
* Refactor mqtt-bench

Signed-off-by: drasko <drasko.draskovic@gmail.com>

* Refactor mqtt-bench and provision tools

Signed-off-by: drasko <drasko.draskovic@gmail.com>

* Improve README

Signed-off-by: drasko <drasko.draskovic@gmail.com>

* Remove provision generated toml file

Signed-off-by: drasko <drasko.draskovic@gmail.com>

* Update README

Signed-off-by: drasko <drasko.draskovic@gmail.com>

* Replace `tcp` with `tcps` for mtls

Signed-off-by: drasko <drasko.draskovic@gmail.com>
2019-08-30 14:09:12 +02:00
..

Mainflux Things and Channels Provisioning Tool

A simple utility to create a list of channels and things connected to these channels with possibility to create certificates for mTLS use case.

This tool is usefule for testing, and it creates a TOML format output (on stdout, can be redirected into the file of needed) that can be used by Mainflux MQTT benchmarking tool (mqtt-bench).

Usage

./provision --help
Tool for provisioning series of Mainflux channels and things and connecting them together.
Complete documentation is available at https://mainflux.readthedocs.io

Usage:
  provision [flags]

Flags:
      --ca string         CA for creating and signing things certificate (default "ca.crt")
      --cakey string      ca.key for creating and signing things certificate (default "ca.key")
  -h, --help              help for provision
      --host string       address for mainflux instance (default "https://localhost")
      --num int           number of channels and things to create and connect (default 10)
  -p, --password string   mainflux users password
      --ssl               create certificates for mTLS access
  -u, --username string   mainflux user

Example:

./provision -u mirkot@mainflux.com -p test1234 --host https://142.93.118.47

If you want to create a list of channels with certificates:

./provision --host http://localhost --num 10 -u test@mainflux.com -p test1234 --ssl true --ca ../../docker/ssl/certs/ca.crt --cakey ../../docker/ssl/certs/ca.key

ca.crt and ca.key are used for creating things certificate and for HTTPS, if you are provisioning on remote server you will have to get these files to your local

Example of output:

[[mainflux]]
  ChannelID = "42053920-439a-461f-bd81-dece1ef06089"
  ThingID = "49f3c38c-400e-4171-a954-24850150124b"
  ThingKey = "835d74ab-7232-49b7-bc6d-a1ca97c6eecc"
  MTLSCert = "-----BEGIN CERTIFICATE-----\nMIIFmDCCA4CgAwIBAgIQVvvHUH9XPYMGF2F/YzfxFzANBgkqhkiG9w0BAQsFADBX\nMRIwEAYDVQQDDAlsb2NhbGhvc3QxETAPBgNVBAoMCE1haW5mbHV4MQwwCgYDVQQL\nDANJb1QxIDAeBgkqhkiG9w0BCQEWEWluZm9AbWFpbmZsdXguY29tMB4XDTE5MDgw\nNzIwMzU0NVoXDTE5MDgwNzIwMzU0NVowVTERMA8GA1UEChMITWFpbmZsdXgxETAP\nBgNVBAsTCG1haW5mbHV4MS0wKwYDVQQDEyQ4MzVkNzRhYi03MjMyLTQ5YjctYmM2\nZC1hMWNhOTdjNmVlY2MwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC\nhC/TAiiE2OKug73B5lWxUfzpUfukIIl+Ge8Xz6CIqzGlvPoggpCm5igZUC5YTpg4\neIC550kyq8pLDZzck/f7Qq0aJq3wBYLtA64XzfTrG84MI+yt3mniKYmZQInW1GXC\nStS+jzAnhTPr5urnMaPLm5g9UTlvMN6TwRMlf4kSlSCR0KN0kKH6yRU9MEEwvt+2\nTu5RWLN1LwZzG5ud0AAjT5CL08akloUpSEt1KLY2c7uf9l/1upkxBmhKoSs0sRW0\n25aX6c0qLOnKDRrsUKI8YbYkKAKsRtGRPl9q1j/Im4mE/9EwGgibdwVItz2Pmq/k\nOQjZ+f3tEKXwRD3yK9Aas1u/K5tf35aK5Eznr1f2FyM8uQ2SyEcXVikYA32hoI6W\nQRkTTlueG4K2H/KN2KL5MC+N7h17Bw5ZCS0201xnhDLjTaeGFr0SibFHJA8IVOeL\npTKohB4r1gAOKqzIQ3IYdJ/3jk31SxGw7Et3QBs+wxyUHLCalBFIk4R+GC276Buk\nFR3fFOIsm5+f5udZTYrikW0dWXHxhhSOFlTurQP5aS0K5HpdwnOkMWTKYMwmwHut\nxF9ycPc5gCjBC8wPGbrCkA9XJdKw+VTySg6tTgEnyLvkccdi07Fs13qQcT1MK2sv\nf9qEVdVBRnsB1i2vffHRF3j5RGK1hbKO1AX4fICJMQIDAQABo2IwYDAOBgNVHQ8B\nAf8EBAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMA4GA1UdDgQH\nBAUBAgMEBjAfBgNVHSMEGDAWgBRs4xR91qEjNRGmw391xS7x6Tc+8jANBgkqhkiG\n9w0BAQsFAAOCAgEAcZjTZLAPOr9Xm7ASxieAj5pdoRKz5Q3y4kZ2oCJ/BtIfN25C\nTEuRvNLkLZHZo/ZeOU0XyNfpHiOqc0J4R2zgrpdncH0+viC22bhcec95+fNrES+G\nGpbw0BufFPcn0cDeJQbtg//4eeCiXaNZgui8Og9t2D4TgYPwPmi4l6tYXDpMUaT0\n5Vrr6VXezbHUpDtSaG2aoo4Z7nrEhtXKnYlpo8htEbCH8S3zxbmWx3bn8gS8Dsr9\nSyqSxiAMYjIBxwCmgTi6iaINmSHxtMhqU5mmPVBa1vZBiNBQlvW2Yslvl0aMdgVD\nLzz8JULXBuKwIdHAbmrDgXvQAtRRJ34X9q4X5QjzMZgCvHwoHrj2yg2VbUnuSnmv\npJojiwZI0Mj/7y9gPGa6aBl10chs9d7V5Kaqm2qSGd/1Zf6ndSiK8P5YubP4Bvc9\nFtPgO87rbrjMmg84Trrm4EnMakQodr8GIFcQA1XqgYTrTrhlgF80/zqisN+7p80u\nfftd34IEBCOsP8ANPpxOaqOCSU+G6NbW2K6l8NYj2jhrF/cXgze25X7mMXyWj3jf\nkF0yHX8PScts1DVlx5064rrGoVQfD147m01SjWa+uqE2tD3mr9mc5QnvNdZph1CO\n3ca2jOhC2wfvqSh8cwBtGMLc1nU7K8p9qmtn3+bfL4oedwfMvyLHsa4Ggrg=\n-----END CERTIFICATE-----\n"
  MTLSKey = "-----BEGIN RSA PRIVATE KEY-----\n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
  -----END RSA PRIVATE KEY-----"