设为首页 收藏本站
查看: 1245|回复: 0

[经验分享] ELK实践

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2019-1-28 11:22:43 | 显示全部楼层 |阅读模式
  实验环境:
  【node2】 192.168.1.102:ELS
  【node3】192.168.1.103:ELS+filebeat+nginx
  【node1】192.168.1.104:logstash-server+kibana + redis
  

  ELS集群的配置方式:
  1、启动nginx服务并配置filebeat服务使其能够收集日志信息并发送给redis:
systemctl start nginx; ss -ntl | grep 80
yum install filebeat-5.1.1-x86_64.rpm        #配置filebeat服务
cd /etc/filebeat/
cp filebeat.full.yml filebeat.yml
vim filebeat.yml
    - input_type: log
      paths:
         - /var/log/nginx/access.log
     output.redis:
     enabled: true
     hosts: ["192.168.1.104:6379"]
     port: 6379
     key: filebeat-nginxlog
   注意:默认是开启直接传输到els集群的,此处需要注释掉
systemctl start filebeat.serviceyum install redis
vim /etc/redis.conf
    bind 192.168.1.104
systemctl start redis; ss -tnl | grep 6379  验证filebeat是否与redis连接成功的方法:
  1、在浏览器端刷新http://192.168.1.103/

  2、在104主机上连接redis,通过不停的刷新web页面来跟新日志,来查看KEY的长度是否发生变化
root@node1  ~ # redis-cli -h 192.168.1.104
192.168.1.104:6379> KEYS *
1) "filebeat-nginxlog"
192.168.1.104:6379> LLEN filebeat-nginxlog
(integer) 10
192.168.1.104:6379> LINDEX filebeat-nginxlog 9 #可以查看收集到的最后一条的日志信息  

  2、将redis端收集到的数据发送给logstash-server,并做过滤处理。
yum install logstash-5.1.1-1.noarch
vim /etc/logstashjvm.options #定义最小和最大使用内存
    #-Xms256m
    #-Xmx1g
  注意:/etc/logstash/conf.d目录下的文件都会被读取,不一定是.conf结尾的
vim /etc/logstash/conf.dtest.conf
        input {
               redis {
                       port => "6379"
                       host => "192.168.1.104"
                       data_type => "list"
                       key => "filebeat-nginxlog"
                }
        }
        filter {
                      grok {
                                    match => { "message" => "%{NGINXACCESS}"}
                            }
                }
        output {
               elasticsearch {
                       hosts => "192.168.1.103"
                       index => "logstash-%{+YYYYY.MM.dd}"
                }
         stdout {    #此处使用标准输出时便于测试使用,可以让更新的日志信息直接显示在屏幕上
               codec => rubydebug
            }
        }
    nginx log的匹配方式:
将如下信息添加至 /usr/share/logstash/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.0.2/patterns/grok-patterns
文件的尾部:
            NGUSERNAME [a-zA-Z\.\@\-\+_%]+
    NGUSER %{NGUSERNAME}
    NGINXACCESS %{IPORHOST:clientip} - %{NOTSPACE:remote_user} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})\" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:agent} %{NOTSPACE:http_x_forwarded_for}  验证方法:由于此时还没有配置ELS集群,因此先将output处的elasticsearch配置注释掉,然后执行:
logstash  -t -f /etc/logstash/conf.d/test.conf  #验证语法是否正确
Configuration OK
logstash  -f /etc/logstash/conf.d/test.conf    #启动输入输出和过滤插件【非守护进程方式运行】
    11:09:27.901 [[main]-pipeline-manager] INFO  logstash.pipeline - Pipeline main started
    11:09:27.977 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9600}
============此时在浏览器处刷新
过几秒钟可以看到在logstash端会有输出 :
    {
        "@timestamp" => 2017-01-03T03:09:51.175Z,
            "offset" => 36486,
              "beat" => {
            "hostname" => "node3",
                "name" => "node3",
             "version" => "5.1.1"
        },
        "input_type" => "log",
          "@version" => "1",
            "source" => "/var/log/nginx/access.log",
           "message" => "192.168.1.100 - - [03/Jan/2017:11:09:43 +0800] \"GET / HTTP/1.1\" 304 0 \"-\" \"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0\" \"-\"",
              "type" => "log",
              "tags" => [
            [0] "_grokparsefailure"
        ]
    }  3、配置elastic集群:
   时间要同步   
   java-1.8.0-openjdk-src.x86_64
    java-1.8.0-openjdk-devel-1.8.0.65-3.b17.el7.x86_64
        #java -version 确认版本要在1.8或1.8以上
    yum install ./elasticsearch-5.1.1.rpm     #当前最新版本
    mkdir -pv /els/{data,logs}
    chown -R elasticsearch.elasticsearch /els/*
    vim /etc/elasticsearch/elasticsearch.yml
        cluster.name: myels    #判断多个集群节点是不是属于同一个集群的通过集群名称来判断即可
        node.name: node1    #节点名,且集群网络能够解析
        path.data: /els/data
        path.logs: /els/logs
        network.host: 0.0.0.0    #本地如果存在多个网卡时,最好设置成固定ip
        discovery.zen.ping.unicast.hosts: ["node1IP", "node2IP","node3IP"]
                discovery.zen.minimum_master_nodes: 2 #大于节点数的半数
        vim /etc/sysconfig/elasticsearch  #可配置使用最大和最小内存的使用量
                #例如:ES_JAVA_OPTS="-Xms512m -Xmx512m" 最大最小均为512M
    systemctl daemon-reload
    systemctl start elasticsearch.service  #确保9200和9300端口是打开的
        #在102和103节点上配置  

      集群配置后的验证方法:可已通过安装elasticsearch-head-latest.zip 插件来管理集群

root@node3  ~ # curl -XGET 'http:/ curl -X GET 'http://192.168.1.103:9200/_cat/nodes?v'
ip            heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
192.168.1.102           40          93   0    0.06    0.40     0.43 mdi       *      node2
192.168.1.103           38          93   2    0.13    0.75     0.72 mdi       -      node3
root@node3  ~ # curl -XGET 'http://192.168.1.103:9200/_cluster/health?pretty'
{
  "cluster_name" : "myels",
  "status" : "green",
。。。。。  4、配置kibana
yum install kibanna
vim /etc/kibana/kibana.yml
    server.port: 5601
    server.host: "0.0.0.0"
    elasticsearch.url: "http://localhost:9200"
    kibana.index: ".kibana"
systemctl start kibana
在浏览器上输入http://192.168.1.104:5601  5、联调
  在第2步中去掉对els的注释,在logstash端执行logstash -f /etc/logstash/test.conf 命令
  在浏览器上输入http://192.168.1.104:5601 出现kibana界面,配置KEY之后就可以键入需要需要渣炒的命令进行查找。
  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-668649-1-1.html 上篇帖子: elk入门概念详解 下篇帖子: ELK安装和使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表