准备安装环境

由于本人的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的更多相关文章

  1. centos 安装elk监控

    下面就是要安装一些收集日志 或者分配日志的工具,我选择的是 Filebeat 来收集日志,然后放到kafka中 让kafka这个消息队列来分配生产者消费者  然后通过Logstash 或者一个国产大神 ...

  2. CentOS 7.x安装ELK(Elasticsearch+Logstash+Kibana)

    第一次听到ELK,是新浪的@ARGV 介绍内部使用ELK的情况和场景,当时触动很大,原来有那么方便的方式来收集日志和展现,有了这样的工具,你干完坏事,删除日志,就已经没啥作用了. 很多企业都表示出他们 ...

  3. 如何在CentOS 7 / Fedora 31/30/29上安装ELK Stack

    原文地址:https://computingforgeeks.com/how-to-install-elk-stack-on-centos-fedora/ 原作者: Josphat Mutai 译者: ...

  4. 虚拟机创建及安装ELK

    虚拟机创建及安装ELK 作者:高波 归档:学习笔记 2018年5月31日 13:57:02 快捷键: Ctrl + 1    标题1 Ctrl + 2    标题2 Ctrl + 3    标题3 C ...

  5. 安装ELK

    1. 安装Elasticsearch a. 下载 : https://download.elasticsearch.org/elasticsearch/release/org/elasticsearc ...

  6. 基于CentOS6.5或Ubuntu14.04下Suricata里搭配安装 ELK (elasticsearch, logstash, kibana)(图文详解)

    前期博客 基于CentOS6.5下Suricata(一款高性能的网络IDS.IPS和网络安全监控引擎)的搭建(图文详解)(博主推荐) 基于Ubuntu14.04下Suricata(一款高性能的网络ID ...

  7. CentOS安装gitlab,gerrit,jenkins并配置ci流程

    CentOS安装gitlab,gerrit,jenkins并配置ci流程 By Wenbin juandx@163.com 2016/4/9 这是我参考了网上很多的文档,配置了这三个软件在一个机器上, ...

  8. 【推荐】CentOS安装Subversion-1.8.11+HTTP协议支持配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. 我们需要搭建一个自己的SVN服务器. 此外,搭建好的SVN服务器除了需要支持svn协议外,最好还需要支持HTTP协议和HTTPS协 ...

  9. 【推荐】CentOS安装PHP-5.6.4+扩展安装+安全配置+性能配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 前段时间PHP官方发布了一个重要的安全升级公告,修复了两个unserialize函数的严重漏洞,目前受影响的版本有: ...

随机推荐

  1. Eureka&Zookeeper&Consul 原理与对比

    CAP 定理CAP定理:CAP定理又称CAP原则,指的是在一个分布式系统中,一致性(Consistency).可用性(Availability).分区容错性(Partition tolerance). ...

  2. ALT+J 多行编辑

    很方便!!!

  3. kafka生产者消费者

    import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.Co ...

  4. Python3中真真假假True、False、None等含义详解

    概述 在Python中,不仅仅和类C一样的真假类似,比如1代表真,0代表假.Python中的真假有着更加广阔的含义范围,Python会把所有的空数据结构视为假,比如[](空列表).{}(空集合).'' ...

  5. 定期备份和清理gitlab文件

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019-12-05 14:39 # @Author : Anthony # @Emai ...

  6. python学习-51 shelve模块

    import shelve f=shelve.open(r'shelve') #f['stu_info'] = {'name':'john','age':'18'} #f['stu2_info'] = ...

  7. Python random模块(以后用到一个再更新一个)

    random模块是产生随机数的模块 1.random.random() 这是产生0~1之间一个随机浮点数,但是不会包括1 import random num = 0 while num < 10 ...

  8. 20191104-基于Python计数排序算法分析

    计数排序 计数排序算法没有用到元素间的比较,它利用元素的实际值来确定它们在输出数组中的位置,也就是说元素从未排序状态变为已排序状态的过程,是由额外空间的辅助和元素本身的值决定的,将每个元素出现的次数记 ...

  9. Scratch编程:初识Scratch及编程工具安装(一)

    “ Scratch是一款由美国麻省理工学院(MIT)设计开发的少儿编程工具.” Scratch采用可视化.模块化的编程方式,非常适合青少年作为初次接触编程的工具和语言来学习,进而用其编写充满趣味的小程 ...

  10. PB笔记之日期函数

    https://wenku.baidu.com/view/a0d5f16fb84ae45c3b358cc7.html this.object.yjzzrq[row]= RelativeDate(dat ...