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

[经验分享] elk搭建完整搭建【篇1】

[复制链接]

尚未签到

发表于 2019-1-28 09:34:21 | 显示全部楼层 |阅读模式
  【参考
  官网:
  https://www.elastic.co/downloads
  参考:
  http://517sou.net/archives/centos%E4%B8%8B%E4%BD%BF%E7%94%A8elk%E5%A5%97%E4%BB%B6%E6%90%AD%E5%BB%BA%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90%E5%92%8C%E7%9B%91%E6%8E%A7%E5%B9%B3%E5%8F%B0/
  http://my.oschina.net/itblog/blog/547250
  http://baidu.blog.运维网.com/71938/1676798
  

  【ELK组成
  Elasticsearch:
  Search and analyze data in real time.
  Logstash:
  Collect, enrich, and transport data.
  Kibana:
  Explore and visualize your data.
  

  注意:三个组建缩写ELK
  

  【安装系统环境和软件包

  系統信息:
  [root@log_server src]# du -sh elasticsearch-2.2.1.tar.gz logstash-all-plugins-2.2.0.tar.gz kibana-4.4.2-linux-x64.tar.gz
  29M     elasticsearch-2.2.1.tar.gz
  72M     logstash-2.2.2.tar.gz
  32M     kibana-4.4.2-linux-x64.tar.gz
  

  可以检查的校验码与官网对比是否包已经下载完整
  [root@log_server src]# sha1sum kibana-4.4.2-linux-x64.tar.gz
  6251dbab12722ea1a036d8113963183f077f9fa7  kibana-4.4.2-linux-x64.tar.gz
  [root@log_server src]# cat /etc/redhat-release ; uname -m
  CentOS release 6.4 (Final)
  x86_64
  关闭防火墙
  [root@log_server src]# /etc/init.d/iptables status
  iptables: Firewall is not running.
  [root@log_server src]# getenforce
  Disabled
  最大文件描述符(默人用户级别的1024太小咯 要求是65536以上)
  [root@master ~]# ulimit -n
  102400
  

  修改方式:
  打开文件增加两行 /etc/security/limits.conf
  

  * soft nofile 102400
  * hard nofile 102400
  

  查看 ulimit -n
  [root@log_server src]# java -version
  java version "1.7.0_99"
  OpenJDK Runtime Environment (rhel-2.6.5.0.el6_7-x86_64 u99-b00)
  OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)
  

  

  注意:jdk可自行网上搜索安装方法

  注:由于Logstash的运行依赖于Java环境, 而Logstash 1.5以上版本不低于java 1.7,因此推荐使用最新版本的Java。因为我们只需要Java的运行环境,所以可以只安装JRE,不过这里我依然使用JDK,请自行搜索安装。

  (推荐yum安装yum install -y java-1.7.0-openjdk)
  yum install -y java-1.8.0-openjdk.x86_64   (推荐用1.8 否则会有警告)
  !!! Please upgrade your java version, the current version '1.7.0_09-icedtea-mockbuild_2013_01_16_18_52-b00' may cause problems. We recommend a minimum version of 1.7.0_51

  
  这是版本建议(推荐1.8)
  【下载来自官网源和软件安装介绍

  

  系统环境和版本信息:本文把ELK套件部署在一台CentOS单机上。
具体的版本要求如下:
wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.2.1/elasticsearch-2.2.1.tar.gzwget https://download.elastic.co/logstash/logstash/logstash-2.2.2.tar.gzwget https://download.elastic.co/kibana/kibana/kibana-4.4.2-linux-x64.tar.gz



  

  

  

  【安装elasticsearch】
  解压、软连接、cd到目录下
tar xvf elasticsearch-2.2.1.tar.gz -C /usr/local/
ln -s /usr/local/elasticsearch-2.2.1/ /usr/local/elasticsearch
cd /usr/local/elasticsearc  安装这个重要的插件:
[root@master elasticsearc]# ./bin/plugin install  mobz/elasticsearch-head  -> Installing mobz/elasticsearch-head...
  Plugins directory [/usr/local/elasticsearc/plugins] does not exist. Creating...
  Trying https://github.com/mobz/elasticsearch-head/archive/master.zip ...
  Downloading .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................DONE
  Verifying https://github.com/mobz/elasticsearch-head/archive/master.zip checksums if available ...
  NOTE: Unable to verify checksum for downloaded plugin (unable to find .sha1 or .md5 file to verify)
  Installed head into /usr/local/elasticsearc/plugins/head
  

  创建用户和目录(因为elasticsearch 2.0.0 以上版本不能用root用户运行)
[root@master elasticsearc]# groupadd -g 1000  elasticsearch  
[root@master elasticsearc]# useradd -g 1000 -u 1000 elasticsearch                           
[root@master elasticsearc]# sudo -u elasticsearch mkdir /tmp/elasticsearch
[root@master elasticsearc]# ls /tmp/elasticsearch
[root@master elasticsearc]# sudo -u elasticsearch mkdir /tmp/elasticsearch/{data,logs}  mkdir /usr/local/elasticsearch/config/scripts
  编辑配置文件vim config/elasticsearch.yml  加如以下四行(注意冒号后面有空格):
  path.data: /tmp/elasticsearch/data
  path.logs: /tmp/elasticsearch/logs
  network.host: 192.168.100.10
  network.port: 9200
  

  启动配置默认,启动elasticsearch
sudo -u elastsearch /usr/local/elasticsearch/bin/elasticsearch  


  

  

  注意:如果正式应用需要在后台运行
sudo -u elastsearch /usr/local/elasticsearch/bin/elasticsearch -d  查看进程和端口
  [root@master ~]# ps -ef | grep java
  1000      9477  9338  2 21:02 pts/4    00:00:07 /usr/bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/usr/local/elasticsearch -cp /usr/local/elasticsearch/lib/elasticsearch-2.2.1.jar:/usr/local/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch start
  root      9620  9576  0 21:07 pts/0    00:00:00 grep --color=auto java
  [root@master ~]# netstat -tulnp |grep java
  tcp        0      0 ::ffff:192.168.100.10:9200  :::*                        LISTEN      9477/java           
  tcp        0      0 ::ffff:192.168.100.10:9300  :::*                        LISTEN      9477/java      
  注意:
  可以看到,它跟其他的节点的传输端口为9300,接受HTTP请求的端口为9200。

  

  # curl 192.168.100.10:9200
  {
    "name" : "Wilson Fisk",
    "cluster_name" : "elasticsearch",
    "version" : {
      "number" : "2.2.1",
      "build_hash" : "d045fc29d1932bce18b2e65ab8b297fbf6cd41a1",
      "build_timestamp" : "2016-03-09T09:38:54Z",
      "build_snapshot" : false,
      "lucene_version" : "5.4.1"
    },
    "tagline" : "You Know, for Search"
  }
返回展示了配置的cluster_name和name,以及安装的ES的版本等信息。
刚刚安装的head插件,它是一个用浏览器跟ES集群交互的插件,可以查看集群状态、集群的doc内容、执行搜索和普通的Rest请求等。现在也可以使用它打开http://192.168.100.10:9200/_plugin/head/页面来查看ES集群状态:
  上面的功能还是不错的!

  

  

  

  【安装Logstash---数据日志存储和传输
  Logstash的功能如下:
  

  


  

  其实它就是一个收集器而已,收集(input)和传输(output),我们需要为它指定Input和Output(当然Input和Output可以为多个)。可以指定input的日志和output到elasticsearch中
  

  解压、软连接
tar xvf logstash-2.2.2.tar.gz -C /usr/local/
ln -s /usr/local/logstash-2.2.2/ /usr/local/logstash  

  

  测试logstash

  (1) 屏幕输入输出方式测试
  /usr/local/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
  



我们可以看到,我们输入什么内容logstash按照某种格式输出,其中-e参数参数允许Logstash直接通过命令行接受设置。这点尤其快速的帮助我们反复的测试配置是否正确而不用写配置文件。使用CTRL-C命令可以退出之前运行的Logstash。

