文档章节

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

IamOkay
 IamOkay
发布于 2017/05/22 17:40
字数 1647
阅读 171
收藏 1

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

一.安装Elasticsearch

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

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

./elasticsearch

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

①.jvm内存不足

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

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

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

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

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

#rpm -qa | grep jdk  
java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64
java-1.7.0-openjdk-1.7.0.0-1.32.1.11.1.el6.x86_64 

#yum remove java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64 
#yum remove java-1.7.0-openjdk-1.7.0.0-1.32.1.11.1.el6.x86_64

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

#yum remove java-1.6.0-openjdk*
#yum remove java-1.7.0-openjdk*

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

#yum search java-1.8.0-openjdk
============== N/S Matched: java-1.8.0-openjdk ==============
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-debug.x86_64 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.8.0-openjdk-demo-debug.x86_64 : OpenJDK Demos with full debug on
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.8.0-openjdk-devel-debug.x86_64 : OpenJDK Development Environment with full debug on
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-headless-debug.x86_64 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.8.0-openjdk-javadoc-debug.noarch : OpenJDK API Documentation for packages with debug on
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk-src-debug.x86_64 : OpenJDK Source Bundle for packages with debug on

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

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

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

③.root用户不允许运行

修改运行文件

#groupadd elkstack                       #创建组
#useradd elkstack -g elkstack -d /usr/elk -s /bin/bash  #创建用户
#passwd  elkstack                        #给用户创建密码
#chown -R elkstack:elkstack /usr/elk     #目录的拥有者

#########################################################
#cd /etc/skel/                           #进入用户登录状态管理目录,如果不执行此操作,则登录界面在sh中
#ls -a  
. ..  .bash_logout  .bash_profile .bashrc  .mozilla  
#复制文件到新用户的创建目录
#cp .bash_logout  /home/mysql/  
#cp .bash_profile  /home/mysql/  
#cp .bashrc  /home/mysql
#cd /

#########################################################
#su -l elkstack                          #切换用户 
#./elasticsearch/bin/elasticsearch       #启动elasticsearch 

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

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
max number of threads [1024] for user [elkstack] is too low, increase to at least [2048]
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
Q:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

#vi /etc/security/limits.conf  
添加如下内容:

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
Q:max number of threads [1024] for user [elkstack] is too low, increase to at least [2048]

#vi /etc/security/limits.d/90-nproc.conf 

修改如下内容:
* soft nproc 1024

#修改为
* soft nproc 2048
Q:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

#vi /etc/sysctl.conf 

添加下面配置:
vm.max_map_count=655360

system call filters failed to install; check the logs and fix your configuration or 
disable system call filters at your own risk

#vim config/elasticsearch.yml

添加
bootstrap.system_call_filter: false 

配置完成之后,执行命令

sysctl -p

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

 

使用curl 检查是否成功启动

#curl -i http://127.0.0.1:9200

HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-length: 327

{
  "name" : "rGlFyHB",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "7sEFicrvQW-RPbJTjekbHg",
  "version" : {
    "number" : "5.4.0",
    "build_hash" : "780f8c4",
    "build_date" : "2017-04-28T17:43:27.229Z",
    "build_snapshot" : false,
    "lucene_version" : "6.5.0"
  },
  "tagline" : "You Know, for Search"
}

二.安装kibana

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

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

#curl -i http://localhost:5601

HTTP/1.1 200 OK
kbn-name: kibana
kbn-version: 5.4.0
cache-control: no-cache
content-type: text/html; charset=utf-8
content-length: 217
accept-ranges: bytes
Date: Mon, 22 May 2017 06:45:26 GMT
Connection: keep-alive

<script>var hashRoute = '/app/kibana';
var defaultRoute = '/app/kibana';

var hash = window.location.hash;
if (hash.length) {
  window.location = hashRoute + hash;
} else {
  window.location = defaultRoute;
}

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

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

三.安装logstash

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

测试是否安装成功

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

#./logstash/bin/logstash -e 'input{stdin{}} output{stdout{}}'

#启动之后,执行如下操作,测试是否有回显,如果有回显,则表示正确
#Hello World

 

四.配置&插件安装

①.远程访问

kibana.yml:

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

elasticsearch.yml:

network.host: "192.168.1.210"
http.port: 9200

#加入新集群时使用的ip地址,默认是回环地址
#discovery.zen.ping.unicast.hosts: ["192.168.1.210"]  
#集群中最少的master数量
#discovery.zen.minimum_master_nodes: 3  

