CentOS ELK5.0日志分析平台搭建

前端之家收集整理的这篇文章主要介绍了CentOS ELK5.0日志分析平台搭建前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

之前我们在Windows平台上安装过Elasticsearch+X-Pack+Kibana工具(具体参考:Windows 安装Elasticsearch&Kibana&X-Pack),这里我们在Linux系统中做一个日志分析平台。

一.安装Elasticsearch

  1. #wget -c https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.0.tar.gz
  2. #tar -zxvf elasticsearch-5.4.0.tar.gz
  3. #mkdir /usr/elk
  4. #mv elasticsearch-5.4.0 /usr/elk/elasticsearch
  5. #cd /usr/elk/elasticsearch/bin

然后我们可以使用如下命令启动

  1. ./elasticsearch

启动过程中可能遇到如下问题

①.jvm内存不足

解决方法修改如下配置文件,调整-Xms2g -Xmx2g为-Xms1g -Xmx1g

  1. vim /usr/elk/elasticsearch/config/jvm.options

②.要求openjdk版本至少1.8,oracle jdk 1.7

这个时候需要升级openjdk或者使用oracle jdk替换

#查询本地安装的数据库,并且将其删除

  1. #rpm -qa | grep jdk
  2. java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64
  3. java-1.7.0-openjdk-1.7.0.0-1.32.1.11.1.el6.x86_64
  4.  
  5. #yum remove java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64
  6. #yum remove java-1.7.0-openjdk-1.7.0.0-1.32.1.11.1.el6.x86_64

#当然,如果你觉得上述操作麻烦,建议直接使用如下方式

  1. #yum remove java-1.6.0-openjdk*
  2. #yum remove java-1.7.0-openjdk*

#然后通过如下方式检索java-1.8.0-openjdk

  1. #yum search java-1.8.0-openjdk
  1. ============== N/S Matched: java-1.8.0-openjdk ==============
  2. java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
  3. java-1.8.0-openjdk-debug.x86_64 : OpenJDK Runtime Environment with full debug on
  4. java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos
  5. java-1.8.0-openjdk-demo-debug.x86_64 : OpenJDK Demos with full debug on
  6. java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
  7. java-1.8.0-openjdk-devel-debug.x86_64 : OpenJDK Development Environment with full debug on
  8. java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment
  9. java-1.8.0-openjdk-headless-debug.x86_64 : OpenJDK Runtime Environment with full debug on
  10. java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
  11. java-1.8.0-openjdk-javadoc-debug.noarch : OpenJDK API Documentation for packages with debug on
  12. java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle
  13. java-1.8.0-openjdk-src-debug.x86_64 : OpenJDK Source Bundle for packages with debug on

一般都能检索出来,如果检索不出来,建议去下载安装oracle jdk

#如果检索到java-1.8.0-openjdk,直接安装即可

  1. #yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel java-1.8.0-openjdk-headless

③.root用户不允许运行

修改运行文件

  1. #groupadd elkstack #创建组
  2. #useradd elkstack -g elkstack -d /usr/elk -s /bin/bash #创建用户
  3. #passwd elkstack #给用户创建密码
  4. #chown -R elkstack:elkstack /usr/elk #目录的拥有者
  5.  
  6. #########################################################
  7. #cd /etc/skel/ #进入用户登录状态管理目录,如果不执行此操作,则登录界面在sh中
  8. #ls -a
  9. . .. .bash_logout .bash_profile .bashrc .mozilla
  10. #复制文件新用户的创建目录
  11. #cp .bash_logout /home/MysqL/
  12. #cp .bash_profile /home/MysqL/
  13. #cp .bashrc /home/MysqL
  14. #cd /
  15.  
  16. #########################################################
  17. #su -l elkstack #切换用户
  18. #./elasticsearch/bin/elasticsearch #启动elasticsearch

