zoukankan      html  css  js  c++  java
  • 在 CentOS7 安装 ELK【转】

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

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

    安装前了解一下

    操作系统及各组件版本

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

    禁用SELinux

    [root@localhost ~]# vim /etc/sysconfig/selinux

    把 SELINUX=enforcing 改为 SELINUX=disabled。这一步具体原因我不清楚,但是在公司安装成功,但是晚上回去在自己电脑上再安装一遍发现最后在浏览器登录kibana始终都是报Nginx502Bad,确认所有步骤都没有问题,最后就是因为漏掉这项配置没有改,改完OK!

    java

    下载

    [root@localhost ~]# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http:%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.rpm"

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

    安装

    [root@localhost ~]# rpm -ivh jdk-8u171-linux-x64.rpm

    查看java是否安装成功

    [root@localhost ~]# java -version
    java version "1.8.0_171"

    第一次安装的时候,因为考虑到jdk是向下兼容的,所以尝试了java10,结果在安装logtash的时候失败了,折腾了会还是老老实实的装回了java8

    elasticsearch

    导入秘钥

    [root@localhost ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

    下载

    [root@localhost ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm

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

    安装

    [root@localhost ~]# rpm -ivh elasticsearch-6.2.4.rpm

    配置

    [root@localhost ~]# vim /etc/elasticsearch/elasticsearch.yml

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

    bootstrap.memory_lock: true
    http.port: 9200

    启动

    [root@localhost ~]# systemctl daemon-reload
    [root@localhost ~]# systemctl enable elasticsearch
    [root@localhost ~]# systemctl start elasticsearch
    [root@localhost ~]# netstat -plntu

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

    nginx

    代理服务器了解一下(老手跳过)

    Nginx在这里作为一个代理服务器,熟悉asp.net开发者肯定知道iis,我们把asp.net项目部署iis上,假设配置一个8080端口,然客户端就可以通过IP地址加8080端口直接浏览asp.net应用程序了,这里Nginx是在客户端和asp.net应用程序之间的一个代理服务器,如果Nginx监听的端口是80,转发地址是localhost:8080,那么客户端就可以通过IP地址加80端口访问asp.net应用程序了。

    安装

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

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

    配置

    删除默认配置

    [root@localhost ~]# vim /etc/nginx/nginx.conf

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

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

    给kibana添加代理

    [root@localhost ~]# vim /etc/nginx/conf.d/kibana.conf

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

    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;
    } }

    给elasticsearch添加代理

    [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认证

    [root@localhost ~]# htpasswd -c /etc/nginx/.kibana-user admin

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

    测试Nginx配置并启动

    [root@localhost ~]# nginx -t

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

    [root@localhost ~]# systemctl enable nginx
    [root@localhost ~]# systemctl start nginx

    kibana

    下载

    [root@localhost ~]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-x86_64.rpm

    安装

    [root@localhost ~]# rpm -ivh kibana-6.2.4-x86_64.rpm

    配置

    [root@localhost ~]# vim /etc/kibana/kibana.yml

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

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

    启动

    [root@localhost ~]# systemctl enable kibana
    [root@localhost ~]# systemctl start kibana
    [root@localhost ~]# netstat -plntu

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

    logstash

    下载

    [root@localhost ~]# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.rpm

    安装

    [root@localhost ~]# rpm -ivh logstash-6.2.4.rpm

    启动

    [root@localhost ~]# systemctl enable logstash
    [root@localhost ~]# systemctl start logstash

    浏览器访问kibana

    配置本地host

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

    192.168.93.133 elk-stack.co

    打开端口

    [root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --add-port=81/tcp --permanent
    [root@localhost ~]# firewall-cmd --reload

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

     

    查看es

    如果出现这两张图那就安装成功啦!

    ELK的功能非常强大,自己在逐步学习中,但是发现除了看官方文档似乎很难找的好的学习资料了,英文不好看起来虽然痛苦但是看懂还有有收获的,所以我把我的学习过程记录下来,希望可以帮助正在学习ELK的你。

    参考资料

    https://www.howtoforge.com/tutorial/how-to-install-elastic-stack-on-centos-7/
    https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-centos-7
    https://www.elastic.co/guide/index.html

  • 相关阅读:
    JavaWeb_(Jar)使用fastjson解析json和序列化对象
    JavaWeb_JSTL标签数据的存储
    JavaWeb_EL表达式存储数据及获得项目路径
    JavaWeb_(MVC)管理员后台商品查询demo
    JavaWeb_(设计模式)单例模式
    JavaWeb_客户端相对/绝对路径和服务器端路径
    JavaWeb_Servlet生命周期
    控制导航条最后一个标签样式的三种方法
    JS跳转到顶部的方法
    数学对象Math ceil()、floor()、round()方法
  • 原文地址:https://www.cnblogs.com/loveapple/p/9951874.html
Copyright © 2011-2022 走看看