centos 安装ELK
准备安装环境
由于本人的centos是通过虚拟机来进行安装的,为了本地电脑能够访问centos系统中的端口,则需要把防火墙进行关闭,通过以下方式进行关闭防火墙。
# vi /etc/sysconfig/selinux
改变SELINUX的值从enforcing 到disabled, 找到SELINUX改变它的值为disabled,SELINUX=disabled,修改完成进行保存。 保存完之后输入reboot命令进行重启。
接着查看防火墙是否被关闭
[root@localhost ~]# /usr/sbin/sestatus SELinux status: disabled
[root@localhost ~]# getenforce Disabled
安装Java Jdk
Elasticsearch 要求安装的版本是1.8的版本,下面我们是安装1.8的方式,通过Oracle网站下载Oracle jdk1.8.
[root@localhost ~]# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http:%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.rpm?AuthParam=1572923902_eec0cc0f1690be19f017e4409dc8249a"
https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.rpm?AuthParam=1572923902_eec0cc0f1690be19f017e4409dc8249a
这个下载连接是登录后的下载连接,也可以在windows电脑上下载完成之后上传到Linux中。
接下来,下载完成之后安装jdk,输入如下命令。
[root@localhost ~]# rpm -ivh jdk-8u231-linux-x64.rpm
安装完成之后,接着检测一下是否安装成功。
[root@localhost ~]# java -version
java verion 1.8.0_231
安装和配置Elasticsearch
在这步。我们将要安装和配置Elasticsearch。安装Elasticsearch 从elastic.co提供的一个tgz安装包,并且配置它运行在localhost。
安装前我们先添加elastic.co key到Linux服务器上。命令如下
[root@localhost ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
接着下载rpm安装包
[root@localhost ~]# curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.2-x86_64.rpm
下载完成之后,接着通过rpm命令进行安装。
[root@localhost ~]# rpm -ivh elasticsearch-5.1.1.rpm
安装完成之后,接着我们进行修改elasticsaerch.yml 配置文件。
进入到/etc/elasticsearch/目录下,接着修改elasticsearch.yml。
[root@localhost ~]# cd /etc/elasticsearch/
[root@localhost ~]#vi elasticsearch.yml
开启内存锁移除bootstrap.memory_lock: true 前面的注释符。这个关闭Elasticsearch的内存切换。 命令如下
bootstrap.memory_lock: true
在配置文件中移除网络块下面的那个 network.host和 http.port 前面的注释。
network.host: localhost
http.port: 9200
保存配置文件并退出。
接下来编辑 elasticsearch.service 文件 中的配置锁。
LimitMEMLOCK=infinity
接着编辑sysconfig配置目录下的Elasticsearch文件。
vi /etc/sysconfig/elasticsearch
移除配置文件中的MAX_LOCKED_MEMORY=unlimited前的注释。
MAX_LOCKED_MEMORY=unlimited
通过上面的配置,Elasticsearch 已经配置完成,Elasticsearch 将运行在localhost 端口为9200.我们关闭内存交换,并且开启所有的内存锁。
重新加载systemd, 开启 Elasticsearch start在启动时,并且开启服务.
[root@localhost ~]# sudo systemctl daemon-reload
[root@localhost ~]# sudo systemctl enable elasticsearch
[root@localhost ~]# sudo systemctl start elasticsearch
等待一会儿,当Eelasticsearch启动, 接着检查Eelasticsearch是否启动,通过以下命令查看是否9200端口是否是 'LISTEN'状态.
[root@localhost ~]# netstat -plntu

接着检查内存锁确保mlockall是enabled,并且检查Elasticsearch 正在运行的通过以下命令.
[root@localhost ~]# curl -XGET 'localhost:9200/_nodes?filter_path=**.mlockall&pretty'
[root@localhost ~]# curl -XGET 'localhost:9200/?pretty'

安装Kibana通过Nginx
在这步,我们将安装Kibana通过Nginx服务器. Kibana将 监听在本地IP地址然而Nginx 将为Kibana应用程序扮演一个反向代理.
接着下载Kibana并安装。
[root@localhost ~]# wget https://artifacts.elastic.co/downloads/kibana/kibana-7.4.2-x86_64.rpm
[root@localhost ~]# rpm -ivh kibana-7.4.2-x86_64.rpm
接着编辑Kibana配置文件.
[root@localhost ~]# vi /etc/kibana/kibana.yml
进入到以下文件中,找到以下命令所对应的行,去掉前面的注释。
server.port: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"
去掉注释之后保存并退出。接着执行以下命令。增加kibana在启动的时候运行。
sudo systemctl enable kibana
sudo systemctl start kibana
Kibana 将作为node应用程序运行在端口5601.
输入以下命令检查是否运行在5601端口。
netstat -plntu

通过上面的步骤,Kibana已经安装完成。接下来,我们安装Nginx 服务器进行反向代理访问Kibana应用。
Nginx 是有效的在 Epel 仓库, 安装epel-release 通过yum.
yum -y install epel-release
接下来安装Nginx 和 httpd-tools 安装包.
yum -y install nginx httpd-tools
那个httpd-tools 安装包包含那个那个web服务器的工具, 我们将使用 htpasswd basic认证Kibana.
编辑Nginx配置文件 并且移除 'server { }' 块, 因此我们能够增加一个新的虚拟主机配置文件.
cd /etc/nginx/
vim nginx.conf
移除server { } 块.保存并退出。

现在我们配置一个虚拟主机配置文件在 conf.d 目录,通过vi 创建'kibana.conf’文件。
vi /etc/nginx/conf.d/kibana.conf
粘贴以下配置到kibana.conf文件中.
server {
listen ;
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;
}
}
接着创建认证文件通过htpasswd命令。
sudo htpasswd -c /etc/nginx/.kibana-user admin 接着输入你的密码
测试 Nginx 配置文件并且确保没有错误. 接着添加配置在系统启动的时候运行并且启动Nginx.
[root@localhost ~]# nginx -t
[root@localhost ~]# systemctl enable nginx
[root@localhost ~]# systemctl start nginx

