ELK集中日志管理系统安装部署

一、简介

1.ELK介绍

ELK Stack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称。

ELK Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择。

ELK由三个组建构成:

  • Elasticsearch,负责数据的索引和存储
  • Logstash ,负责日志的采集和格式化
  • Kibana,负责前端统计的展示

大致的架构如下:

二、logstansh安装

1.同步时间

[[email protected] ~]# yum install -y ntpdate
[[email protected] ~]# echo ‘*/5 * * * * * /usr/sbin/ntpdate us.pool.ntp.org‘  >> /var/spool/cron/root

2.JDK安装

[[email protected] ~]#  yum install -y java-1.8.0
[[email protected] ~]# java -version
openjdk version "1.8.0_101"
OpenJDK Runtime Environment (build 1.8.0_101-b13)
OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)

3.logstansh安装

[[email protected] ~]# wget https://download.elastic.co/logstash/logstash/logstash-2.3.4.tar.gz
[[email protected] ~]# tar xf logstash-2.3.4.tar.gz
[[email protected] ~]# mv logstash-2.3.4 /usr/local/
[[email protected] ~]# echo "PATH=$PATH:/usr/local/logstash-2.3.4/bin" >> /etc/profile
[[email protected] ~]# source /etc/profile

4.新建 logstansh配置文件目录

[[email protected] ~]# mkdir /usr/local/logstash-2.3.4/conf

5.测试logstansh

[[email protected] ~]# logstash -e "input {stdin{}} output {stdout{}}"
Settings: Default pipeline workers: 4
Pipeline main started

三、Redis安装

1.redis安装
[[email protected] ~]# wget http://download.redis.io/releases/redis-2.8.20.tar.gz
[[email protected] ~]# yum install tcl gcc gcc-c++ -y
[[email protected] ~]# tar xf redis-2.8.20.tar.gz
[[email protected] ~]# mv redis-2.8.20 /usr/local/
[[email protected] ~]# cd /usr/local/redis-2.8.20/
[[email protected] redis-2.8.20]# make MALLOC=libc
[[email protected] redis-2.8.20]# make install
[[email protected] redis-2.8.20]# cd utils/
[[email protected] utils]# ./install_server.sh    #选项默认,一直回车

2.查看redis的监控端口

[[email protected] utils]# netstat -tnlup | grep redis
tcp        0      0 0.0.0.0:6379                0.0.0.0:*                   LISTEN      3015/redis-server *
tcp        0      0 :::6379                     :::*                        LISTEN      3015/redis-server *

3.测试redis是否缓存数据

a.新建logstansh配置文件如下

[[email protected] ~]# cat /usr/local/logstash-2.3.4/conf/output_redis.conf
input { stdin { } }    #手动输入数据
output {                
    stdout { codec => rubydebug }  #页面debug信息
    redis {
        host => ‘127.0.0.1‘
        data_type => ‘list‘
        key => ‘redis‘
    }
}

4.启动logstansh

[[email protected] ~]#logstash -f /usr/local/logstash-2.3.4/conf/output_redis.conf --verbose

 

5.查看redis中是否有数据

[[email protected] ~]# cd /usr/local/redis-2.8.20/src/
[[email protected] src]# ls
adlist.c     crc64.o        lzfP.h           rdb.o               rio.o           t_hash.o
adlist.h     db.c           Makefile         redisassert.h       scripting.c     t_list.c
adlist.o     db.o           Makefile.dep     redis-benchmark     scripting.o     t_list.o

四、elasticsearch安装

1.elasticsearch安装

[[email protected] ~]# wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch/2.3.4/elasticsearch-2.3.4.zip
[[email protected] ~]# unzip elasticsearch-2.3.4.zip
[[email protected] ~]# mv elasticsearch-2.3.4 /usr/local/

修改elasticsearch配置文件

