因为工作需求,最近在搭建日志分析系统,这里主要搭建的是系统日志分析系统,即rsyslog+elk。

  因为目前仍为测试环境,这里说一下搭建的基础架构,后期上生产线再来更新最后的架构图,大佬们如果有什么见解欢迎指导。

rsyslog 写入 mysql 数据库参数 rsyslog elk_大数据

这里主要总结一下搭建过程。

一.rsyslog

  rsyslog是如今大多数linux自带的日志收集,这里主要说一下rsyslog的简单配置。

  client端配置它只需要更改准备发送的日志以及在末尾加上Server端使用的协议和IP即可,例如:



#加入以下即可
*.* @10.144.100.32:514



二.logstash配置

  logstash只需要将rsyslog收集起来并转发至elasticsearch即可,配置如下:



vi /etc/logstash.conf



input{
    syslog{
        type => "system-syslog"
        port => 514
    host => "10.144.100.32"
    }
}

filter {
    date {
        match => [ "timestamp", "yyyy-MM-dd-HH:mm:ss" ]
        locale => "cn"
  }

}

output{
 elasticsearch {
        hosts => ["10.24.180.19:9200"]
    user => "elastic"
    password=> "123456"
        index => "blockchain-%{type}-%{+YYYY.MM.dd}"
    codec => "json"
    }
stdout { codec => json }
}



cd logstash-5.5.1/bin/
./logstash -f /etc/logstash.conf



三.Elasticsearch搭建

   elasticsearch搭建起来比较简单,直接在https://www.elastic.co/downloads/elasticsearch下载elasticsearch压缩包,解压下来。  



cd elasticsearch-5.5.1/bin/
./elasticsearch &



  本地浏览器访问http://localhost:9200

  注意:安装elasticsearch尽量先改一下内核参数和资源参数,我在阿里云上搭建的,默认的内核参数和资源参数可能会导致启动失败。



vim /etc/sysctl.conf
#修改或添加以下参数
fs.file-max=65536
vm.max_map_count = 262144

vim /etc/security/limits.conf
#修改或添加以下参数
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096



  elasticsearch有几个比较推荐的插件,这里介绍一下head插件安装,并通过head插件介绍一下elasticsrach的一些基本概念。

  首先介绍一下head的安装,ES5.0之前head插件是直接可以通过elasticsearch-plugin install安装,5.0之后不可以直接插件安装,但依然是可以安装使用的。

  这里简单介绍下安装过程。

  首先,设置下ES同源访问策略:



vim elasticsearch-5.5.0/conf/elasticsearch.yml
#在末尾添加如下内容:
http.cors.enabled: true
http.cors.allow-origin: "*"



  然后,通过npm进行安装:



git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start



  当然,elasticsearch如果直接暴露在外网上是非常危险的,这里安装一款x-pack插件,可将此端口设置账户密码。



cd elasticsearch-5.5.0/bin/
./ealsticseearch-plugin intsall x-pack



  安装完x-pack后,直接访问9200端口会提示输入账号和密码,这增加了elasticsearch的一些安全性,默认的账号密码是elastic:changeme,更改账号密码课通过调用restful

API



curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/elastic/_password' -d '{
  "password" : "elastic"
}'



四.Kibana搭建

  kibana是配合Elasticsearch一起使用的可视化分析平台,说白了就是更形象的表示Elasticsearch的结果。



vim kibana/config/kibana.yml



server.port: 5601
server.host: 0.0.0.0
elasticsearch.url: "http://localhost:9200"
elasticsearch.username: "elastic"
elasticsearch.password: "changeme"



  本地浏览器输入localhost:5601即可