当前位置: 首页 > news >正文

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.gzcd node-v8.2.1./configure && make && make install

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

安装node1node2节点的elasticsearch

rpm -ivh elasticsearch-5.5.0.rpmvim /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.bz2cd phantomjs-2.1.1-linux-x86_64/bincp 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等模式。

http://www.lryc.cn/news/147817.html

相关文章:

  • perl 语言中 AUTOLOAD 的用法
  • 服务器放在香港好用吗?
  • C++设计模式_01_设计模式简介(多态带来的便利;软件设计的目标:复用)
  • Docker技术--WordPress博客系统部署初体验
  • 提高代码可读性和可维护性的命名建议
  • Docker基础入门:Docker网络与微服务项目发布
  • Docker安装详细步骤
  • 十六、pikachu之SSRF
  • 最新PHP短网址生成系统/短链接生成系统/URL缩短器系统源码
  • 漱玉平民大药房:多元化药店变革的前夜
  • 如何实现AI的矢量数据库
  • Java与Modbus-TCP/IP网络通讯
  • 音视频 ffmpeg命令图片与视频互转
  • C++的基类和派生类构造函数
  • C语言中对json格式数据的解析和封装
  • RT-Thread自动初始化机制
  • 在本地搭建Jellyfin影音服务器,支持公网远程访问影音库的方法分享
  • 强盛集团面试题实战(持续更新)
  • golang 协程的实现原理
  • go gin 参数绑定常用验证器
  • 多用户商城系统常见的安全性和数据保护措施有哪些?
  • 如何在WSL上导入任何Linux发行版
  • 汽车自适应巡航系统车距控制策略研究
  • 鸿蒙系列-如何更好地使用 ArkUI 的 Image 组件?
  • 机器学习简介[01/2]:简单线性回归
  • Kubernetes技术--k8s核心技术yaml资源编排
  • clickhouse-配置解释
  • 基于亚马逊云科技无服务器服务快速搭建电商平台——性能篇
  • LINQ详解(查询表达式)
  • 【DEVOPS】现状篇