Advertisement
Typhoon

IoT Meetup. Setup Example

Feb 15th, 2016
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.51 KB | None | 0 0
  1. service nginx stop
  2. service elasticsearch stop
  3. service logstash stop
  4. service redis-server stop
  5. update-rc.d logstash-forwarder disable
  6. apt-get -y install redis-server
  7. rm -rf /etc/logstash/conf.d/*
  8. rm -rf /var/lib/elasticsearch/elasticsearch/nodes/*
  9. /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf/1.0
  10. perl -pi -e 's/bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis/redis.conf
  11.  
  12. cat <<- _EOF_ > /etc/nginx/sites-enabled/elk
  13. server {
  14.     listen 8080;
  15.     location / {
  16.         proxy_pass http://localhost:9200;
  17.         proxy_http_version 1.1;
  18.         proxy_set_header Upgrade \$http_upgrade;
  19.         proxy_set_header Connection 'upgrade';
  20.         proxy_set_header Host \$host;
  21.         proxy_cache_bypass \$http_upgrade;
  22.     }
  23. }
  24. _EOF_
  25.  
  26. cat <<- _EOF_ > /etc/elasticsearch/elasticsearch.yml
  27. cluster.name: elasticsearch
  28. node.name: "ELK1"
  29. index.number_of_shards: 2
  30. index.number_of_replicas: 0
  31. network.bind_host: 0.0.0.0
  32. network.publish_host: 0.0.0.0
  33. network.host: localhost
  34. transport.tcp.compress: true
  35. http.port: 9200
  36. http.max_content_length: 100mb
  37. _EOF_
  38.  
  39. cat <<- _EOF_ > /etc/logstash/conf.d/redis.conf
  40. input {
  41.   redis {
  42.     host => "127.0.0.1"
  43.     data_type => "channel"
  44.     db => 1
  45.     key => "iot"
  46.     type => "sensor"
  47.     codec => json
  48.   }
  49. }
  50.  
  51. output {
  52.   elasticsearch { host => localhost index => "iot" }
  53.   stdout { codec => rubydebug }
  54. }
  55. _EOF_
  56.  
  57. service nginx restart
  58. service elasticsearch restart
  59. service logstash restart
  60. service redis-server restart
  61.  
  62. cat <<- _EOF_ > /root/redis_seed.py
  63. import redis
  64. import random
  65. import time
  66. from datetime import datetime, timedelta
  67.  
  68. r = redis.Redis("localhost", db=1)
  69.  
  70. def random_date(start, end):
  71.     gentime = start + timedelta(
  72.         seconds=random.randint(0, int((end - start).total_seconds())))
  73.     return str(gentime)[:-3].replace(" ","T")
  74.  
  75. start_date = datetime.now() - timedelta(days=3*365)
  76. end_date = datetime.now()
  77.  
  78. my_iter = 0
  79. print("Start date to generate: ", start_date)
  80. print("End date to generate: ", end_date)
  81. while my_iter < 100000 :
  82.     inside_temp = random.randrange(22, 28, 1)
  83.     outside_temp = random.randrange(16, 30, 1)
  84.     humidity = random.randrange(40, 55, 2)
  85.     timestamp = random_date(start_date, end_date)
  86.  
  87.     data = '{"Inside_Temp": %d, "Outside_Temp": %d, "Humidity": %d, "@timestamp": "%s" }' % (inside_temp, outside_temp, humidity, timestamp)
  88.     r.publish("iot", data)
  89.  
  90.     my_iter +=1
  91.  
  92. print("\n\nFINISH !")
  93. _EOF_
  94.  
  95. #apt-get -y install python3-pip
  96. #tail -f /var/log/logstash/logstash.stdout
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement