在centos7上安装elk6.x版本
Logstash是一个用于收集,解析和存储日志以供将来使用的开源工具。
Kibana是一个Web界面,可用于搜索和查看Logstash索引的日志。
这两个工具都基于Elasticsearch,用于存储日志。

Logstash可以用于收集所有类型的日志,但我们将本教程的范围限制为syslog收集
于Elasticsearch可以多节点集群存储。本文只有一台设备同时部署三个组件。

环境准备

先安装java

yum -y install java-1.8.0-openjdk*

修改LIMIT参数:
vim /etc/security/limits.conf
增加:

1
2
3
4
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535

添加虚拟内存

vim /etc/sysctl.conf

1
vm.max_map_count=262144

通过sysctl -p 查看虚拟内存

安装ES,及插件

基本环境准备好之后开始安装elasticsearch

首先导入key:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

配置repo:

vim /etc/yum.repos.d/elasticsearch.repo

1
2
3
4
5
6
7
8
[elasticsearch-6.x] 
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

直接yum安装
yum -y install elasticsearch

等待完成之后进行初始配置
创建数据存放目录:
mkdir -p /data/es-data
修正文件夹权限:
chown -R elasticsearch:elasticsearch /data/es-data
chown -R elasticsearch:elasticsearch /var/log/elasticsearch/

修改ES配置文件
vim /etc/elasticsearch/elasticsearch.yml

1
2
3
4
5
6
7
8
9
10
11
12
# grep ^[a-zA-Z].*  /etc/elasticsearch/elasticsearch.yml
# 集群名
cluster.name: SPE-Net-ELK
# 节点名
node.name: node-1
path.data: /data/es-data
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
# cors配置是为了后面的elasticsearch-head插件
http.cors.enabled: true
http.cors.allow-origin: "*"

启动服务:

1
2
3
4
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service

sudo systemctl start elasticsearch.service

启动之后访问http://localhost:9200/ 显示以下类似的json确认ES正常

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"name" : "node-1",
"cluster_name" : "SPE-Net-ELK",
"cluster_uuid" : "Ks1EF807Qn2ZZhvFLPdQTg",
"version" : {
"number" : "6.3.2",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "053779d",
"build_date" : "2018-07-20T05:20:23.451332Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}

安装es head插件(可选)

安装git和node.js

1
2
3
4
5
6
7
8
yum -y install git
wget https://nodejs.org/dist/v0.10.30/node-v0.10.30-linux-x64.tar.gz
tar --strip-components 1 -zxvf node-v* -C /usr/local
node --version

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

Head插件phantomjs解压问题:
解决办法,系统提供的lib解压有问题,安装bzip2即可: yum -y install bzip2

Head插件phantomjs权限问题:
解决办法: npm install -g

运行,
npm run start
open http://localhost:9100/
可以查看到es集群的节点信息

安装logstash

直接yum -y install logstash 的话由于是从海外aws下载速度较慢,建议自行下载rpm包(https://www.elastic.co/downloads/logstash

1
2
3
4
5
6
# 下载
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.3.2.rpm
# 安装
rpm -ivh logstash-6.3.2.rpm
# 启动输入输出测试
/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {codec =>rubydebug} }'

后面真正需要运行的时候,需要配合配置文件启动,这些下次再写

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/syslog-asa.conf &

安装kibana

同样,提前下载包
官网(https://www.elastic.co/downloads/kibana

1
2
3
4
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.2-linux-x86_64.tar.gz`
#解压
tar -zxvf kibana-6.3.2-linux-x86_64.tar.gz `
mv kibana-6.3.2-linux-x86_64 /usr/local`

编辑配置文件

1
2
3
4
5
6
7
# vim /usr/local/kibana-6.3.2-linux-x86_64/config/kibana.yml 

# grep ^[a-zA-Z].* /usr/local/kibana-6.3.2-linux-x86_64/config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://x.x.x.x:9200"
logging.dest: /var/log/kibana.log

启动
/usr/local/kibana-6.3.2-linux-x86_64/bin/kibana &

打开http://localhost:5601 即可看到kibana安装成功。

关于logstash的配置文件,详见下篇案例解析:elk收集分析ASA日志