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同时使用的线程数量
ELK+Redis+Nginx服务数据存储以及Nginx日志的收集的更多相关文章
- Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)
标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...
- 【Redis】redis各类型数据存储分析
一.简介和应用 Redis是一个由ANSI C语言编写,性能优秀.支持网络.可持久化的K-K内存数据库,并提供多种语言的API.它常用的类型主要是 String.List.Hash.Set.ZSet ...
- 启动Nginx服务失败:Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
首次接触nginx,安装完使用命令 service nignx restart 后,出现这个错误,并按照提示给出的命令查看错误详情 systemctl status nginx.service ...
- linux基础(5)- nginx服务、nfs服务
一.nginx服务 源码安装: yum install gcc-* glibc-* openssl openssl-devel pcre pcre-devel zlib zlib-devel -yls ...
- nginx服务优化大全
第18章 nginx服务优化 18.1 复习以前的nginx知识 18.1.1 复习nginx编译安装的3部曲 ./configure 配置(开启/关闭功能),指定安装目录 make ...
- Redis数据结构(一)-Redis的数据存储及String类型的实现
1 引言 Redis作为基于内存的非关系型的K-V数据库.因读写响应快速.原子操作.提供了多种数据类型String.List.Hash.Set.Sorted Set.在项目中有着广泛的使用,今天我们来 ...
- samba服务和nginx服务
一 samba服务 1 samba的功能:samba是一个网络服务器,是连接linux和windows之间共享文件的. 2 samba服务的启动,停止和重启: (1) 要启动Samba服务,只需用户 ...
- Nginx服务优化详解
Nginx服务优化详解 1.隐藏Nginx版本信息 编辑主配置文件nginx.conf,在http标签中添加代码 server_tokens off;来隐藏软件版本号. 2.更改Nginx服务启动的默 ...
- linux运维、架构之路-Nginx服务
一.Nginx服务 1.介绍 Nginx软件常见的使用方式或架构为:LNMP(linux nginx mysql php),Nginx三大主要功能,web网站服务,反向代理负载均衡(n ...
随机推荐
- Gitbook
2017年9月13日 17:12:20 星期三 gitbook 可以将markdown格式的文件编译成html格式 放在当前目录里的_book目录里(需要手动创建, 也可以指定编译后的html文件放到 ...
- 海康JAVA SDK库动态路径加载
海康JAVA SDK初始化路径默认是放在classes下面,见下: HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("HCNetSDK&q ...
- 转载:Eureka 开发时快速剔除失效服务
原文地址:https://www.cnblogs.com/flying607/p/8494568.html 服务端配置: # 关闭保护机制 eureka.server.enable-self-pres ...
- 正版phpstorm,webstorm,goland(Jetbrains系列都可以)免费激活步骤(图文详解)(亲测有效)
1 前言 Jetbrains系列都可以,包括webstrom,phpstorm,goland等. 附加其它方案如下: webstrom(注册机) goland(破解补丁) 2 步骤 1. 可以先试用, ...
- which命令和bin目录
命令: which 作用: 查看执行命令所在位置 使用: which ls which useradd 等等... bin和sbin: 绝大多数可执行文件都保存在 /bin./sbin./usr/bi ...
- MYSQL修改字段
当字段为空则插入0,不为空则原来的值 UPDATE t_pm_scheduleSET lesson_room_id1 = IFNULL(lesson_room_id1, 0), lesson_roo ...
- matplotlib报错_tkinter.TclError: no display name and no $DISPLAY environment variable
import matplotlib import matplotlib.pyplot as plt fig=plt.figure() #交互式测试,此时报错 解决办法,在引用后添加下面这一行 matp ...
- 做了5年的Android,我转Java后台了!
很多人做Java开发4,5年后,都会感觉自己遇到瓶颈.什么都会又什么都不会,如何改变困境,为什么很多人写了7,8年还是一个码农,工作中太多被动是因为不懂底层原理.公司的工作节奏又比较快,难有机会学习架 ...
- SoapUI、Jmeter、Postman三种接口测试工具的比较分析
前段时间忙于接口测试,也看了几款接口测试工具,简单从几个角度做了个比较,拿出来与诸位分享一下吧.各位如果要转载,请一定注明来源,最好在评论中告知博主一声,感谢.本报告从多个方面对接口测试的三款常用工具 ...
- java虚拟机内存不足,“Could not create the Java Virtual Machine”问题解决方案
java虚拟机内存不足,"Could not create the Java Virtual Machine"问题解决方案 在运行java程序时,遇到问题"Could n ...