ELK日志分析系统概述
ELK是Elasticsearch、Logstash、Kibana的简称
Elasticsearch是实时全文搜索和分析引擎
Logstash是一个用来搜集、分析、过滤日志的工具
Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据
日志服务器
提高安全性
集中存放日志
缺陷:对日志的分析困难
ELK日志分析系统
收集数据:LogstashAgent
建立索引:ElasticSearchCluster
数据可视化:KilbanaServer
日志处理步骤
1.将日志进行集中化管理
2.将日志格式化( Logstash )并输出到Elasticsearch
3.对格式化后的数据进行索引和存储( Elasticsearch )
4.前端数据的展示( Kibana )
Elasticsearch介绍
Elasticsearch的概述
提供了一个分布式多用户能力的全文搜索引擎
Elasticsearch的概念
接近实时
集群
节点
索引:索引(库)-->类型(表)-->文档(记录)
分片和副本
Logstash介绍
一款强大的数据处理工具,可以实现数据传输、格式处理、格式化输出
数据输入、数据加工(如过滤,改写等)以及数据输出
LogStash主要组件
Shipper
Indexer
Broker
Search and Storage
Web Interface
Kibana介绍
一个针对Elasticsearch的开源分析及可视化平台
搜索、查看存储在Elasticsearch索引中的数据
通过各种图表进行高级数据分析及展示
Kibana主要功能
Elasticsearch无缝之集成
整合数据,复杂数据分析
让更多团队成员受益
接口灵活,分享更容易
配置简单,可视化多数据源
简单数据导出
部署ELK日志分析系统
需求描述
配置ELK日志分析群集
使用Logstash收集日志
使用Kibana查看分析日志
安装环境
全部关闭防火墙
Node1、Node2节点内存分配4G,Apache节点分配1G内存
通过VMware虛拟网络Vmnet8连接
主机名称 | IP地址 | 主要软件 |
---|---|---|
Node1服务器 | 192.168.142.152 | Elasticsearch、Kibana |
Node2服务器 | 192.168.142.153 | Elasticsearch |
Apache服务器 | 192.168.142.155 | Logstash |
第一步:配置ES节点1服务器
1.关闭防火墙及安全功能
systemctl stop firewalld.service
setenforce 0
2.修改主机名配置文件
vim /etc/hosts
192.168.142.152 node1
192.168.142.153 node2
3.远程挂载资源包
mount.cifs //192.168.142.1/elk /mnt
4.安装软件包
cd /mnt
rpm -ivh elasticsearch-5.5.0.rpm
5.加载系统服务
systemctl daemon-reload
6.开机自启动服务
systemctl enable elasticsearch.service
7.备份配置文件
cd /etc/elasticsearch/
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
8.修改elasticsearch主配置文件
vim /etc/elasticsearch/elasticsearch.yml
#第17行,取消注释并修改集群名称
cluster.name: my-elk-cluster
#第23行,取消注释修改节点名字
node.name: node1
#第33行,取消注释修改数据存放路径
path.data: /data/elk_data
#第37行,取消注释修改日志存放路径
path.logs: /var/log/elasticsearch/
#第43行,取消注释并修改,取消在不启动时锁定内存
bootstrap.memory_lock: false
#第55行,取消注释并修改地址,放入所有的地址(0.0.0.0代表所有地址)
network.host: 0.0.0.0
#第59行,取消注释,放开服务端口
http.port: 9200
#第68行,取消注释修改节点名称
discovery.zen.ping.unicast.hosts: ["node1", "node2"]
9.创建数据库存放路径
mkdir -p /data/elk_data
10.授权数据库存放路径
chown elasticsearch:elasticsearch /data/elk_data/
11.开启elasticsearch服务
systemctl start elasticsearch.service
12.查看端口服务状态
netstat -ntap | grep 9200
tcp6 0 0 :::9200 :::* LISTEN 96970/java
13.安装编译环境
yum install gcc gcc-c++ make -y
14.解压node节点软件包
cd /mnt
tar zxvf node-v8.2.1.tar.gz -C /opt
15.配置node
cd /opt/node-v8.2.1/
./configure
16.编译安装
make && make install
第二步:安装phantomjs前端框架
1.解压phantomjs软件包
cd /mnt
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src
2.切换目录查看phantomjs命令
cd /usr/local/src/phantomjs-2.1.1-linux-x86_64//bin
ls
phantomjs
3.复制目录到系统目录
cp phantomjs /usr/local/bin/
第三步:安装elasticsearch-head数据可视化工具
1.解压elasticsearch-head软件包
cd /mnt
tar zxvf elasticsearch-head.tar.gz -C /usr/local/src
2.安装elasticsearch-head数据可视化工具
cd /usr/local/src/elasticsearch-head/
npm install
3.修改elasticsearch主配置文件
vim /etc/elasticsearch/elasticsearch.yml
#末行添加以下内容
http.cors.enabled: true
http.cors.allow-origin: "*"
4.开启elasticsearch服务
systemctl restart elasticsearch.service
5.启动后台运行
npm run start &
6.查看服务端口状态
netstat -ntap | grep 9100
tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN 50105/grunt
[root@node1 elasticsearch-head]# netstat -ntap | grep 9200
tcp6 0 0 :::9200 :::* LISTEN 96970/java
第四步:ES节点2服务器 与节点1的配置一样,重复执行上述操作即可!!!
第五步:使用浏览器输入192.168.142.152:9100网址,并连接另一节点的地址,检查群集健康状态
第六步:创建索引
第七步:配置Apache服务器,安装 logstash 搜集日志搜集
#安装Apache服务
yum install -y httpd
#远程挂载资源包
mount.cifs //192.168.142.1/elk /mnt
#切换到挂载点
cd /mnt
#安装logstash
rpm -ivh logstash-5.5.1.rpm
#开机自启动logstash服务
systemctl enable logstash.service
#启动logstash服务
systemctl start logstash.service
#建立命令软链接到系统
ln -s /usr/share/logstash/bin/logstash /usr/local/bin
#切换日志目录
cd /var/log
#授予他人读取权限
chmod o+r messages
#查看权限
ll
#切入logstash配置目录
cd /etc/logstash/conf.d/
#编辑文件
vim system.conf
#写入以下内容,用以收集系统日志
input {
file{
path => "/var/log/messages"
type => "system"
start_position => "beginning"
}
}
output {
elasticsearch {
#地址指向node1节点
hosts => ["192.168.142.152:9200"]
index => "system-%{+YYYY.MM.dd}"
}
}
#重启服务
systemctl restart logstash.service
第八步:查看收集到的日志信息
第九步:回到node1节点安装kibana
#切入挂载点
cd /mnt
#安装kibana
rpm -ivh kibana-5.5.1-x86_64.rpm
#切入kibana目录
cd /etc/kibana/
#备份kibana.yml文件
cp kibana.yml kibana.yml.bak
#修改kibana.yml文件
vim kibana.yml
#取消第2行的注释,放开5601端口
server.port: 5601
#取消第7行的注释并修改地址,放入所有的地址(0.0.0.0代表所有地址)
server.host: "0.0.0.0"
#取消第21行的注释并指向node1节点的url
elasticsearch.url: "http://192.168.142.152:9200"
#取消第30行注释,放开kibana首页
kibana.index: ".kibana"
#启动kibana服务
systemctl start kibana.service
第十步:测试kibana展现日志数据,使用浏览器访问192.168.142.152:5601
第十一步:对接Apache主机的所有Apache日志文件(在Apache服务器上操作)
#编辑Apache日志配置文件
vim apache_log.conf
input {
file{
path => "/etc/httpd/logs/access_log"
type => "access"
start_position => "beginning"
}
file{
path => "/etc/httpd/logs/error_log"
type => "error"
start_position => "beginning"
}
}
output {
if [type] == "access" {
elasticsearch {
hosts => ["192.168.142.152:9200"]
index => "apache_access-%{+YYYY.MM.dd}"
}
}
if [type] == "error" {
elasticsearch {
hosts => ["192.168.142.152:9200"]
index => "apache_error-%{+YYYY.MM.dd}"
}
}
}
#重启服务,稍等片刻!
logstash -f apache_log.conf