④.当前用户创建文件的大小,可使用的内存有限制

  1. max file descriptors [4096] for elasticsearch process is too low,increase to at least [65536]
  2. max number of threads [1024] for user [elkstack] is too low,increase to at least [2048]
  3. max virtual memory areas vm.max_map_count [65530] is too low,increase to at least [262144]
  4. system call filters Failed to install; check the logs and fix your configuration or disable system call filters at your own risk
  1. Q:max file descriptors [4096] for elasticsearch process is too low,increase to at least [65536]
  2.  
  3. #vi /etc/security/limits.conf
  4. 添加如下内容:
  5.  
  6. * soft nofile 65536
  7. * hard nofile 131072
  8. * soft nproc 2048
  9. * hard nproc 4096
  1. Q:max number of threads [1024] for user [elkstack] is too low,increase to at least [2048]
  2.  
  3. #vi /etc/security/limits.d/90-nproc.conf
  4.  
  5. 修改如下内容
  6. * soft nproc 1024
  7.  
  8. #修改
  9. * soft nproc 2048
  1. Q:max virtual memory areas vm.max_map_count [65530] is too low,increase to at least [262144]
  2.  
  3. #vi /etc/sysctl.conf
  4.  
  5. 添加下面配置:
  6. vm.max_map_count=655360
  1. system call filters Failed to install; check the logs and fix your configuration or
  2. disable system call filters at your own risk
  3.  
  4. #vim config/elasticsearch.yml
  5.  
  6. 添加
  7. bootstrap.system_call_filter: false

配置完成之后,执行命令

  1. sysctl -p

以上是安装过程中遇到的比较多的问题

使用curl 检查是否成功启动

  1. #curl -i http://127.0.0.1:9200
  2.  
  3. HTTP/1.1 200 OK
  4. content-type: application/json; charset=UTF-8
  5. content-length: 327
  6.  
  7. {
  8. "name" : "rGlFyHB","cluster_name" : "elasticsearch","cluster_uuid" : "7sEFicrvQW-RPbJTjekbHg","version" : {
  9. "number" : "5.4.0","build_hash" : "780f8c4","build_date" : "2017-04-28T17:43:27.229Z","build_snapshot" : false,"lucene_version" : "6.5.0"
  10. },"tagline" : "You Know,for Search"
  11. }

二.安装kibana

  1. #wget -c https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-linux-x86_64.tar.gz
  2. #tar -zxvf kibana-5.4.0-linux-x86_64.tar.gz
  3. #mv kibana-5.4.0-linux-x86_64 /usr/elk/kibana
  4. #cd /usr/elk/
  5. #chown -R elkstack:elkstack kibana
  6. #./kibana/bin/kibana

使用curl检测是否成功启动(注意:必须先启动elasticsearch)

  1. #curl -i http://localhost:5601
  2.  
  3. HTTP/1.1 200 OK
  4. kbn-name: kibana
  5. kbn-version: 5.4.0
  6. cache-control: no-cache
  7. content-type: text/html; charset=utf-8
  8. content-length: 217
  9. accept-ranges: bytes
  10. Date: Mon,22 May 2017 06:45:26 GMT
  11. Connection: keep-alive
  12.  
  13. <script>var hashRoute = '/app/kibana';
  14. var defaultRoute = '/app/kibana';
  15.  
  16. var hash = window.location.hash;
  17. if (hash.length) {
  18. window.location = hashRoute + hash;
  19. } else {
  20. window.location = defaultRoute;
  21. }

此外,kibana中需要配置elasticsearch的信息,如果elasticsearch的访问信息更新了,同样也需要更新kibana中的配置信息

  1. #vim kibana/config/kibana.yml
  1. #elasticsearch默认配置信息如下
  2. elasticsearch.url: "http://localhost:9200"

三.安装logstash

  1. #wget -c https://artifacts.elastic.co/downloads/logstash/logstash-5.4.0.tar.gz
  2. #tar -zxvf logstash-5.4.0.tar.gz
  3. #mv logstash-5.4.0 /usr/elk/logstash
  4. #cd /usr/elk/
  5. #chown -R elkstack:elkstack logstash
  6. #./logstash/bin/logstash