[[email protected] ~]# vim /usr/local/elasticsearch-2.3.4/config/elasticsearch.yml
把下面参数的注释去掉并改成服务器IP。这里只做简单安装,优化及集群后面再介绍
network.host: 192.168.16.177

2.elasticsearch启动

[[email protected] ~]# useradd elk      
[[email protected] ~]# su elk
[[email protected] ~]$ chown -R elk.root /usr/local/elasticsearch-2.3.4/
[[email protected] ~]$  /usr/local/elasticsearch-2.3.4/bin/elasticsearch  -d

查看是否启动

[[email protected] local]$ netstat -tnlup | grep java
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 ::ffff:192.168.16.177:9200  :::*                        LISTEN      2192/java          
tcp        0      0 ::ffff:192.168.16.177:9300  :::*                        LISTEN      2192/java

3、测试logstansh和elasticsearch是否能结合使用

新建logstansh配置文件elasticsearch.conf

[[email protected] conf]# cat /usr/local/logstash-2.3.4/conf/elasticsearch.conf
input { stdin {} }    #手动输入
output {
    elasticsearch { hosts => "192.168.16.177" }    
    stdout { codec=> rubydebug }   #页面debug信息
}

启动elasticsearch.conf配置文件

[[email protected] ~]#logstash -f  /usr/local/logstash-2.3.4/conf/elasticsearch.conf --verbose

查看elasticsearch是否获取到了"hello elasticsearch"

[[email protected] ~]# curl http://192.168.16.177:9200/_search?pretty
{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 0,
    "successful" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 0,
    "max_score" : 0.0,
    "hits" : [ ]
  }
}

4、安装elasticsearch插件

elasticsearch有很多插件:http://www.searchtech.pro/elasticsearch-plugins 

elasticsearch-head插件安装,若无法下载请至github下载,解压至/usr/local/elasticsearch-2.3.4/plugins/head目录中

[[email protected] lang-expression]# cd /usr/local/elasticsearch-2.3.4/bin/
[[email protected] bin]# ./plugin install mobz/elasticsearch-head
[[email protected] ~]# wget https://www.elastic.co/downloads/past-releases/kibana-4-5-2
[[email protected] ~]# tar xf kibana-4.5.2-linux-x64.tar.gz 
[[email protected] ~]# mv kibana-4.5.2-linux-x64 /usr/local/
[[email protected] ~]# vim /usr/local/kibana-4.5.2-linux-x64/config/kibana.yml
修改kibana配置文件,把下面这行改成elasticsearc的访问路径
elasticsearch.url: "http://192.168.16.177:9200"

[[email protected] ~]#sh /usr/local/kibana-4.5.2-linux-x64/bin/kibana &

六、配置客户端传输日志到ELK(本机测试)

1.server端的logstash.conf的配置

vim  /usr/local/logstash-2.3.4/conf/redis_elasticserach.conf
input {
    redis {
        host => ‘192.168.16.177‘
        data_type => ‘list‘
        port => "6379"
        key => ‘logstash:syslog_log‘
        type => ‘redis-input‘
    }
}
output {
    elasticsearch {
        hosts => "192.168.16.177"
index => "logstash-%{+YYYY.MM.dd}"
    }
}

2.client端的logstash.conf的配置

vim  /usr/local/logstash-2.3.4/conf/logstash_redis.conf
input {
        file {
                path => "/var/log/messages"
                start_position => beginning
                sincedb_write_interval => 0
                add_field => {"Host"=>"192.168.16.177"}
                type => "SYSLOG_LOG"
        }
}
output {
            redis {
                host => "192.168.16.177:6379"
                data_type => "list"
                key => "logstash:syslog_log"
            }
}

七、启动ELK各项服务

logstash -f  /usr/local/logstash-2.3.4/conf/logstash_redis.conf &
logstash -f /usr/local/logstash-2.3.4/conf/redis_elasticserach.conf  &
/usr/local/elasticsearch-2.3.4/bin/elasticsearch  -d  #elk用户启动
/usr/local/kibana-4.5.2-linux-x64/bin/kibana &



