title: 基于Centos快速搭建ELK
categories:


基于Centos快速搭建ELK

ELK是一个成熟的日志系统,主要功能有收集、分析、检索,详细见 elastic官网。 本文主要介绍如何在CentOS7下安装最新版本的ELK,当然现在docker已经有完全配置成功的elk容器,安装配置非常方便.

环境准备

  • centos-7-x86_64
  • java8
  • elasticsearch-7.6.2
  • kibana-7.6.2
  • logstash-7.6.2

    安装过程

    关闭防火墙和Selinux

    关闭Selinux
    1. vim /etc/sysconfig/selinux
    1. SELINUX=disabled #需重启永久生效
    2. wq #保存退出
    3. setenforce 0 #临时生效
    基于Centos快速搭建ELK - 图1
    关闭Firewalld
    1. systemctl stop firewalld #关闭防火墙
    2. systemctl disable firewalld #禁止开机自启
    基于Centos快速搭建ELK - 图2

    安装JDK

    先是确认环境rpm -qa|grep Java
    如果有其他版本的请删除
    rpm–e —nodeps java-*
    检查是否删除
    java –version

    安装Elasticsearch

  1. 导入密钥

    1. rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
  2. 下载最新的安装包

    1. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-x86_64.rpm

    下载较慢的话建议科学下载

  3. 安装

    1. rpm -ivh elasticsearch-7.6.2-x86_64.rpm

    基于Centos快速搭建ELK - 图3

  4. 配置

    1. vim /etc/elasticsearch/elasticsearch.yml

    取消以下两行的注释
    基于Centos快速搭建ELK - 图4
    基于Centos快速搭建ELK - 图5

  5. 启动

    1. [root@localhost ~]# systemctl daemon-reload
    2. [root@localhost ~]# systemctl enable elasticsearch
    3. [root@localhost ~]# systemctl start elasticsearch
    4. [root@localhost ~]# netstat -plntu

    观察到9200端口,证明启动成功
    基于Centos快速搭建ELK - 图6

    安装Nginx

  6. 安装

    1. [root@localhost ~]# yum install epel-release -y
    2. [root@localhost ~]# yum install nginx httpd-tools -y

    安装Nginx之前要先安装epel源

  7. 配置

    1. vim /etc/nginx/nginx.conf

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

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

    基于Centos快速搭建ELK - 图7

    Kibanna添加代理

    1. vim /etc/nginx/conf.d/kibana.conf

    这里域名为 elk-stack.co,然后使用http协议的basic认证,密码稍后添加,然后看location块,当Nginx监听到域名为elk-stack.co,端口为80的请求时,就会转发给本地监听端口5601的进程,这个进程就是kibana,下一步安装它,内容如下:

  1. server {
  2. listen 80;
  3. server_name elk-stack.co;
  4. auth_basic "Restricted Access";
  5. auth_basic_user_file /etc/nginx/.kibana-user;
  6. location / {
  7. proxy_pass http://localhost:5601;
  8. proxy_http_version 1.1;
  9. proxy_set_header Upgrade $http_upgrade;
  10. proxy_set_header Connection 'upgrade';
  11. proxy_set_header Host $host;
  12. proxy_cache_bypass $http_upgrade;
  13. } }

基于Centos快速搭建ELK - 图8

Elasticsearch添加代理

  1. vim /etc/nginx/conf.d/elasticsearch.conf

当Nginx监听到域名为elk-stack.co,端口为81的请求时,就会转发给本地监听端口9200的进程,这个进程就是Elasticsearch

  1. server {
  2. listen 81;
  3. server_name elk-stack.co;
  4. location / {
  5. proxy_pass http://localhost:9200;
  6. proxy_http_version 1.1;
  7. proxy_set_header Upgrade $http_upgrade;
  8. proxy_set_header Connection 'upgrade';
  9. proxy_set_header Host $host;
  10. proxy_cache_bypass $http_upgrade;
  11. } }

基于Centos快速搭建ELK - 图9

添加basic认证

  1. htpasswd -c /etc/nginx/.kibana-user admin

然后输入你的密码,记住最后要通过这个来登录kibana的

测试Nginx配置

  1. nginx -t

出现如下证明Nginx成功
基于Centos快速搭建ELK - 图10

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

  1. systemctl enable nginx
  2. systemctl start nginx

安装Kibana

  1. 下载好对应的rpm包

    1. rpm -ivh kibana-7.6.2-x86_64.rpm

    基于Centos快速搭建ELK - 图11

  2. 修改Kibana配置

    1. vim /etc/kibana/kibana.yml
  3. 取消2、7、28行的注释,行号不一定准确,但一定是下面这几项(各个版本行号可能有出入)

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

    基于Centos快速搭建ELK - 图12
    基于Centos快速搭建ELK - 图13
    基于Centos快速搭建ELK - 图14

  4. 启动Kibana

    1. systemctl enable kibana
    2. systemctl start kibana
    3. netstat -plntu

    出现5601端口代表Kibana启动成功
    基于Centos快速搭建ELK - 图15

    安装Logstash

  5. 下载对应的rpm包

  6. 安装

    1. rpm -ivh logstash-7.6.2.rpm

    基于Centos快速搭建ELK - 图16

  7. 启动

    1. systemctl enable logstash
    2. systemctl start logstash

    安装成功

    访问对应ip的80端口
    基于Centos快速搭建ELK - 图17
    如需用上面的域名访问,添加一条hosts就行

    后面ELK优化敬请期待下一篇文章~