在Ubuntu 14.04 上安装单机版ELK 2.*(脚本化)

1.判断是否为root权限

  1. if [ "${UID}" -ne 0 ];
  2. then
  3. echo "You must be root to run this program." >&2
  4. exit 3
  5. fi

2.记录脚本运行日志(可以在ubuntu日志中找到对应的运行信息)

  1. log()
  2. {
  3. echo "$1"
  4. logger "$1"
  5. }

3.设置脚本运行参数

  1. # Set the VM name for the elasticsearch network.host
  2. # Set the host name instead of internal ip
  3. while getopts n:e: optname; do
  4. log "Option $optname set with value ${OPTARG}"
  5. case $optname in
  6. n) #set the encoded configuration string
  7. log "Setting the VM Name"
  8. VMNAME=${OPTARG}
  9. ;;
  10. e) #set the encoded configuration string
  11. log "Setting the encoded configuration string"
  12. CONF_FILE_ENCODED_STRING=${OPTARG}
  13. ;;
  14. \?) #unrecognized option - show help
  15. echo -e \\n"Option -${BOLD}$OPTARG${NORM} not allowed."
  16. help
  17. exit 2
  18. ;;
  19. esac
  20. done

4.安装java 8

  1. #install java8
  2. install_java()
  3. {
  4. log "begin install java8"
  5. sudo add-apt-repository -y ppa:webupd8team/java
  6. sudo apt-get -y update > /dev/null
  7. echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections
  8. echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections
  9. sudo apt-get -y install oracle-java8-installer > /dev/null
  10. log "java8 has been installed"
  11. }

5.安装Elasticsearch,配置Elasticsearch的主要参数

  1. install_config_elasticsearch()
  2. {
  3. log "begin install elasticsearch"
  4. wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
  5. echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list
  6. sudo apt-get update
  7. sudo apt-get -y install elasticsearch
  8. # configure the elasticsearch
  9. sudo echo "bootstrap.mlockall: true" >> /etc/elasticsearch/elasticsearch.yml
  10. sudo echo "network.host: $VMNAME" >> /etc/elasticsearch/elasticsearch.yml
  11. sudo echo "http.port: 9200" >> /etc/elasticsearch/elasticsearch.yml
  12. # configure elasticsearch heap
  13. log "elasticsearch.yml has been configured . The elasticsearch heap begin to configure"
  14. es_heap_size=$(free -m |grep Mem | awk '{if ($2/2 >31744) print 31744;else print $2/2;}')
  15. sudo printf "\nES_HEAP_SIZE=%sm\n" $es_heap_size >> /etc/default/elasticsearch
  16. sudo printf "MAX_LOCKED_MEMORY=unlimited\n" >> /etc/default/elasticsearch
  17. sudo echo "elasticsearch - nofile 65536" >> /etc/security/limits.conf
  18. sudo echo "elasticsearch - memlock unlimited" >> /etc/security/limits.conf
  19. log "es heap has been set"
  20. sudo service elasticsearch restart
  21. sudo update-rc.d elasticsearch defaults 95 10
  22. log "elasticsearch has been installed"
  23. }

6.安装主要插件,可选。

  1. install_plugin()
  2. {
  3. cd /usr/share/elasticsearch/
  4. sudo bin/plugin install lmenezes/elasticsearch-kopf
  5. sudo bin/plugin install mobz/elasticsearch-head
  6. sudo bin/plugin install license
  7. sudo bin/plugin install watcher
  8. #install marvel part0
  9. sudo bin/plugin install marvel-agent
  10. cd
  11. }

