美文网首页运维驿站Linux学习之路Linux
syslog日志收集学习-ELK源码6.6.1部署

syslog日志收集学习-ELK源码6.6.1部署

作者: Shark1985 | 来源:发表于2019-03-16 13:52 被阅读1次

    日志收集,是运维工作中很重要的一环。不管是针对线上的系统服务,还是基础架构上的网络设备,有一套完整合适的日志收集系统,是必不可少的,这将成为之后遇到故障问题,提供一个有效的依据和排查手段。

    目前已接触的日志收集系统:

    Windows下的Kiwi syslog sever

    Linux下的rsyslog,Graylog,ELK,前者是老牌日志收集工具,后两者简单看了一下介绍,日志收集只是其中一个功能,其功能优势更体现在分析和搜索。

    ELK官网上提供了多种安装方式,软件包,源码,docker,之前一直使用的是Ubuntu的apt安装方式,后来在新版本发布后,就用了源码学习搭建了一次,据说这个版本针对Index索引的删除操作,有了更好的支持,正好可以来验证一下。

    在安装ELK之前,如必需的java环境已具备,在此忽略。

    部署的环境采用Ubuntu16.04,个人比较喜欢Ubuntu,基本大多数应用部署在此。

    1.下载安装

    #下载链接直接在官网获取,此次忽略
    #解压
    tar -zxvf elasticsearch-6.6.1.tar.gz 
    tar -zxvf kibana-6.6.1-linux-x86_64.tar.gz
    tar -zxvf logstash-6.6.1.tar.gz
    

    2.软件包目录

    #命名
     mv elasticsearch-6.6.1 elasticsearch
     mv kibana-6.6.1-linux-x86_64 kibana
     mv logstash-6.6.1 logstash
    
    #将目录移动到/usr/local下
    cp -r elasticsearch /usr/local/
    cp -r kibana /usr/local/
    cp -r logstash /usr/local/
    

    3.配置

    配置elasticsearch

    #编辑配置文件
    /usr/local/elasticsearch/config/elasticsearch.yml
    #修改如下内容
    cluster.name: es-cluster
    node.name: node-1
    network.host: 10.x.x.11
    http.port: 9200
    #增加
    http.cors.allow-origin: "/.*/"
    http.cors.enabled: true
    #elasticsearch不能使用root执行,需要给执行账户分配权限
    chown padmin:padmin -R /usr/local/elasticsearch/
    

    运行

    #此处要加“-d”后台运行
    /usr/local/elasticsearch/bin/elasticsearch -d
    #不加实际测试也可以正常运行,可以看到运行log。但遇到了一个奇怪的问题,当未后台运行时,如果将远程登录断开后,运行elasticsearch的进程就会自动停止,导致9200端口关闭。
    

    Kibana

    #编辑配置文件
    /usr/local/kibana/config/kibana.yml
    #修改如下内容,此处url的ip需与elasticsearch文件中保持一致
    server.port: 5601
    elasticsearch.hosts: ["http://10.x.x.11:9200"]
    

    运行

    #此处加“&”,使其可以后台运行
    #遇到类似问题,不后台运行,同样会出现关闭远程管理后,进程自动停止
    /usr/local/kibana/bin/kibana &
    

    Logstash

    cd /usr/local/logstash/config/
    #复制模板文件生成配置文件
    cp logstash-sample.conf logstash.conf
    #编辑配置文件,此处hosts的url对应的是elasticsearch配置中的ip
    input {
      syslog {
      port => 514
      }
      }
    output {
     elasticsearch {
     hosts => ["http://10.x.x.11:9200"]
     index => "office.network-syslog-%{[@metadata][version]}-%{+YYYY.MM.dd}"
     }
    }
    #编辑配置文件
    usr/local/logstash/bin/logstash.yml
    #修改如下内容,ip与elasticsearch配置中的ip的一致
    http.host: "10.x.x.11"
    http.port: 9600-9700
    

    运行

    /usr/local/logstash/bin/logstash  -f /usr/local/logstash/config/logstash.conf
    

    至此ELK的三大组件已完成部署并正常运行了

    但存在一个安全问题,就是Kibana现在是无认证登录,直接访问url就可以跳转到日志浏览的页面。而官方提供的x-pack插件虽然可以提供验证登录的安全功能,但由于其license收费,从预算投入及需求来看,显然也有并不适合多数场景。

    因此这里采用了一种折中的方式,通过Nginx转发代理&apache功能间接完成认证的目的,此方案也是网上多数大神提供的参考,这里借用一下。

    Nginx代理

    #需要先下载安装所需软件包
    apt-get install nginx
    apt-get install apache2-utils
    

    认证配置

    #创建目录及认证文件
    mkdir -p /data/nginx/db/
    cd /data/nginx/db/
    touch passwd.db
    

    配置Nginx

    #编辑如下文件
    /etc/nginx/nginx.conf
    #在"http{"下添加如下内容,此处目的是让外部访问kibana的80端口,然后系统根据这个访问请求,将80重定向本身的5601端口上,进而访问kibana的web页面
    #proxy_pass 重定向到127.0.0.1上,目的也是为了让外部无法直接访问5601端口
    
    server {
     listen 80;
     server_name 10.x.x.11;
     location / {
     auth_basic "secret";
     auth_basic_user_file /data/nginx/db/passwd.db;
     proxy_pass http://127.0.0.1:5601;
     proxy_set_header Host $host:5601;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header Via "nginx";
     }
     access_log off;
    }
    

    添加认证账号

    #执行以下命令,使用的是前边已经创建的认证文件,建立账号admin
    htpasswd -c /data/nginx/db/passwd.db admin
    #命令执行后,会提示输入新密码
    #查看认证文件,会发现admin账号已经生成了密码,且是密文的
    cat /data/nginx/db/passwd.db 
    admin:$apr1$.D5RMgHD$DMr/J1q.iuM/OaAnkiKKU1
    

    4.访问

    通过访问http://10.x.x.11/app/kibana#/home?_g=() ,会有认证框弹出,输入密码后登录

    image image

    登录Kibana后,还需要在logstash上添加索引,通过office.network-syslog* 匹配

    5.索引周期策略

    值得一提的是,针对Index索引的保存时间及删除,增加了一个索引周期策略Index Lifecycle Policies

    image image image

    相关文章

      网友评论

        本文标题:syslog日志收集学习-ELK源码6.6.1部署

        本文链接:https://www.haomeiwen.com/subject/pvxsmqtx.html