首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在 CentOS7 安装 ELK

在 CentOS7 安装 ELK

原创
作者头像
星哥玩云
发布于 2022-06-18 07:28:30
发布于 2022-06-18 07:28:30
1K00
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

ELK是一个成熟的日志系统,主要功能有收集、分析、检索,详细见 elastic官网

本文主要介绍如何在CentOS7下安装最新版本的ELK,当然现在docker已经有完全配置成功的elk容器,安装配置非常方便,但是如果你想自己从安装jdk开始,那这篇博客将能够帮助到你。 安装前了解一下

测试环境:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
centos7 2G 2核;(内存不能再低了) 
hostname:localhost
ip:192.168.1.2

域名:
#绑定hosts
192.168.1.2 elk-stack.co

操作系统及各组件版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
centos-7-x86_64
java8
elasticsearch-6.2.4
kibana-6.2.4
logstash-6.2.4

禁用SELinux

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# vim /etc/sysconfig/selinux

把 SELINUX=enforcing 改为 SELINUX=disabled

下载java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

文件404 从官网下载版本: jdk-8u191-linux-x64.rpm

下载链接在 oracle官网,当然如果你愿意使用java8并且这里的链接可以使用,那么就不需要到oracle官网找jdk的下载链接了。

安装java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# rpm -ivh jdk-8u191-linux-x64.rpm
查看java是否安装成功

# java -version
java version "1.8.0_191"

安装 elasticsearch

1.导入秘钥

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

2.下载elasticsearch

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm

elasticsearch,kibana,logstash的最新下载地址都在这里,当然如果你愿意使用elk6.2.4并且这个的链接可以使用,那么就不需要到官网找下载链接了

3.安装 elasticsearch

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# rpm -ivh elasticsearch-6.2.4.rpm

4.配置 elasticsearch

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# vim /etc/elasticsearch/elasticsearch.yml
取消4359行的注释,行号不一定准确,但一定是下面这几项

bootstrap.memory_lock: true
http.port: 9200

5.启动elasticsearch

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# systemctl daemon-reload
# systemctl enable elasticsearch
# systemctl start elasticsearch
# netstat -plntu |grep 9200
tcp6       0      0 127.0.0.1:9200          :::*                    LISTEN      1850/java           
tcp6       0      0 ::1:9200                :::*                    LISTEN      1850/java  

最后通过 netstat -plntu 查看是否elasticsearch进程是否启动成功,如果有9200的端口这一行输出了那就代表启动成功,如果没有可能需要重启下虚拟机。

安装nginx

1.安装nginx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# yum install epel-release -y
# yum install nginx httpd-tools -y

安装Nginx之前要先安装epel源,可能以后在使用linux的时候你还会添加各种源,就和在nuget添加源的目的一样配置

2.删除默认配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# vim /etc/nginx/nginx.conf