测试是否安装成功

注意:最好以root用户运行,或者在sudoers中添加用户的sudo命令权限,否则可能产生好多问题

  1. #./logstash/bin/logstash -e 'input{stdin{}} output{stdout{}}'
  2.  
  3. #启动之后,执行如下操作,测试是否有回显,如果有回显,则表示正确
  4. #Hello World

四.配置&插件安装

①.远程访问

kibana.yml:

  1. server.port: 5601
  2. server.host: "192.168.1.210"
  3. elasticsearch.url: "http://192.168.1.210:9200"

elasticsearch.yml:

  1. network.host: "192.168.1.210"
  2. http.port: 9200
  3.  
  4. #加入新集群时使用的ip地址,默认是回环地址
  5. #discovery.zen.ping.unicast.hosts: ["192.168.1.210"]
  6. #集群中最少的master数量
  7. #discovery.zen.minimum_master_nodes: 3
  8.  
  9. #bootstrap.system_call_filter: false

logstash.yml

  1. http.host: "172.20.11.62"

②.安装X-Pack

注意:安装前必须停止elasticsearch与kibana服务

  1. #cd /usr/elk/elasticsearch/bin
  2. #./elasticsearch-plugin install x-pack
  3.  
  4. #cd /usr/elk/kibana/bin
  5. #./kibana-plugin install x-pack

安装X-Pack完成之后,穷elasticsearchkibana ,会进行用户登录校验,默认用户名和密码如下

  1. username : elastic
  2. passowrd : changeme

但是,对于logstash来说,需要在配置文件中配置用户名才行,否则无法链接elasticsearch

  1. input {
  2. file {
  3. type =>"syslog"
  4. path => ["/var/log/messages","/var/log/secure" ]
  5. }
  6. syslog {
  7. type =>"syslog"
  8. port =>"5544"
  9. }
  10. }
  11. output {
  12. stdout { codec=> rubydebug }
  13. elasticsearch {
  14. hosts => ["192.168.1.210:9200"]
  15. user => elastic
  16. password => changeme
  17. index => "syslogstash-%{+YYYY.MM.dd}"
  18. template_overwrite => true
  19. }
  20. }

③.Kibana创建索引

Kibana创建索引的前提是logstash的pipline配置文件中存索引,并且logstash已经向elasticsearch注册了索引

  1. index => "syslogstash-%{+YYYY.MM.dd}"
  1. input {
  2. file {
  3. type =>"syslog"
  4. path => ["/var/log/messages","/var/log/secure" ]
  5. }
  6. syslog {
  7. type =>"syslog"
  8. port =>"5544"
  9. }
  10. }
  11. output {
  12. stdout { codec=> rubydebug }
  13. elasticsearch {
  14. hosts => ["192.168.1.210:9200"]
  15. user => elastic
  16. password => changeme
  17. index => "logstash-%{+YYYY.MM.dd}"
  18. template_overwrite => true
  19. }
  20. }

检测配置文件是否正确

  1. #logstash/bin/logstash -f test_logstash.conf -t

启动logstash

  1. #logstash/bin/logstash -f test_logstash.conf

触发Input Event,让logstash主动注册index到elasticsearch

  1. #logger -p info "hello,remote rsyslog"

然后登录Kibana,点击Management->Index Patterns打开索引注册页面,点击左侧菜单栏中的【+】,新增索引。

如果你看不到Create按钮,那么很可能意味着索引没有注册成功,注册可能需要一个Input Event输入触发才行。

如果索引注册成功,那么点击Kibana菜单Discover,选择syslogstash-*索引,便能看到相应的事件。

参考:

ELK集群部署及收集nginx日志

Elasticsearch5.0 版本安装错误

记录Linux下安装elasticSearch时遇到的一些错误

centos7虚拟机安装elasticsearch5.0.x-安装篇

ElasticSearch 5.0.0 安装部署常见错误或问题

已解决:登录Linux的 -bash-4.2$ 问题

猜你在找的CentOS相关文章