八、查看

http://192.168.16.177:9200/_plugin/head/  点击数据浏览

http://192.168.16.177:5601/   点击Discover

九、配置客户端传输日志到ELK

1.server端创建证书

[[email protected] ~]# cd /etc/pki/tls/
[[email protected] tls]# openssl req -subj ‘/CN=www.elk.com/‘ -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
[[email protected] tls]# scp certs/logstash-forwarder.crt 192.168.16.188:/etc/pki/tls/certs/
#在将logstash-forwarder.crt拷贝到client端


2.创建server端logstash.conf配置

echo "192.168.16.177 www.elk.com"  >> /etc/hosts
vim /usr/local/logstash-2.3.4/conf/logstash.conf
input {
    file {
         type => "syslog"
         path => [ "/var/log/pacloud/pacloud.log" ]
  }
lumberjack {
    port => 5000
    type => "logs"
    ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
    ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
  }
}
output {
    stdout { codec=> rubydebug }
    elasticsearch {hosts => "192.168.16.177:9200" }
}

3.客户端安装

[[email protected] ~]# wget https://download.elastic.co/logstash-forwarder/binaries/logstash-forwarder-0.4.0-1.x86_64.rpm
[[email protected] ~]# yum localinstall -y logstash-forwarder-0.4.0-1.x86_64.rpm

#注意两个配置文件:

配置文件 /etc/logstash-forwarder.conf

日志目录 /var/log/logstash-forwarder

[[email protected] ~]# cp /etc/logstash-forwarder.conf  /etc/logstash-forwarder.conf.bak
[[email protected] ~]# echo "192.168.16.177 www.elk.com"  >> /etc/hosts
[[email protected] ~]# > /etc/logstash-forwarder.conf  
[[email protected] ~]# vim /etc/logstash-forwarder.conf  
{
  "network": {
    "servers": [ "www.elk.com:5000" ],
    "ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt",
    "timeout": 15
  },
 
 
  "files": [
    {
      "paths": [
        "/var/log/pacloud/pacloud.log"
      ],
      "fields": { "type": "syslog" }
    }, {
      "paths": [
        "其他路径的文件"
      ],
      "fields": { "type": "pacloud" }
    }
  ]
}

注意:

一定要写域名,不能写server端的IP,因为写IP不能通过证书的认知

"ssl ca" 一定要正确写明路径


5.启动测试

服务端启动

 logstash -f /usr/local/logstash-2.3.4/conf/logstash.conf  &
/usr/local/elasticsearch-2.3.4/bin/elasticsearch  -d  #elk用户启动
/usr/local/kibana-4.5.2-linux-x64/bin/kibana&

时间: 2025-01-12 11:32:59

ELK集中日志管理系统安装部署的相关文章

ELK统一日志管理平台第三篇-logstash grok插件的使用

1. ELK统一日志管理平台第三篇-logstash grok插件的使用   在本篇博文中,主要讲解如下几个知识点和实践经验,供大家参考:   1. 关于JAVA应用程序的日志内容标准规范:   2. 如何使用logstash的grok插件来完成message字段的拆分:   3. 定时删除Es的索引: 1. 关于JAVA应用程序的日志内容标准规范:   最近公司一直在主推ELK这个项目,而我是ELK这个项目的运维人员.所以针对ELK项目会有很多经验输出:由于我们公司的业务系统以JAVA语言开发

ELK日志管理平台部署简介

ELK是对Elasticsearch.Logstash.Kibana整合平台的简称.在日常的运维工作中,要实时监控服务器的业务.系统和硬件状态,除了使用监控之外,还需要搜集大量的日志来进行分析.但是在面对海量的服务器和集群时,通过单台登录查询的方式显然是不可能的,对于不同时间段和集群日志的分析仅仅通过简单的脚本来统计也是难以实现.ELK日志平台通过日志搜集,查询检索和前端展示的方式帮我们实现了这样的功能. Elasticsearch是个开源分布式搜索引擎,具有分布式,零配置,自动发现,索引自动分