这里把位于3659行之间的Server块删掉,更多的配置项在 /etc/nginx/conf.d/*.conf中

36 include /etc/nginx/conf.d/*.conf;
Server { }
59# Settings for a TLS enabled server.

3.给kibana添加代理

粘贴下面内容,注意粘贴之前先输入 i 进入insert模式,这里域名为 elk-stack.co,然后使用http协议的basic认证,密码稍后添加,然后看location块,当Nginx监听到域名为elk-stack.co,端口为80的请求时,就会转发给本地监听端口5601的进程,这个进程就是kibana,下一步安装它

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# vim /etc/nginx/conf.d/kibana.conf
粘贴一下内容
server {
listen 80;

server_name elk-stack.co;

auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.kibana-user;

location / {
    proxy_pass http://localhost:5601;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    } 
}

4.给elasticsearch添加代理

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# vim /etc/nginx/conf.d/elasticsearch.conf

server {
    listen 81;

    server_name elk-stack.co;

    location / {
        proxy_pass http://localhost:9200;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    } 
}

添加一个basic认证

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# htpasswd -c /etc/nginx/.kibana-user admin

然后输入你的密码,记住最后要通过这个来登录kibana的 测试Nginx配置并启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# nginx -t

如果出现 test failed,就回过头检查/etc/nginx/conf.d/kibana.conf和/etc/nginx/nginx.conf这两个文件,肯定是不小心弄错了。 如果输出 test is successful,那么就可以启动 nginx 了 5.启动nginx并且加入开机启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# systemctl enable nginx
# systemctl start nginx

安装kibana

1.下载kibana

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-x86_64.rpm

2.安装kibana

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# rpm -ivh kibana-6.2.4-x86_64.rpm

3.配置kibana

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# vim /etc/kibana/kibana.yml

取消2721行的注释,行号不一定准确,但一定是下面这几项

server.port: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"

4.启动kibana

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# systemctl enable kibana
# systemctl start kibana
# netstat -tunpl|grep 5601

和elasticsearch一样,最后通过netstat -plntu查看kibana是否启动成功,如果有端口号为5601的输出那就代表kibana启动成功了

安装 logstash

1.下载 logstash

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.rpm

2.安装logstash

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# rpm -ivh logstash-6.2.4.rpm

3.启动 logstash

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# systemctl enable logstash
# systemctl start logstash

浏览器访问kibana

配置本地host

如果你的电脑是win10,并且安装目录在C盘,编辑文件C:\Windows\System32\drivers\etc\hosts添加这一行

192.168.1.2 elk-stack.co 打开端口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# firewall-cmd --zone=public --add-port=80/tcp --add-port=81/tcp --permanent
# firewall-cmd --reload
或者
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 81 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart

现在就可以本地通过浏览输入elk-stack.co,访问kibana了! 但是如果出现 lookup elk-stack.co on 127.0.0.1:53: no such host,可能是host文件的修改还没有生效,重启一下电脑就可以,如果重启还是不行参考这里,实在不行就通过虚拟机的ip地址直接访问就行了

查看es

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
Redis常见问题指北
编者注:笔者整理了一份【Redis不完全指南】,包含了很多详细的知识点和Redis经典面试题,可关注「TopCoder」公众号,发送 Reids 来获取~
luoxn28
2019/11/06
8910
redis缓存设计-Redis(八)
1、hgetall,lrange,smembers,zrange,sinter等并非不能使用,要指定明确的值,遍历的话要使用hscan、sscan、zscan代替。
keying
2023/09/05
2680
redis缓存设计-Redis(八)
redis的设计规范
部分内容参考:阿里redis开发规范 同时,结合shigen在实习中的实践经验总结。
shigen
2023/09/16
3280
Redis 在 Web 项目中的应用与实践
Redis作为一个开源的(BSD)基于内存的高性能存储系统,已经被各大互联网公司广泛使用,并且有着诸多的应用场景。本篇文章将基于PHP来详细讲解Redis在Web项目中的主要应用与实践。
matinal
2020/11/27
7030
Redis内存淘汰和过期删除策略原理分析
Redis是一个内存键值对数据库,所以对于内存的管理尤为重要。Redis内部对于内存的管理主要包含两个方向,过期删除策略和数据淘汰策略。 思考:
政采云前端团队
2023/10/25
5430
Redis内存淘汰和过期删除策略原理分析
Redis-17Redis内存回收策略
Redi s 也会因为内存不足而产生错误 , 也可能因为回收过久而导致系统长期的停顿,因此掌握执行回收策略十分有必要。在 Redis 的配置文件中,当 Redis 的内存达到规定的最大值时,允许配置 6 种策略中的一种进行淘汰键值,并且将一些键值对进行回收。
小小工匠
2021/08/17
3950
lru算法和redis的lru
LRU-K中的K代表最近使用的次数,因此LRU可以认为是LRU-1。LRU-K的主要目的是为了解决LRU算法“缓存污染”的问题,其核心思想是将“最近使用过1次”的判断标准扩展为“最近使用过K次”。
earthchen
2020/09/24
4530
Redis 21问,你接得住不?
Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。
Java技术栈
2019/09/26
8970
redis相关问题汇总
Redis 本质上是一个 Key-Value 类型的内存数据库, 整个数据库加载在内存当中进行操作, 定期通过异步操作把数据库数据 flush 到硬盘上进行保存。
OwenZhang
2021/12/07
4330
redis相关问题汇总
13. 谈谈 Redis 的过期策略
Redis 会将每个设置了过期时间的 key 放入到一个独立的字典中,默认每 100ms 进行一次过期扫描:
用户11332765
2024/10/28
3290
Redis淘汰删除策略
Redis数据库作为缓存系统使用通常只保留部分的热点数据。当热点数据超过Redis设置的内存总大小时就需要删除陈旧的数据,为键空间设计一套高效的过期策略将使得应用程序的内存需求更可控。本文介绍Redis的键淘汰策略以及在Redis内部是如何实现的。
一生何求
2019/12/21
1.5K0
redis系列之淘汰删除
redis可以针对key设置过期时间,如果到了过期时间,redis是如何让其失效呢?redis提供了两种让key过期的方法,一种是主动删除,另一种被动删除。
用户4361942
2019/05/28
9770
面试题:2018最全Redis面试题整理
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
搜云库技术团队
2019/10/18
6900
Redis和消息队列使用实战
  消息队列是在乐视这边非常普遍使用的技术。在我们部门内部,不同的项目使用的消息队列实现也不一样。下面是支付系统的流转图(部门兄弟画的,借用一下): 从图中可以看到,里面用到了kafka消息队列。作用
静儿
2018/07/02
1.2K0
Redis过期--淘汰机制的解析和内存占用过高的解决方案
Redis在我们平时的开发或者练习的时候,往往很容易忽略一个问题,那就是我们的Redis内存占满的问题。但是在真是的商业开发中,Redis的实际占满是真正会存在这样的问题的。那么如果Redis在某一刻占满内存,我们又没有对它进行相应的设置它会出现什么情况呢?会不会导致我们整个因为使用Redis而整个业务垮掉?
码农编程进阶笔记
2021/07/20
6570
Redis过期策略和数据淘汰机制
redis 会将每个设置了过期时间的 key 放入到一个独立的字典中,以后会定时遍历这个字典来删除到期的 key。除了定时遍历之外,它还会使用惰性策略来删除过期的 key,所谓惰性策略就是在客户端访问这个 key 的时候,redis 对 key 的过期时间进行检查,如果过期了就立即删除。
程序员酷森
2020/10/19
1.3K0
Redis过期策略和数据淘汰机制
Redis 面试题
阿彬学java
2025/01/13
1360
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
34、一个 Redis 实例最多能存放多少的 keys?List、Set、Sorted Set他们最多能存放多少元素?
程序员追风
2019/11/25
1.2K0
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis6.0.6的三大内存过期策略和八大淘汰策略
Redis在我们日常开发中是经常用到的,Redis也是功能非常强大,可以进行缓存,还会有一些排行榜、点赞、消息队列、购物车等等;当然还有分布式锁Redisson,我们使用肯定少不了集群!小编最近学习到一些内存如果满了Redis是怎么操作呢?肯定像我们JVM一样,有回收或者淘汰的机制!今天小编和大家一起学习一下,小编也是看了阳哥的课,觉得讲的很好,记录一下,希望可以帮助到大家!!
掉发的小王
2022/07/11
4510
redis数据结构、持久化、缓存淘汰策略
Redis 单线程高性能,它所有的数据都在内存中,所有的运算都是内存级别的运算,而且单线程避免了多线程的切换性能损耗问题。redis利用epoll来实现IO多路复用,将连接信息和事件放到队列中,依次放到文件事件分派器,事件分派器将事件分发给事件处理器。
业余草
2019/09/06
1.1K0
相关推荐
Redis常见问题指北
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档