设为首页 收藏本站
查看: 1576|回复: 0

[经验分享] ELK的安装部署{单实例部署}

[复制链接]

尚未签到

发表于 2019-1-29 14:11:23 | 显示全部楼层 |阅读模式
  ELK产品组件
  Elasticsearch 分布式、开源的搜索和分析引擎。为垂直扩展、可靠性、易管理而生。它结合了搜索速度快的优点和支持复杂分析的需求。为开发者提供了对结构化的、非结构化的、时间序列的数据的友好查询语言(DSL)
  Elasticsearch as a Service 在短时间内就可以搭建自己的ES集群。一个高度管理的解决方案,支持搜索,日志和分析。并且集成了很多商业的插件。
  Logstash 是一个灵活的,开源的数据收集、数据enrichment、数据传输的管道。能够轻松地集成到常见的infrustructure里去。为充分地处理日志、时间、非结构化数据而设计,并能将数据分发到多种多样的输出,包括ES。
  Shield 给企业级的ES带来安全保障,为整个ELK栈提供加密的通信,认证,基于角色的连接控制和审计。为日益增长的商业安全需要而生。sheild能为你带来头脑的平静。
  Kibana 开源数据可视化平台,能够让你与数据交互,生成dashboads等图能让你宣传并分享你对数据的深刻见解。
  Watcher 是一个警告和通知的产品。如果你能查询ES,你就能警告它。为ES提供安全的监控或者日志里的异常。watcher能让你基于你的数据马上采取行动。
  Elasticsearch for Apache Hadoop es-hadoop是双向的连接器,让你实时地读写数据并且搜索。es-hadoop是一个优美的解决方案,利用了hadoop和ES两个的力量。
  Marvel 提供了ES部署后状态的信息的综合的工具。监控ES节点的活动,快速诊断问题,并且能尽可能够×××能的优化。
  Beats 是ES开源数据传输的未来。从网络包到日志文件,infrastructure数据,还有更多。beats是一个构建了多种多样轻量的传输工具来帮助你利用操作的数据。
  ELK的服务端的安装部署
   1:服务器环境
    服务器ip地址:192.168.0.147
  [root@hanye147 conf.d]# uname -a
  Linux hanye147 3.10.103-1.el6.elrepo.x86_64 #1 SMP Sun Aug 28 16:41:49 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux
  [root@hanye147 conf.d]# cat /etc/issue
  CentOS release 6.8 (Final)
  Kernel \r on an \m
  [root@hanye147 conf.d]# java -version
  openjdk version "1.8.0_101"
  OpenJDK Runtime Environment (build 1.8.0_101-b13)
  OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)
  2:安装ELK所需要的软件

      A:java-1.8.0-openjdk   yum install -y java-1.8.0-openjdk
      B: wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.2.noarch.rpm
      C: wget https://download.elastic.co/logstash/logstash/packages/centos/logstash-1.5.5-1.noarch.rpm
          D: wget https://download.elastic.co/kibana/kibana/kibana-4.1.0-linux-x64.tar.gz
  3:ELK之elasticsearch的安装部署
  [root@hanye147 ~]# wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.2.noarch.rpm
  [root@hanye147 ~]# yum install -y elasticsearch-1.7.2.noarch.rpm
  [root@hanye147 ~]# sudo chkconfig --add elasticsearch
  [root@hanye147 ~]# service elasticsearch start
  Starting elasticsearch:                                    [  OK  ]
   安装head集群插件
           
   elasticsearch/bin/plugin -install mobz/elasticsearch-head
  [root@hanye147 ~]# /usr/share/elasticsearch/bin/plugin  -install mobz/elasticsearch-head
  -> Installing mobz/elasticsearch-head...
  Trying https://github.com/mobz/elasticsearch-head/archive/master.zip...
  Downloading ...................................................
  Installed mobz/elasticsearch-head into /usr/share/elasticsearch/plugins/head
  [root@hanye147 ~]# ls /usr/share/elasticsearch/plugins/
  head
  访问:
  
  http://192.168.0.147:9200/_plugin/head/
  修改配置文件

  编辑 /etc/elasticsearch/elasticsearch.yml打开以下行
  [root@ELK-S-linux78 ~]# cat /etc/elasticsearch/elasticsearch.yml |egrep -v "^#|^$"
  cluster.name: hanye123
  node.name: "hanye147"
  network.host: 192.168.0.147
  http.port: 9200
  discovery.zen.ping.multicast.enabled: false #关闭广播,如果局域网有机器开9300 端口,服务会启动不了
  http.cors.allow-origin: "/.*/"
  http.cors.enabled: true
   启动elasticsearh
  [root@hanye147 ~]# /etc/init.d/elasticsearch restart
  停止 elasticsearch: [确定]
  正在启动 elasticsearch: [确定]

  查看端口

  [root@hanye147 ~]# netstat -tunlp
  Active Internet connections (only servers)
  Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  tcp 0 0 ::ffff:10.0.0.55:9200 :::* LISTEN 2207/java
  tcp 0 0 ::ffff:10.0.0.55:9300 :::* LISTEN 2207/java
  udp 0 0 :::54328 :::* 2207/java
  [root@hanye147 ~]# curl -X GET http://192.168.0.147:9200/
  {
  "status" : 200,
  "name" : "hanye147,
  "cluster_name" : "elasticsearch",
  "version" : {
  "number" : "1.7.2",
  "build_hash" : "e43676b1385b8125d647f593f7202acbd816e8ec",
  "build_timestamp" : "2015-09-14T09:49:53Z",
  "build_snapshot" : false,
  "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
  }

  Elasticsearch目录结构

  rpm安装目录:usr/share/elasticsearch/
  bin:运行ElasticSearch实例和管理插件的脚本
  lib:使用的库
  plugins :已安装的插件存入的位置
  etc/elasticsearch/:配置文件目录
  /var/log/elasticsearch/:日志文件
  [root@hanye147 ~]# rpm -ql elasticsearch|less #查看安装文件目录位置  
  4:ELK之logstash的安装部署和测试
  Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。每个阶段都由很多的插件配合工作,比如file、elasticsearch、redis等等。
  每个阶段也可以指定多种方式,比如输出既可以输出到elasticsearch中,也可以指定到stdout在控制台打印。
  由于这种插件式的组织方式,使得logstash变得易于扩展和定制,
  工作原理
  Logstash使用管道方式进行日志的搜集处理和输出。有点类似*NIX系统的管道命令 xxx | ccc | ddd,xxx执行完了会执行ccc,然后执行ddd。
  在logstash中,包括了三个阶段:
  输入input --> 处理filter(不是必须的) --> 输出output
  yum安装
  [root@ELK-S-linux78 ~]# rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch
   [root@hanye147 ~]# cat  >/etc/yum.repos.d/logstash.repo >>EOF
   [logstash-1.5]
   name=logstash repository for 1.5.x packages
   baseurl=http://packages.elasticsearch.org/logstash/1.5/centos
   gpgcheck=1
   gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
   enabled=1
   EOF
   [root@hanye147 ~]# yum install logstash
  文件安装位置
  [root@hanye147 ~]# ls /opt/logstash/
   bin CHANGELOG.md CONTRIBUTORS Gemfile Gemfile.jruby-1.9.lock lib LICENSE NOTICE.TXT vendor
   [root@hanye147 ~]# ls /etc/logstash/
   conf.d
  测试程序是否正常
  [root@hanye147 ~]# /opt/logstash/bin/logstash -e 'input {stdin{}} output {stdout{}}'
   Logstash startup completed
   hello world!!   ###手敲
   2016-06-06T17:32:24.385Z hanye147 hello world!!
   命令选项
  -f:指定配置文件
  -e:用于指定字符输入
  -l: 指定logstash的默认日志写入一个文件中,默认为控制台输出
  -t: 用来测试logstash读取到的配置文件语法是否正确解析
  5:ElK只kibana的安装和配置
  Kibana 是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化仪表板、分析等各种操作。已经历经了 v1, v2, v3, v4 个版本,分别采用了 PHP,Ruby,AngularJS,JRuby,NodeJS 等不同语言编写。
  Kibana 容易安装和使用,整个项目都是用 HTML 和 Javascript 写的, Kibana 不需要任何服务器端组件,一个纯文本发布服务器就够了。
  Kibana 的使用场景集中在两方面:
  实时监控
  问题分析
  kibana下载地址修改配置文件
  [root@hanye147 ~]#  wget https://download.elastic.co/kibana/kibana/kibana-4.1.0-linux-x64.tar.gz
  [root@hanye147 ~]#  tar xf kibana-4.1.0-linux-x64.tar.gz -C /usr/local/
  [root@hanye147 ~]#  ln -s /usr/local/kibana-4.1.0-linux-x64/ /usr/local/kibana
    
  [root@hanye147 ~]#  vim /usr/local/kibana/config/kibana.yml
  server.host: "192.168.0.147"
  elasticsearch.url: "http://192.168.0.147:9200"
  kibana.defaultAppId: "discover"
  elasticsearch.requestTimeout: 300000
  elasticsearch.shardTimeout: 0
  添加服务脚本
  [root@hanye147 ~]#  vim /etc/init.d/kibana
  #!/bin/bash
  ### BEGIN INIT INFO
  # Provides: kibana
  # Default-Start: 2 3 4 5
  # Default-Stop: 0 1 6
  # Short-Description: Runs kibana daemon
  # Description: Runs the kibana daemon as a non-root user
  ### END INIT INFO
  # Process name
  NAME=kibana
  DESC="Kibana4"
  PROG="/etc/init.d/kibana"
  # Configure location of Kibana bin
  KIBANA_BIN=/usr/local/kibana/bin
  # PID Info
  PID_FOLDER=/var/run/kibana/
  PID_FILE=/var/run/kibana/$NAME.pid
  LOCK_FILE=/var/lock/subsys/$NAME
  PATH=/bin:/usr/bin:/sbin:/usr/sbin:$KIBANA_BIN
  DAEMON=$KIBANA_BIN/$NAME
  # Configure User to run daemon process
  DAEMON_USER=root
  # Configure logging location
  KIBANA_LOG=/var/log/kibana.log
  # Begin Script
  RETVAL=0
  
  if [ `id -u` -ne 0 ]; then
  echo "You need root privileges to run this script"
  exit 1
  fi
  
  # Function library
  . /etc/init.d/functions
  
  start() {
  echo -n "Starting $DESC : "
  
  pid=`pidofproc -p $PID_FILE kibana`
  if [ -n "$pid" ] ; then
  echo "Already running."
  exit 0
  else
  # Start Daemon
  if [ ! -d "$PID_FOLDER" ] ; then
  mkdir $PID_FOLDER
  fi
  daemon --user=$DAEMON_USER --pidfile=$PID_FILE $DAEMON 1>"$KIBANA_LOG" 2>&1 &
  sleep 2
  pidofproc node > $PID_FILE
  RETVAL=$?
  [[ $? -eq 0 ]] && success || failure
  echo
  [ $RETVAL = 0 ] && touch $LOCK_FILE
  return $RETVAL
  fi
  }
  
  reload()
  {
  echo "Reload command is not implemented for this service."
  return $RETVAL
  }
  
  stop() {
  echo -n "Stopping $DESC : "
  killproc -p $PID_FILE $DAEMON
  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && rm -f $PID_FILE $LOCK_FILE
  }
  
  case "$1" in
  start)
  start
  ;;
  stop)
  stop
  ;;
  status)
  status -p $PID_FILE $DAEMON
  RETVAL=$?
  ;;
  restart)
  stop
  start
  ;;
  reload)
  reload
  ;;
  *)
  # Invalid Arguments, print the following message.
  echo "Usage: $0 {start|stop|status|restart}" >&2
  exit 2
  ;;
  esac
  启动服务
  [root@ELK-S-linux78 ~]#  chmod +x /etc/init.d/kibana
  [root@hanye147 ~]#  /etc/init.d/kibana start
  Starting Kibana4 : [确定]
  # netstat -tunlp
  tcp 0 0 0.0.0.0:5601 0.0.0.0:* LISTEN 2022/node
  tcp 0 0 ::ffff:10.0.0.44:9200 :::* LISTEN 1955/java
  tcp 0 0 ::ffff:10.0.0.44:9300 :::* LISTEN 1955/java
  添加开机服务
  [root@hanye147 ~]# chkconfig --add kibana
  [root@hanye147~]# chkconfig kibana on
  访问方式
  http://192.168.0.147:5601
  参考文档:http://www.fblinux.com/?p=40
  参看文档:http://www.linux78.com/the-elk-kibana-installation.html
      参考文档:http://www.linuxea.com/category/Stack/




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-669261-1-1.html 上篇帖子: KIBANA-loveallmylove 下篇帖子: 大数据技术资料
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表