因为工作需求,最近在搭建日志分析系统,这里主要搭建的是系统日志分析系统,即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即可