• 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插件

    1. tar xf node-v8.2.1.tar.gz
    2. cd node-v8.2.1
    3. ./configure && make && make install

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

    安装node1node2节点的elasticsearch

    1. rpm -ivh elasticsearch-5.5.0.rpm
    2. 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插件

    1. tar xf phantomjs-2.1.1-linux-x86_64.tar.bz2
    2. cd phantomjs-2.1.1-linux-x86_64/bin
    3. cp phantomjs  /usr/local/bin

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

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

    安装elasticsearch-head

    1. tar xf elasticsearch-head.tar.gz
    2. cd elasticsearch-head
    3. npm install
    4. 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

    1. rpm -ivh logstash-5.5.1.rpm
    2. 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(文件名自定义最好起通俗易懂的)

    1. input {
    2. file{
    3. path =>"/var/log/messages"
    4. type => "system"
    5. start_position => "beginning"
    6. }
    7. }
    8. output {
    9. elasticsearch{
    10. hosts =>["192.168.238.146:9200"]
    11. index => "system-%{+YYYY.MM.dd}"
    12. }
    13. }

    重启日志服务: systemctl restart logstash

    (三)、node1节点安装kibana

    1. rpm -ivh kibana-5.5.1-x86_64.rpm
    2. 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

    1. input {
    2. file{
    3. path =>"/var/log/httpd/access_log"
    4. type => "access"
    5. start_position => "beginning"
    6. }
    7. }
    8. output {
    9. elasticsearch{
    10. hosts =>["192.168.238.146:9200"]
    11. index => "httpd-ok%{+YYYY.MM.dd}"
    12. }
    13. }

    使用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等模式。

  • 相关阅读:
    java计算机毕业设计网上图书分享系统MyBatis+系统+LW文档+源码+调试部署
    卡尔曼滤波讲解
    一、C语言[指针]
    Spring Boot
    idea leetcode配置
    Linux安装Nacos
    手写RPC框架
    【历史上的今天】6 月 24 日:网易成立;首届消费电子展召开;世界上第一次网络直播
    Docker容器的数据卷
    NetBeans IDE8.0.2下git使用
  • 原文地址:https://blog.csdn.net/2301_78534660/article/details/132570183