7.安装配置kibana

  1. install_config_kibana()
  2. {
  3. #install kibana
  4. log "begin to install kibana"
  5. echo "deb http://packages.elastic.co/kibana/4.4/debian stable main" | sudo tee -a /etc/apt/sources.list.d/kibana-4.4.x.list
  6. sudo apt-get update
  7. sudo apt-get -y install kibana
  8. #configure kibana
  9. # take care of the server.host name
  10. sudo echo "server.host: '$VMNAME'" >> /opt/kibana/config/kibana.yml
  11. sudo echo "elasticsearch.url: 'http://$VMNAME:9200'" >> /opt/kibana/config/kibana.yml
  12. sudo update-rc.d kibana defaults 96 9
  13. sudo service kibana start
  14. #install marvel part1 . marvel need to be installed after kibana was done.
  15. sudo bin/kibana plugin --install elasticsearch/marvel/2.1.0
  16. log "kibana has been installed"
  17. }

8.安装配置logstash

  1. install_logstash()
  2. {
  3. # Install Logstash
  4. # The Logstash package is available from the same repository as Elasticsearch . Install the public key.
  5. # Create the logstash source list
  6. wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
  7. log "begin to install logstash"
  8. echo 'deb http://packages.elastic.co/logstash/2.2/debian stable main' | sudo tee /etc/apt/sources.list.d/logstash-2.2.x.list
  9. sudo apt-get update
  10. sudo apt-get install logstash
  11. #configure
  12. log "Decoding configuration string"
  13. log "$CONF_FILE_ENCODED_STRING"
  14. echo $CONF_FILE_ENCODED_STRING > logstash.conf.encoded
  15. DECODED_STRING=$(base64 -d logstash.conf.encoded)
  16. log "$DECODED_STRING"
  17. echo $DECODED_STRING > ~/logstash.conf
  18. #log "Installing user configuration file"
  19. log "Installing user configuration named logstash.conf"
  20. sudo \cp -f ~/logstash.conf /etc/logstash/conf.d/
  21. # Configure Start
  22. log "Configure start up service"
  23. sudo update-rc.d logstash defaults 96 9
  24. sudo service logstash start
  25. }

9.运行方式

  • 如果你不太熟悉,可以分段或分句复制,type到命令行然后运行。
  • 如果你较为熟悉,可以复制整理所有的函数到一个elk.sh脚本中并调用,如下:
  1. sudo bash elk.sh -n {parameter1} -e {parameter2}
  1. #parameter1 是hostname
  2. #parameter2 是logstash的配置文件,此处你可以简单带入如下:
  3. "aW5wdXQgIHsgICBzdGRpbiB7fSB9IG91dHB1dCB7ICAgc3Rkb3V0IHsgY29kZWMgPT4gcnVieWRlYnVnIH0gfQ=="
  4. #该字符串解码后为input { stdin {} } output { stdout { codec => rubydebug } }
  5. #logstash无默认的配置文件,无法启动服务。因此需要导入一个简单的配置。然后根据后续进行修改