#bootstrap.system_call_filter: false 

logstash.yml

 http.host: "172.20.11.62"

②.安装X-Pack

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

#cd /usr/elk/elasticsearch/bin
#./elasticsearch-plugin install x-pack

#cd /usr/elk/kibana/bin
#./kibana-plugin install x-pack

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

username : elastic
passowrd : changeme

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

input {
  file {
    type =>"syslog"
     path => ["/var/log/messages", "/var/log/secure" ]
  }
  syslog {
    type =>"syslog"
    port =>"5544"
  }
}
output {
  stdout { codec=> rubydebug }
  elasticsearch {
	hosts => ["192.168.1.210:9200"]
	 user => elastic
         password => changeme
         index => "syslogstash-%{+YYYY.MM.dd}"
         template_overwrite => true	
	}
}

③.Kibana创建索引

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

index => "syslogstash-%{+YYYY.MM.dd}"
input {
  file {
    type =>"syslog"
     path => ["/var/log/messages", "/var/log/secure" ]
  }
  syslog {
    type =>"syslog"
    port =>"5544"
  }
}
output {
  stdout { codec=> rubydebug }
  elasticsearch {
	hosts => ["192.168.1.210:9200"]
	 user => elastic
         password => changeme
         index => "logstash-%{+YYYY.MM.dd}"
         template_overwrite => true	
	}
}

检测配置文件是否正确

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

启动logstash

#logstash/bin/logstash -f test_logstash.conf 

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

#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$ 问题

 

 

© 著作权归作者所有

IamOkay

IamOkay

粉丝 203
博文 483
码字总数 403074
作品 0
海淀
程序员
私信 提问
Graylog分析Nginx日志并通过GeoIP2获取访问者IP的地理位置信息

简介: Graylog相对于ELK是较为轻量级的日志管理平台 Graylog官网:https://www.graylog.org/ 系统环境: 本文不做环境搭建方面的介绍,直接使用docker搭建Graylog环境。 一、Graylog搭建 二、...

Jy_BigBoss
2018/07/02
0
0
日志分析ELK平台搭建

当服务器数量以及应用达到一定的数量后,操作系统日志以及应用软件日志数量庞大,遇到问题时日志是第一手资料。平时用的sed、grep、awk已经难以满足我们的需求。随着互联网技术的发展,好多大...

tianya1993
2017/11/03
0
0
elk日志收集平台搭建记录

ELK是指Elasticsearch + Logstash + Kibaba三个组件的组合。 Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,...

w5771517
2017/07/05
0
0
ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 以下内容来自: http://baidu.blog.51cto.com/71938/1676798 日志主要包括系统日志、应用程序日志和安全日志。系统...

转身撞墙角
2017/04/12
0
0
总结之:CentOS 6.5 rsyslog+MySQL+loganalyzer日志集中分析管理

前言 rsyslog系统日志,在CentOS5上叫syslog,而在CentOS6上叫rsyslog,叫增强版的syslog,CentOS5上的配置文件在/etc/syslog.conf下,而CentOS6在/etc/rsyslog.conf下。 syslog默认是把我们...

wei0164
2014/04/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka 原理和实战

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平...

vivo互联网技术
22分钟前
9
0
java数据类型

基本类型: 整型:Byte,short,int,long 浮点型:float,double 字符型:char 布尔型:boolean 引用类型: 类类型: 接口类型: 数组类型: Byte 1字节 八位 -128 -------- 127 short 2字节...

audience_1
今天
7
0
太全了|万字详解Docker架构原理、功能及使用

一、简介 1、了解Docker的前生LXC LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpa...

Java技术剑
今天
17
0
Wifiphisher —— 非常非常非常流氓的 WIFI 网络钓鱼框架

编者注:这是一个非常流氓的 WIFI 网络钓鱼工具,甚至可能是非法的工具(取决于你的使用场景)。在没有事先获得许可的情况下使用 Wifiphisher 攻击基础网络设施将被视为非法活动。使用时请遵...

红薯
今天
66
1
MongoDB 4 on CentOS 7安装指南

本教程为CentOS x86_64 7.x操作系统下,MongoDB Community x86_64 4.2(GA)安装指南。 安装方式一:yum repo在线安装 [此方式较为简单,官方推荐] Step1:新建MongDB社区版Yum镜像源。 # vim ...

王焱君
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部