安装和配置 Logstash
在这步,我们将要安装Logsatash并且配置它从filebeat客户端到中央服务器日志,接着过滤并且转换那个Syslog 数据并且移动它到那个stash (Elasticsearch).
下载Logstash 并且安装它通过rpm.
[root@localhost ~]# curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.4.2.rpm
接着通过rpm命令安装
[root@localhost ~]# rpm -ivh logstash-7.4.2.rpm
生成一个 SSL 证书文件以至于客户端能够标识那个elastic服务器。
[root@localhost ~]# cd /etc/pki/tls
vi openssl.cnf
增加一个新的行服务器标识在'[ v3_ca ]' 部分.
[ v3_ca ]
# Server IP Address
subjectAltName = IP: 10.0.15.10
保存并退出。
生成那个证书文件通过 openssl 命令.
openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout /etc/pki/tls/private/logstash-forwarder.key -out /etc/pki/tls/certs/logstash-forwarder.crt
那个证书文件能够找到在'/etc/pki/tls/certs/' 目录和 '/etc/pki/tls/private/' 目录。
接下来我们创建一个新的Logstash配置文件,我们将创建一个 新的'filebeat-input.conf' 文件配置log源从filebeat。接着 'syslog-filter.conf' 配置文件处理syslog 并且'output-elasticsearch.conf' 配置文件定义 Elasticsearch输出。
进入logstash配置文件目录并且创建新的配置文件i在'conf.d' 的子目录。
cd /etc/logstash/
vi conf.d/filebeat-input.conf
粘贴以下内容进去。
input {
beats {
port =>
ssl => true
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
}
}
创建syslog-filter.conf文件.
vi conf.d/syslog-filter.conf
粘贴以下内容进去。
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
我们使用过滤器插件命名为 'grok' 来转换syslog文件.
接着我们创建配置文件 'output-elasticsearch.conf'.
vi conf.d/output-elasticsearch.conf
粘贴以下内容进去。
output {
elasticsearch { hosts => ["localhost:9200"]
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
保存并退出,接着我们增加logstash 在开机时自动启动。
sudo systemctl enable logstash
sudo systemctl start logstash

安装和配置Filebeat在CentOS客户端
新建一个虚拟机作为客户端
Beats是数据货运,轻量的代理能被安装在那个客户端节点发送巨大的数据从客户端机器到Logstash或者Elasticsearch服务器,有四种beats 是有用的,'Filebeat' 对应 'Log Files', 'Metricbeat' 对应 'Metrics', 'Packetbeat' 对应 'Network Data' 以及 'Winlogbeat' 对应 Windows客户端 'Event Log'.
在这篇教程,我将展示你怎样安装 'Filebeat'传输数据log文件到 Logstash 服务器上通过一个SSL连接.
登录从那个客户端服务器连接到elastic服务器,拷贝certificate文件 从elastic服务器到客户端服务器.
拷贝那个证书文件通过scp命令。
scp root@elk-serverIP://etc/pki/tls/certs/logstash-forwarder.crt .
TYPE elk-server password
创建一个新的目录并把刚才拷贝的那个证书放到该目录下.
sudo mkdir -p /etc/pki/tls/certs/
mv ~/logstash-forwarder.crt /etc/pki/tls/certs/
接下来导入elastic key到客户端服务器.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
下载Filebeat并且安装它通过rpm.
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.4.2-x86_64.rpm
rpm -ivh filebeat-7.4.2-x86_64.rpm
Filebeat已经安装成功, 进入配置目录并且对 'filebeat.yml'进行编辑.
cd /etc/filebeat/
vi filebeat.yml
接着找到paths部分,增加那个新的日志文件, 我们将增加两个日志文件 '/var/log/secure'用于ssh登录日志 并且 '/var/log/messages' 用于 那个服务器日志.
paths:
- /var/log/secure
- /var/log/messages
接着在后面增加一个配置定义那个syslog类型文件。
document-type: syslog
Filebeat已经默认使用Elasticsearch作为输出目标.在这篇教程, 我们将改变它到Logstash,关闭Elasticsearch output 增加 注释在以下命令行。
#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["localhost:9200"]
接着开启Logstash的日志输出。也是在该配置文件下删除注释,并添加以下数据。
output.logstash:
# The Logstash hosts
hosts: ["10.0.15.10:5443"]
bulk_max_size: 1024
ssl.certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
template.name: "filebeat"
template.path: "filebeat.template.json"
template.overwrite: false
保存并退出。
接着开启系统启动时自动启动服务。
sudo systemctl enable filebeat
sudo systemctl start filebeat
使用systemctl status filebeat来进行检查是否启动。
systemctl status filebeat

测试Elastic Stack
centos 安装ELK的更多相关文章
- centos 安装elk监控
下面就是要安装一些收集日志 或者分配日志的工具,我选择的是 Filebeat 来收集日志,然后放到kafka中 让kafka这个消息队列来分配生产者消费者 然后通过Logstash 或者一个国产大神 ...
- CentOS 7.x安装ELK(Elasticsearch+Logstash+Kibana)
第一次听到ELK,是新浪的@ARGV 介绍内部使用ELK的情况和场景,当时触动很大,原来有那么方便的方式来收集日志和展现,有了这样的工具,你干完坏事,删除日志,就已经没啥作用了. 很多企业都表示出他们 ...
- 如何在CentOS 7 / Fedora 31/30/29上安装ELK Stack
原文地址:https://computingforgeeks.com/how-to-install-elk-stack-on-centos-fedora/ 原作者: Josphat Mutai 译者: ...
- 虚拟机创建及安装ELK
虚拟机创建及安装ELK 作者:高波 归档:学习笔记 2018年5月31日 13:57:02 快捷键: Ctrl + 1 标题1 Ctrl + 2 标题2 Ctrl + 3 标题3 C ...
- 安装ELK
1. 安装Elasticsearch a. 下载 : https://download.elasticsearch.org/elasticsearch/release/org/elasticsearc ...
- 基于CentOS6.5或Ubuntu14.04下Suricata里搭配安装 ELK (elasticsearch, logstash, kibana)(图文详解)
前期博客 基于CentOS6.5下Suricata(一款高性能的网络IDS.IPS和网络安全监控引擎)的搭建(图文详解)(博主推荐) 基于Ubuntu14.04下Suricata(一款高性能的网络ID ...
- CentOS安装gitlab,gerrit,jenkins并配置ci流程
CentOS安装gitlab,gerrit,jenkins并配置ci流程 By Wenbin juandx@163.com 2016/4/9 这是我参考了网上很多的文档,配置了这三个软件在一个机器上, ...
- 【推荐】CentOS安装Subversion-1.8.11+HTTP协议支持配置
注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. 我们需要搭建一个自己的SVN服务器. 此外,搭建好的SVN服务器除了需要支持svn协议外,最好还需要支持HTTP协议和HTTPS协 ...
- 【推荐】CentOS安装PHP-5.6.4+扩展安装+安全配置+性能配置
注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 前段时间PHP官方发布了一个重要的安全升级公告,修复了两个unserialize函数的严重漏洞,目前受影响的版本有: ...
随机推荐
- LODOP中table自动分页补线加border
LODOP中可以用ADD_PRINT_TABLE.ADD_PRINT_HTM.ADD_PRINT_HTML.ADD_PRINT_TBURL等可以输出超文本的表格,超文有超过打印项高度或纸张高度自动分页 ...
- 【Leetcode_easy】914. X of a Kind in a Deck of Cards
problem 914. X of a Kind in a Deck of Cards 题意:每个数字对应的数目可以均分为多组含有K个相同数目该数字的数组. 思路:使用 map 结构记录数组中每个元素 ...
- 安卓微信overflow-x overflow-y引发的bug
今天xgo文章图片页上线用微信扫页面发现一个bug,页面可以双击放大缩小. 找了半天原因,发现是图片描述设置了overflow-y引发的bug. 建议在微信场景里满屏显示不能滚动的页面里慎用overf ...
- c# 无法加载DLL:找不到指定的模块(异常来自HRESULT:0X8007007E)
c# 无法加载DLL“xxxx”:找不到指定的模块(异常来自HRESULT:0X8007007E)的一个解决方法 以前的一个c#项目,今天运行的时候突然发现调用DLL时出现了下面的错误. 心中很诧异, ...
- 史上最浅显易懂的RxJava入门教程
RxJava是一个神奇的框架,用法很简单,但内部实现有点复杂,代码逻辑有点绕.我读源码时,确实有点似懂非懂的感觉.网上关于RxJava源码分析的文章,源码贴了一大堆,代码逻辑绕来绕去的,让人看得云里雾 ...
- vmware linux 硬盘空间不足时增加硬盘并挂载
不同的版本的vmware在设置界面中可能稍有不同,基本是一致的. 还有一种方式是扩展,这里没有记录,扩展时需要在虚拟机关机状态下. 1.选择在vmware中点击设置并打开,将光标定位在hard Dis ...
- SpringMVC常用注解@Controller,@Service,@repository,@Component,@Autowired,@Resource,@RequestMapping
1.controller层使用@Controller注解-用于呈现层,(spring-mvc) @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controlle ...
- LeetCode 783. 二叉搜索树结点最小距离(Minimum Distance Between BST Nodes)
783. 二叉搜索树结点最小距离 LeetCode783. Minimum Distance Between BST Nodes 题目描述 给定一个二叉搜索树的根结点 root, 返回树中任意两节点的 ...
- 029 Android 轮播图广告Banner开源框架使用
1.Banner介绍 现在的绝大数app都有banner界面,实现循环播放多个广告图片和手动滑动循环等功能. 2.使用环境配置(具体可见github开源项目) (1)添加依赖 在build.gradl ...
- 【转帖】2011-2018年中国IPv6地址数量及国际出口带宽数走势情况[图]
2011-2018年中国IPv6地址数量及国际出口带宽数走势情况[图] http://www.chyxx.com/industry/201910/791801.html 三亿多ipv4的地址. 接近9 ...