ELK+filebeat日志分析系统部署文档

环境说明 架构说明及架构图 filebeat部署在客户端用于收集日志并把收集到的日志发送到logstash.logstash把收集到的日志处理之后交给elasticsearch. kibana从elasticsearch中提取数据并进行展示.之所以使用filebeat进行日志收集是因为filebeat不会像logstash使用大量的资源,影响业务服务器. 环境需求 需要java环境和redis yum install java yum install redis 使用版本 java  1.8.0

ELK 集中日志分析 windows部署实战

一步步来 1.下载软件 Elasticsearch: https://download.elasticsearch.org/...p/elasticsearch/2.0.0/elasticsearch-2.0.0.zipLogstash: https://download.elastic.co/logstash/logstash/logstash-2.0.0.zipKibana: https://download.elastic.co/kibana/kibana/kibana-4.2.0-win

ELK收集日志到mysql

场景需求 在使用ELK对日志进行收集的时候,如果需要对数据进行存档,可以考虑使用数据库的方式.为了便于查询,可以同时写一份数据到Elasticsearch 中. 环境准备 CentOS7系统: 192.168.20.60 node1 Kibana ES Logstash Nginx 192.168.20.61 node2 ES MariaDB这里使用收集Nginx日志到数据库和ES中作为示例. 配置数据库 安装好数据库后,配置,并授权: MariaDB [(none)]> create data

云计算Docker全面项目实战(Maven+Jenkins、日志管理ELK、WordPress博客镜像)

2013年,云计算领域从此多了一个名词“Docker”.以轻量著称,更好的去解决应用打包和部署.之前我们一直在构建Iaas,但通过Iaas去实现统一功  能还是相当复杂得,并且维护复杂.将特殊性封装到镜像中实现几乎一致得部署方法,它就是“Docker”,以容器为技术核心,实现了应用的标准化.企业可  以快速生成研发.测试环境,并且可以做到快速部署.实现了从产品研发环境到部署环境的一致化.Docker让研发更加专注于代码的编写,并且以“镜像”作  为交付.极大的缩短了产品的交付周期和实施周期. 课

ELK日志管理

ELK日志管理 ·        1.简介 ·        2.依赖组件 ·        3.下载 ·        4.安装步骤 o   4.1 安装redis o   4.2 ElasticSearch安装 o   4.3 LogStash安装 o   4.4 Kibana安装 ·        5.使用说明 o   5.1 ElasticSearch o   5.2 Kibana 1.简介 ELK日志管理系统主要功能:应用系统日志的分析和监控 . ELK组成:ElasticSearch

离线部署ELK+kafka日志管理系统

1.简介 对于日志来说,最常见的需求就是收集.查询.显示,正对应logstash.elasticsearch.kibana的功能. ELK日志系统在系统中,主要可解决的问题: 基于日志的数据挖掘 问题排查,上线检查 根据关键字查询日志详情 异常数据自动触发消息通知 服务器监控,应用监控,Bug管理 统计分析,比如接口的调用次数.执行时间.成功率等 性能分析,用户行为分析,安全漏洞分析,时间管理 Logstash: Logstash是一个用来搜集.分析.过滤日志的工具.它支持几乎任何类型的日志,包

使用ElasticSearch+LogStash+Kibana+Redis搭建日志管理服务

1.使用ElasticSearch+LogStash+Kibana+Redis搭建日志管理服务 http://www.tuicool.com/articles/BFzye2 2.ElasticSearch+LogStash+Kibana+Redis日志服务的高可用方案 http://www.tuicool.com/articles/EVzEZzn 3.示例 开源实时日志分析ELK平台部署 http://baidu.blog.51cto.com/71938/1676798?utm_source=t