赞
踩
简介
在大型运维环境中,管理员通常面对大量的服务器,对于这些服务器的维护,一个很重要的工作就是查看每台服务器的日志信息,而每天逐台检查的方式显然效率比较低下。传统的方式是通过搭建日志服务器,将所有服务器的日志收集到日志服务器统一查看。但是面对众多的日志数据很难去分析以及查找所需要的内容,即很难快速定位是否出现故障,以及哪些机器哪些服务存在故障。而ELK 可以很好地解决这一问题。
Elasticsearch是一个基于Lucene的搜索服务器。它稳定、可靠、快速,而且具有比较好的水平扩展能力,为分布式环境设计,在云计算中被广泛应用。Elasticsearch提供了一个分布式多用户能力的全文搜索引擎,基于RESTful Web接口,通过该接口,用户可以通过浏览器和Elasticsearch 通信。Elasticsearch 是用Java开发的,并作为Apache许可条款下的开放源码发布,Wikipedia、Stack、Overflow、GitHub等都基于Elasticsearch来构建搜索引擎,具有实时搜索、稳定,可靠、快速、安装使用方便等特点。
Logstash 由 JRuby 语言编写,运行在Java虚拟机(JVM)上,是一款强大的数据处理工具,可以实现数据传输、格式处理、格式化输出。Logstash具有强大的插件功能,常用于日志处理。LogStash可配置单一的代理端,与其他开源软件结合,以实现不同的功能。
Logstash的理念很简单,它只做三件事情:数据输入,数据加工(如过滤,改写等)以及数据输出。通过组合输入和输出,可以实现多种需求。Logstash处理日志时,典型的部署架构图。
Kibana是一个针对Elasticsearch的开源分析及可视化平台,主要设计用来和Elasticsearch一起工作,可以搜索,查看存储在Elasticsearch索引中的数据,并通过各种图表进行高级数据分析及展示。Kibana 可以让数据看起来一目了然。它操作简单,基于浏览器的用户界面可以让用户在任何位置都可以实时浏览。Kibana 可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。Kibana使用非常简单,只需要添加索引就可以监测Elasticsearch索引数据。
虚拟机 3台 centos7.9\网卡NAT模式 数量 1
设备 | IP | 备注 |
Centos01 | 192.168.160.51 | Node1 elasticsearch |
Centos02 | 192.168.160.52 | Node2 kibana |
Centos03 | 192.168.160.53 | Node3 logstash+httpd |
Node1 Node2 都配置
- cat << EOF >> /etc/hosts
- 192.168.160.51 node1
- 192.168.160.52 node2
- EOF
上传安装包 elasticsearch-5.5.0.rpm
[root@love ~]# rpm -ivh elasticsearch-5.5.0.rpm
编辑elasticsearch 配置文件
- [root@love ~]# vim /etc/elasticsearch/elasticsearch.yml
- cluster.name: my-elk-cluster #群集名称
- node.name: node1 #节点名称,不同节点修改编号
- path.data: /data/elk_data #日志收集目录
- path.logs: /data/elk_log #日志存放路径
- bootstrap.memory_lock: false #不锁定内存
- network.host: 0.0.0.0 #监听IP
- http.port: 9200 #监听端口
- discovery.zen.ping.unicast.hosts: ["node1", "node2"] #单播实现群集
创建日志文件夹
- [root@love ~]# mkdir -p /data/elk_data
- [root@love ~]# mkdir -p /data/elk_log
- [root@love ~]# chown -R elasticsearch:elasticsearch /data
- [root@love ~]# systemctl start elasticsearch
查看端口是否启动
上传并安装插件:node-v8.2.1.tar.gz、elasticsearch-head.tar.gz、phantomjs-2.1.1-linux-x86_64.tar.bz2
- 安装node-v8.2.1.tar.gz
- [root@love ~]# tar zxf node-v8.2.1.tar.gz
- [root@love node-v8.2.1]# ./configure && make && make install
-
- 安装elasticsearch-head.tar.gz
- [root@love ~]# yum -y install bzip2
- [root@love ~]# tar jxf phantomjs-2.1.1-linux-x86_64.tar.bz2
- [root@love ~]# mv phantomjs-2.1.1-linux-x86_64 /usr/src/phantomjs2.1
- [root@love ~]# ln -s /usr/src/phantomjs2.1/bin/* /usr/local/bin/
-
- 安装phantomjs-2.1.1-linux-x86_64.tar.bz2
- [root@love ~]# tar zxf elasticsearch-head.tar.gz
- [root@love ~]# cd elasticsearch-head/
- [root@love elasticsearch-head]# npm install
- [root@love elasticsearch-head]# cd
- [root@love ~]# cat << EOF >> /etc/elasticsearch/elasticsearch.yml
- > http.cors.enabled: true
- > http.cors.allow-origin: "*"
- > http.cors.allow-headers: Authorization,Content-Type
- > EOF

启动服务
- [root@love ~]# systemctl restart elasticsearch
-
-
- [root@love elasticsearch-head]# npm run start &
- [1] 110314
上传安装包 logstash-5.5.1.rpm
- [root@love22 ~]# yum -y install httpd
- [root@love22 ~]# rpm -ivh logstash-5.5.1.rpm
- [root@love22 ~]# ln -s /usr/share/logstash/bin/logstash /usr/local/sbin/
编辑自定义提交日志配置
- [root@love22 ~]# vim /etc/logstash/conf.d/httpd_log.conf
- input {
- file {
- path => "/var/log/httpd/access_log"
- type => "access"
- start_position => "beginning"
- }
- file {
- path => "/var/log/httpd/error_log"
- type => "error"
- start_position => "beginning"
- }
- }
- output {
- if [type] == "access" {
- elasticsearch {
- hosts => ["192.168.19.10:9200"]
- index => "httpd_access-%{+YYYY.MM.dd}"
- }
- }
- if [type] == "error" {
- elasticsearch {
- hosts => ["192.168.19.20:9200"]
- index => "httpd_error-%{+YYYY.MM.dd}"
- }
- }
- }

启动日志传递
- [root@love22 ~]# nohup logstash -f /etc/logstash/conf.d/httpd_log.conf &
- [1] 65183
上传安装包 kibana-5.5.1-x86_64.rpm
- [root@love11 ~]# rpm -ivh kibana-5.5.1-x86_64.rpm
-
- [root@love11 ~]# vim /etc/kibana/kibana.yml
- server.port: 5601
- server.host: "0.0.0.0"
- elasticsearch.url: "http://192.168.19.10:9200"
- kibana.index: ".kibana"
-
- [root@love11 ~]# systemctl enable kibana --now
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。