elk日志收集系统

目录

前言

一、概述

二、案例

(一)、环境配置

安装node1与node2节点的elasticsearch

node1的elasticsearch-head插件

(二)、node1服务器安装logstash

测试1: 标准输入与输出

测试2:使用rubydebug解码

测试3:输出到elasticsearch

(三)、node1节点安装kibana

(四)、企业案例

总结



前言

日志对于分析系统、应用的状态十分重要,但一般日志的量会比较大,并且比较分散。

如果管理的服务器或者程序比较少的情况我们还可以逐一登录到各个服务器去查看、分析。但如果服务器或者程序的数量比较多了之后这种方法就显得力不从心。基于此,一些集中式的日志系统也就应用而生。目前比较有名成熟的有,Splunk(商业)、FaceBook 的Scribe、Apache的Chukwa Cloudera的Fluentd、还有ELK等等。


一、概述

ELK由三个组件构成

elasticsearch 日志分析
logstash 日志收集
kibana

日志可视化

elasticsearch 是一种开源的日志收集、分析、存储程序
具有以下特点 分布式
零配置
自动发现
索引自动分片
索引副本机制
Restful风格接口
 多数据源
自动搜索负载
logstash 搜集、分析、过滤日志的工具
工作过程 Inputs → Filters → Outputs
输入-->过滤-->输出

一般工作方式为c/s架构,Client端安装在需要收集日志的服务器上,Server端负责将收到的各节点日志进行过滤、修改等操作,再一并发往Elasticsearch上去
    

kibana,日志可视化。

为Logstash和ElasticSearch在收集、存储的日志基础上进行分析时友好的Web界面,可以帮助汇总、分析和搜索重要数据日志。


   

二、案例

192.168.238.145(httpd)

192.168.238.146(node1)

192.168.238.147(node2)

注意:node服务器建议给4G内存4G处理器,否则elasticsearch可能服务端口启动异常,因为elasticsearch服务器会占用大量的内存,内存会不足。

安装好elasticsearch服务器后记得daemon-reload加载system的配置文件,否则可能导致服务访问异常,集群id不同,后续将无法操作。

node1node2节点要有Java环境,Java -version查看版本(1.8.0即可),没有要安装Java环境

Yum install -y java-1.8.0-openjdk

(一)、环境配置

node1node2修改主机名,本地host文件。

hostnamectl set-hostname node1

vim /etc/hosts

192.168.238.146 node1
192.168.238.147 node2
bash刷新

互相ping通测试通信

node1安装elasticsearch-head插件

tar xf node-v8.2.1.tar.gz

cd node-v8.2.1

./configure && make && make install

等待安装完毕即可(过程较长)

安装node1node2节点的elasticsearch

rpm -ivh elasticsearch-5.5.0.rpm

vim /etc/elasticsearch/elasticsearch.yml

elk日志收集系统_第1张图片elk日志收集系统_第2张图片elk日志收集系统_第3张图片

network.host:也可以是本机IP

node2同此操作只需将node.name修改成node2

分别启动服务        

systemctl start elasticsearch

查看端口是否启动

netstat -anput | grep :9200

查看节点信息

192.168.238.146:9200

elk日志收集系统_第4张图片

192.168.238.147:9200

elk日志收集系统_第5张图片

可以查看集群状态       

192.168.238.146:9200/_cluster/health

elk日志收集系统_第6张图片

Green 健康   yellow  警告    red  集群不可用,严重错误

node1elasticsearch-head插件

tar xf phantomjs-2.1.1-linux-x86_64.tar.bz2

cd phantomjs-2.1.1-linux-x86_64/bin

cp phantomjs  /usr/local/bin

修改elasticsearch服务的配置文件在最后添加

vim /etc/elasticsearch/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"

安装elasticsearch-head

tar xf elasticsearch-head.tar.gz 
cd elasticsearch-head
npm install
npm run start &

要在当前目录下启动后台

