• syslog-ng收集日志+ELK平台搭建教程


    syslog-ng部署:

      用于接收交换机输出的日志。

      syslog-ng安装很简单,可以顺便搜一下,文章有很多。我是yum直接安装的。

      syslog-ng配置:

    vi /etc/syslog-ng/syslog-ng.conf

      配置文件需要添加source 和destination

    #设置接收日志的协议和端口,localhost填写本机IP地址
    source s_remote {
        tcp(ip(localhost) port(514));
        udp(ip(localhost) port(514));
    }; 
    
    #收到的日志存放本地一份(elk搭建存不存本地都无所谓)
    destination d_file 
        { file("/netlog/logs_${YEAR}-${MONTH}-${DAY}"); 
    };
    
    #收到的日志交给logstash处理,定义传输协议udp,端口5144(这里对应logstash的input)
    destination d_logstash { udp ("10.120.248.132" port(5144)); };
    
    #多个目的,需要填写进来,分号隔开
    log { source(s_remote); destination(d_file); destination(d_logstash); };

      交换机上配置好log服务器地址(部署syslog-ng、ELK的服务器IP地址)即可。

    ELK搭建(非集群):

      ELK分别是Elasticsearch、Logstash、Kibana三个开源框架缩写。

      Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。

      Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。

      Kibana 提供日志分析的 Web 界面,帮助汇总、分析和搜索重要数据日志。

    1. 下载ELK(版本保持一致!):

      这里选择下载了6.3.0版本。

      Elasticsearch下载: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.tar.gz 

      Kibana下载: https://artifacts.elastic.co/downloads/kibana/kibana-6.3.0-linux-x86_64.tar.gz

      Logstash下载: https://artifacts.elastic.co/downloads/logstash/logstash-6.3.0.tar.gz 

      下载完成,使用rz命令上传至centos7虚机,放在/home/目录下。

    2. 解压

    cd /home
    tar -zxvf elasticsearch-6.3.0.tar.gz 
    tar -zxvf kibana-6.3.0-linux-x86_64.tar.gz
    tar -zxvf logstash-6.3.0.tar.gz

    3. java环境搭建

      推荐使用jdk1.8,为了方便安装了java-1.8.0-openjdk,安装方法见链接。

      https://www.cnblogs.com/sitongyan/p/11262375.html

    4. 部署elasticsearch,ELK的包解压修改配置文件启动即可使用,不需要安装。

      修改配置文件

    vi /home/elasticsearch-6.3.0/config/elasticsearch.yml
    # Set the bind address to a specific IP (IPv4 or IPv6):
    #
    network.host: 0.0.0.0           ##服务器ip 本机
    #
    # Set a custom port for HTTP:
    #
    http.port: 9200                 ##服务端口
    #

      启动elasticsearch:

    /home/elasticsearch-6.3.0/bin/elasticsearch   #命令窗运行
    
    /home/elasticsearch-6.3.0/bin/elasticsearch  -d  #后台线程运行

      关闭elasticsearch:

    ps -ef | grep elastic                    #后台线程关闭
    kill -9 4442                             ##pid 4442为查处线程的pid 

      Elasticsearch启动常见问题解决

      验证elasticsearch启动:

    5. 安装kibana

      修改配置文件:

    vi /home/kibana-6.3.0-linux-x86_64/config/kibana.yml
    server.port: 5601       ##服务端口
    server.host: "0.0.0.0"  ##服务器ip  本机
     
    elasticsearch.url: "http://localhost:9200" ##elasticsearch服务地址 与elasticsearch对应

      启动kibana:

    /home/kibana-6.3.0-linux-x86_64/bin/kibana       #命令窗启动
    
    nohup ./kibana-6.3.0-linux-x86_64/bin/kibana &   #后台线程启动

      关闭kibana:

    ps -ef | grep kibana                    #后台线程关闭
    kill -9 4525                             ##pid 4525 为查处线程的pid 
      备注:常见问题多为 端口占用,以及目录未授权,需要同elasticsearch 使用目录运行执行的用户去执行 未配置则为root用户

      验证kibana启动:

    6. 安装logstash

      新建配置文件:

    vi /home/logstash-6.3.0/config/logback-es.conf

    0.0.0.0填写本地IP地址,input标签表示监听udp协议的5144端口(此端口为syslog-ng设置的吐出日志的目标端口),input日志来源有很多种,udp是其中一种。

    其他常见input标签使用。

    input {
        udp {
            host => "0.0.0.0"
            port => 5144
        }
    }
    output {
        elasticsearch {
            hosts => ["localhost:9200"]
            index => "switch-log-%{+YYYY.MM.dd}"
        }
        stdout {
            codec => rubydebug
        }
    }

       备注:上述文件复制时必须去除多余空格,保持yml文件规范。

      启动logstash:

    /home/logstash-6.3.0/bin/logstash -f /home/logstash-6.3.0/config/logback-es.conf         ##命令窗形式
    
    nohup /home/logstash-6.3.0/bin/logstash -f /home/logstash-6.3.0/config/logback-es.conf &  ##后台线程形式

      关闭logstash:

    ps -ef | grep logstash                    #后台线程关闭
    kill -9 4617                              ##pid 4617 为查处线程的pid 

    7. 验证ELK

      查看elasticsearch索引,logstash收集到日志后,会按照配置文件自动创建索引,并且根据时间YYYY.MM.dd切割数据建立一个一个的索引

    curl http://10.120.248.132:9200/_cat/indices?v   ##查看自动创建的索引,能查看到说明elasticsearch存储了从logstash output来的数据。
    curl -XDELETE http://10.120.248.132:9200/索引名   ##清空无用索引

      验证kibana日志展示是否正常:新建立的索引,kibana需要新建一下关联。

      Create Index Pattern创建索引

      选择时间戳,创建完成。

      然后在Discover中查看日志。如果看不见日志,注意右上角的时间段选择,选择查看的时间长一些即可看见日志。

      注意:右上角的选择查看日志的时间段(例如today)是参照按照当前浏览器时间。例如,需要查看的日志索引为7月1日,然而今天实际是7月2日,选择区间为today就没有日志,因为today代表当前时间7月2日,7月1日的日志中是不包含7月2日的。

     8. kibana添加登录认证

      elk验证完成之后,会发现kibana不需要用户登录直接即可访问,这样很不安全,需要添加登录认证。

      可以采用Nginx代理完成认证操作。

      Linux环境安装Nginx步骤

      1.安装Nginx完成之后,安装Apache密码生成工具:

    yum install httpd-tools

      2.生成密码文件:

    mkdir -p /etc/nginx/passwd
    htpasswd -c -b /etc/nginx/passwd/kibana.passwd user ******     ##-c表示创建一个加密文件,-b表示在htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码。

      3.配置Nginx:

    vi /usr/local/webserver/nginx/conf/nginx.conf
        server {
            listen       5601;   ##监听用户访问的5601端口
            server_name  localhost:5601;    ##本机IP:port
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                auth_basic "kibana login auth";
                auth_basic_user_file /usr/local/test/passwd/kibana.passwd;    ##存储用户密码文件
                proxy_pass http://localhost:5602;    #因为Nginx代理了kibana的5601端口,所以kibana需要换一个端口,我换成了5602,注意kibana的配置文件也需要改成5602端口
                proxy_redirect off;
            }
    
            #error_page  404              /404.html;

      4.修改Kibana配置文件:

    vi /home/kibana-6.3.0-linux-x86_64/config/kibana.yml
    # Kibana is served by a back end server. This setting specifies the port to use.
    server.port: 5602

      5.重启Kibana服务,配置文件生效:

    ps -ef | grep kibana
    kii -9 进程号
    cd /home/
    nohup ./kibana-6.3.0-linux-x86_64/bin/kibana & ##后台启动

       6.访问kibana

      

      后续会补充logstash时间戳问题的处理办法。










  • 相关阅读:
    [07] Redis 持久化
    [06] Redis 事务
    [05] Jedis
    [04] Redis 配置文件
    [03] Redis 数据类型
    [02] Redis 简介&安装
    [01] NoSQL 简介
    06-NULL&typedef
    05-动态内存分配
    朴素贝叶斯分类器Naive Bayes
  • 原文地址:https://www.cnblogs.com/sitongyan/p/11177718.html
Copyright © 2020-2023  润新知