zoukankan      html  css  js  c++  java
  • ELK+Redis+Nginx服务数据存储以及Nginx日志的收集

    PS:此片文章是承接上篇ELK部署文档,再次便不详细说明了

    【安装Redis】

    [root@Redis ~]# wget  http://download.redis.io/releases/redis-2.8.13.tar.gz 

    [root@Redis ~]# tar zxvf redis-2.8.13.tar.gz 

    [root@Redis ~]# cd redis-2.8.13

    [root@Redis redis-2.8.13]# make

    [root@Redis redis-2.8.13]# cd src/

    [root@Redis src]# make install PREFIX=/usr/local/redis 

     [root@Redis src]# mv /root/redis-2.8.13/redis.conf  /usr/local/redis/

    [root@Redis src]# cd /usr/local/redis/
    [root@Redis redis]# ls
    bin redis.conf

    [root@Redis redis]# export PATH=/usr/local/redis/bin:$PATH                  #将/usr/local/redis/bin/目录加入至环境变量配置文件/etc/profile末尾,然后Shell终端执行source /etc/profile让环境变量生效

    [root@Redis redis]# nohup ./bin/redis-server redis.conf &

    默认情况,Redis不是在后台运行,我们需要把redis放在后台运行

    【快速部署Nginx】

    root@logstash ~]# yum install -y pcre-devel openssl-devel popt-devel

    [root@logstash ~]#
    [root@logstash ~]# tar zxvf nginx-1.11.2.tar.gz

    [root@logstash nginx-1.11.2]# useradd -M -s /bin/login nginx

    [root@logstash nginx-1.11.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

    [root@logstash nginx-1.11.2]# make && make install

    [root@logstash nginx-1.11.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
    [root@logstash nginx-1.11.2]# nginx -t
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

    [root@logstash nginx-1.11.2]# netstat -anput | grep nginx
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 16532/nginx: master

    【ELK收集Nginx日志】

    [root@logstash ~]# cd /usr/local/logstash/config/etc/

    [root@logstash etc]# vim agent.conf                   #将Nginx进行收集并且写入到Redis里面

    input {
    file {
    type => "nginx-access"
    path => "/usr/local/nginx/logs/access.log"
    }
    }
    output {
    redis {
    host => "192.168.20.226"
    port => 6379
    data_type => "list"
    key => "logstash"
    }
    }

    [root@logstash etc]# vim index.conf              #Redis将Nginx日志存储之后,中间过渡给ES,

    input {
    redis {
    host => "192.168.20.226"           #指定Redis缓存服务器地址
    port => "6379"
    data_type => "list"
    key => "logstash"
    type => "redis-input"
    batch_count => 1
    }
    }
    output {
    elasticsearch {
    hosts => "192.168.20.223"           #指定Elasticsearch地址
    }
    }

    后台启动agent和index

    [root@logstash etc]# nohup /usr/local/logstash/bin/logstash -f agent.conf &

    [root@logstash etc]# nohup /usr/local/logstash/bin/logstash -f index.conf &

    [root@logstash etc]# ps -ef | grep java              #查看agent和index进程是否启动

    [root@Redis redis]# while sleep 5;do ab -c 1000 -n 1000 http://192.168.20.225/;done               #随便找一台机器通过压测的方式来使Nginx产生日志,

    我们可以发现Nginx服务器现在产生大量的日志并以logstash格式存储到Redis中

    [root@Redis redis]# redis-cli monitor      #可以通过该命令查看或者进入redis中查看数据是否存储

    [root@Redis redis]# ./bin/redis-cli

     随后,我们会发现,Nginx的日志信息已经可以通过Kibana成功收集并展现出来了;

    ##########################################Redis拓展知识点################################

    9、停止redis实例

      /usr/local/redis/bin/redis-cli shutdown

      或者

      pkill redis-server

    10、让redis开机自启

      vim /etc/rc.local

      加入

      /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis-conf

    11、接下来我们看看/usr/local/redis/bin目录下的几个文件时什么

      redis-benchmark:redis性能测试工具

      redis-check-aof:检查aof日志的工具

      redis-check-dump:检查rdb日志的工具

      redis-cli:连接用的客户端

      redis-server:redis服务进程

    Redis的配置

      daemonize:如需要在后台运行,把该项的值改为yes

      pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址

      bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项

      port:监听端口,默认为6379

      timeout:设置客户端连接时的超时时间,单位为秒

      loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice

      logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上

      database:设置数据库的个数,默认使用的数据库是0

      save:设置redis进行数据库镜像的频率

      rdbcompression:在进行镜像备份时,是否进行压缩

      dbfilename:镜像备份文件的文件名

      dir:数据库镜像备份的文件放置的路径

      slaveof:设置该数据库为其他数据库的从数据库

      masterauth:当主数据库连接需要密码验证时,在这里设定

      requirepass:设置客户端连接后进行任何其他指定前需要使用的密码

      maxclients:限制同时连接的客户端数量

      maxmemory:设置redis能够使用的最大内存

      appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态

      appendfsync:设置appendonly.aof文件进行同步的频率

      vm_enabled:是否开启虚拟内存支持

      vm_swap_file:设置虚拟内存的交换文件的路径

      vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0

      vm_page_size:设置虚拟内存页的大小

      vm_pages:设置交换文件的总的page数量

      vm_max_thrrads:设置vm IO同时使用的线程数量

  • 相关阅读:
    Google Maps 尝鲜
    ASDoc 的一些参数
    一本比较简单易懂的中文python入门教程
    word2010 2007中如何去掉首页页码
    转贴:关于出现java.lang.UnsupportedClassVersionError 错误的原因
    Windows下搭建SVN傻瓜式教程
    Red Hat中jdk1.6.0_03 tomcat6.0.35将hudson.war放入webapp后启动tomcat报错X connection to localhost:11.0 broken
    使用alternatives切换red hat linux的jdk版本
    linux安装ant 1.8.2
    反编译插件jadclips
  • 原文地址:https://www.cnblogs.com/bixiaoyu/p/7739785.html
Copyright © 2011-2022 走看看