elk日志收集系统_第7张图片

elk日志收集系统_第8张图片

访问192.168.238.146:9100进行连接

elk日志收集系统_第9张图片

测试,在node1的终端中输入

curl  -XPUT  '192.168.238.146:9200/index-demo/test/1?pretty&pretty' -H  'Content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

elk日志收集系统_第10张图片

刷新浏览器可以看到对应信息即可

elk日志收集系统_第11张图片

(二)、node1服务器安装logstash

rpm -ivh logstash-5.5.1.rpm
systemctl start logstash.service

elk日志收集系统_第12张图片elk日志收集系统_第13张图片

测试1: 标准输入与输出

logstash -e 'input{ stdin{} }output { stdout{} }'

elk日志收集系统_第14张图片

测试2:使用rubydebug解码

logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug }}'

elk日志收集系统_第15张图片

测试3:输出到elasticsearch

logstash -e 'input{ stdin{} }output{ elasticsearch{ hosts=>["192.168.238.146:9200"]} }'

elk日志收集系统_第16张图片

elk日志收集系统_第17张图片

查看结果:        192.168.238.146.9100(刷新)

elk日志收集系统_第18张图片

logstash日志收集文件格式(默认存储在/etc/logstash/conf.d)

Logstash配置文件基本由三部分组成:input、output以及 filter(根据需要)。

标准的配置文件格式如下:

input{...} 

输入

fileter {...}

过滤

output {...} 

输出

案例:        通过logstash收集系统信息日志

elk日志收集系统_第19张图片

chmod o+r /var/log/messages

vim /etc/logstash/conf.d/system.conf(文件名自定义最好起通俗易懂的)

input {
file{
path =>"/var/log/messages" 
type => "system"
start_position => "beginning"
}
}
output {
elasticsearch{
hosts =>["192.168.238.146:9200"]
index => "system-%{+YYYY.MM.dd}"
}
}

重启日志服务: systemctl restart logstash

elk日志收集系统_第20张图片elk日志收集系统_第21张图片

(三)、node1节点安装kibana

rpm -ivh kibana-5.5.1-x86_64.rpm
vim /etc/kibana/kibana.yml

修改配置

elk日志收集系统_第22张图片elk日志收集系统_第23张图片elk日志收集系统_第24张图片

启动kibana

systemctl start kibana

访问kibana         192.168.238.146:5601

首次访问需要添加索引,我们添加前面已经添加过的索引:system-*,没有索引无法添加

elk日志收集系统_第25张图片

elk日志收集系统_第26张图片

(四)、企业案例

192.168.238.145(httpd)

收集httpd访问日志信息

在httpd服务器上安装logstash,参数上述安装过程,可以不进行测试

logstash在httpd服务器上作为agent(代理),不需要启动。

安装httpd,启动服务

编写httpd日志收集配置文件

vim /etc/logstash/conf.d/httpd.conf

input {
file{
path =>"/var/log/httpd/access_log"
type => "access"
start_position => "beginning"
}
}
output {
elasticsearch{
hosts =>["192.168.238.146:9200"]
index => "httpd-ok%{+YYYY.MM.dd}"
}
}

使用logstash命令导入配置

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/httpd.conf

等待显示成功,不做任何操作

elk日志收集系统_第27张图片

访问192.168.238.146:9100查看新建的索引

elk日志收集系统_第28张图片

使用kibana查看即可!         192.168.238.146:5601  

查看时在mangement选项卡创建索引httpd_access-*  即可!

elk日志收集系统_第29张图片elk日志收集系统_第30张图片

elk日志收集系统_第31张图片


总结

内容不难,重点要先理解后才更好上手操作,注意事项尽量避免,多数是服务端口无法正常启动或服务启动后集群异常的问题。有兴趣的小伙伴可以去拓展下ELKK、ELFK、ELFKK、EFK等模式。

你可能感兴趣的:(elk,linux)