Ubuntu 14.04 中 安装elasticsearch2.*+logstash2.*+kibana的更多相关文章

  1. Ubuntu 14.04中安装最新版Eclipse

    Ubuntu 14.04中安装最新版Eclipse 来源:Linux社区    作者:Linux 1.安装OpenJDK Java 7 如果你的系统中没有安装Java,我们需要按照如下步骤事先安装好 ...

  2. 怎样在Ubuntu 14.04中安装Java(转)

    想知道如何在Ubuntu 14.04中安装Java?安装Java肯定是安装Ubuntu 14.04后首先要做的几件事情之一(见http://www.linuxidc.com/Linux/2014-04 ...

  3. 如何在Ubuntu 14.04中安装最新版Eclipse

    想必很多开发人员都知道,Ubuntu 软件源中提供的并不是最新版本的 Eclipse,本教程就教大家如何在 Ubuntu 14.04 中快速安装 Eclipse 官方发布的最新版本. 到目前为止,Ec ...

  4. 转:如何在Ubuntu 14.04中安装最新版Eclipse

    想必很多开发人员都知道,Ubuntu 软件源中提供的并不是最新版本的 Eclipse,本教程就教大家如何在 Ubuntu 14.04 中快速安装 Eclipse 官方发布的最新版本. 到目前为止,Ec ...

  5. ubuntu 14.04中安装 ruby on rails 环境

    环境:在win7 上Vmware虚拟机环境中安装的ubuntu 14.04 1. bundle install 时,报json错误可以看出是在安装nokogiri时遇到了问题,此时执行 sudo ap ...

  6. ubuntu 14.04中安装 ruby on rails 环境(填坑版) 呕血推荐

    环境:在win7 上Vmware虚拟机环境中安装的ubuntu 14.04 开发相关: ruby 2.2.0 rails 4.2.0 sublime text 3 本文说明:所有的命令均在$ 之后,若 ...

  7. Ubuntu 14.04 中安装 VMware10 Tools工具

    Run: apt-get install dkms linux-headers-$(uname -r) build-essential psmisc2 - Run: git clone https:/ ...

  8. ubuntu 14.04中安装phpmyadmin即mysql图形管理界面

    由于学习的需要,我将网站开发环境从windows转移到了ubuntu,ubuntu下之前并没有发现什么难的地方,只要百度一般都有解决方案.但是总所周知ubuntu是一系列开源软件的集合,由于版本的问题 ...

  9. ubuntu 14.04 中安装R和Rstudio

    1. 安装R 1.1 首先添加镜像源 sudo gedit /etc/apt/sources.list # 加入新镜像源: deb http://cran.rstudio.com/bin/linux/ ...

随机推荐

  1. 通过adb方式给安卓手机截图的cmd批处理文件

    @echo off rem  通过adb方式截图rem  需要安装adb ,一般安装了android sdk 默认带了adb ,路径为sdk目录的android-sdk\platform-toolsr ...

  2. Angular企业级开发(3)-Angular MVC实现

    1.MVC介绍 Model-View-Controller 在20世纪80年代为程序语言Smalltalk发明的一种软件架构.MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并 ...

  3. SQLServer 版本之八大方法搞清 "我是谁"

    你正在使用 SQL Server 的哪个版本? 贴士:作为一个SQL Server数据库管理者或维护.支持人员,应该会经常问自己这样一个问题:我当前SQL Server版本号是?当前版本已经有的累计更 ...

  4. vue双向数据绑定原理探究(附demo)

    昨天被导师叫去研究了一下vue的双向数据绑定原理...本来以为原理的东西都非常高深,没想到vue的双向绑定真的很好理解啊...自己动手写了一个. 传送门 双向绑定的思想 双向数据绑定的思想就是数据层与 ...

  5. php注册审核

    通过注册审核,判断刚创建的账户是否可以使用. 后台管理员审核通过后,账号可以使用. 通过session 设置只能通过登录入口进入网页. 原理:通过数据库设置账号的一个字段状态,例: isok:1, i ...

  6. 如果你也会C#,那不妨了解下F#(7):面向对象编程之继承、接口和泛型

    前言 面向对象三大基本特性:封装.继承.多态.上一篇中介绍了类的定义,下面就了解下F#中继承和多态的使用吧.

  7. Objective-C枚举的几种定义方式与使用

    假设我们需要表示网络连接状态,可以用下列枚举表示: enum CSConnectionState { CSConnectionStateDisconnected, CSConnectionStateC ...

  8. eclipse — 导入android项目后识别成java项目的问题及解决

    最近在eclipse导入android项目的时候遇到了奇葩问题,再此记录 遇到的问题就是:将完好的android项目导入到eclipse的时候,原本这是一个很容易的事情,但是导入成功后发现,,,靠ec ...

  9. nexus 社区版3.0.2部署、访问

    下载nexus社区办(oss): https://www.sonatype.com/download-oss-sonatype 目前最新版本  nexus-3.0.2-02-win64.zip nex ...

  10. tg2015 信息传递 (洛谷p2661)

    题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...