使用-e参数在命令行中指定配置是很常用的方式
  

  不过如果需要配置更多设置则需要很长的内容。这种情况,我们首先创建一个简单的配置文件,并且指定logstash使用这个配置文件。例如:在logstash安装目录下创建
  

配置logstash
创建配置文件目录:
mkdir -p /usr/local/logstash/etc
vim /usr/local/logstash/etc/hello_search.conf
输入下面:  # cat /usr/local/logstash/etc/hello_search.conf
  
  input {
  
    stdin {
  
      type => "human"
  
    }
  
  }
  
  

  
  output {
  
    stdout {
  
      codec => rubydebug
  
    }
  
  

  
    elasticsearch {
  
          hosts => "192.168.100.10:9200"
  
    }
  
  }
  启动:
/usr/local/logstash/bin/logstash -f /usr/local/logstash/etc/hello_search.conf
  (以频幕上输入的方式输入,以rubydebug格式输出到屏幕,并且传递到elasticsearch)

  

  
  

  

测试logstash日志是否传输到了elasticsearch
通过以下接口:
  curl 'http://192.168.100.10:9200/_search?pretty'
  


  

表明已经接收到了日志
至此,你已经成功利用ElasticsearchLogstash来收集日志数据了。
  

  

  【安装kibana---展示数据
  

注:现在kibanna可以自带了web服务,bin/kibana就可以直接启动了,建议不用nginx进行配合启动了。

使用自带的web
5.1 安装Kibana
下载kibana后,解压到对应的目录就完成kibana的安装
解压、软连接
tar -xzvf kibana-4.4.2-linux-x64.tar.gz -C /usr/local/
ln -s /usr/local/kibana-4.4.2-linux-x64/ /usr/local/kibana  启动kibanna
/usr/local/kibana-4.4.2-linux-x64/bin/kibana  或者
/usr/local/kibana/bin/kibana  

  此时是没有连接上elasticsearch
  

  

  配置kibanna
  vim /usr/local/kibana/config/kibana.yml
  修改
  # elasticsearch.url: "http://localhost:9200"
  elasticsearch.url: "http://192.168.100.10:9200"
  重启
  /usr/local/kibana/bin/kibana
  


  

  web访问:
  监听了5601作为web端口
使用http://kibanaServerIP:5601访问Kibana,登录后,首先,配置一个索引,默认,Kibana的数据被指向Elasticsearch,使用默认的logstash-*的索引名称,并且是基于时间的,点击“Create”即可。

  In order to use Kibana you must configure at least one index pattern. Index patterns are used to identify the Elasticsearch index to run search and analytics against. They are also used to configure fields.

  为了后续使用Kibana,需要配置至少一个Index名字或者Pattern,它用于在分析时确定ES中的Index





  

  点击“Discover”,可以搜索和浏览Elasticsearch中的数据,默认搜索的是最近15分钟的数据。可以自定义选择时间。
  


  

   到此,说明你的ELK平台安装部署完成。
  

  

  

  补充:
  

  
  
[配置logstash作为Indexer]
将logstash配置为索引器,并将logstash的日志数据存储到Elasticsearch,本范例主要是索引本地系统日志
  

  

  cat /usr/local/logstash/etc/logstash-indexer.conf
  input {
    file {
      type =>"syslog"
       path => ["/var/log/messages", "/var/log/secure" ]
    }
    syslog {
      type =>"syslog"
      port =>"5544"
    }
  }
  output {
    stdout { codec=> rubydebug }
    elasticsearch {hosts => "192.168.100.10:9200" }
  }
  

  执行:
  /usr/local/logstash/bin/logstash -f /usr/local/logstash/etc/logstash-indexer.conf
  

  执行:
  echo "谷歌alphago和李世石围棋大战"  >> /var/log/messages
  


  

  刷新kibana

  

  每个收集日志的启动,都是一个独立的进程
  






运维网声明 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-668536-1-1.html 上篇帖子: ELK之ElasticSearch 6.4.x安全认证Search Guard6 下篇帖子: ELK 实验(一) 产品简介
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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