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

network.host:也可以是本机IP

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

分别启动服务        

systemctl start elasticsearch

查看端口是否启动

netstat -anput | grep :9200

查看节点信息

192.168.238.146:9200

192.168.238.147:9200

可以查看集群状态       

192.168.238.146:9200/_cluster/health

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 &

要在当前目录下启动后台

访问192.168.238.146:9100进行连接

测试,在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"}'

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

(二)、node1服务器安装logstash

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

测试1: 标准输入与输出

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

测试2:使用rubydebug解码

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

测试3:输出到elasticsearch

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

查看结果:        192.168.238.146.9100(刷新)

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

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

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

input{...} 

输入

filter {...}

过滤

output {...} 

输出

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

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

(三)、node1节点安装kibana

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

修改配置

启动kibana

systemctl start kibana

访问kibana         192.168.238.146:5601

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

(四)、企业案例

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

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

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

使用kibana查看即可!         192.168.238.146:5601  

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


总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值