千家信息网

ELK环境搭建+安全认证、Nginx日志收集

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,在此之前,ELK理论知识我已经在我的上一篇博客已经阐述完了,在本篇博客中我将部署完整的ELK环境,如有不足之处、请大家批评指证。一、 ELK安装信息192.168.10.101 Elasticsear
千家信息网最后更新 2025年02月03日ELK环境搭建+安全认证、Nginx日志收集

在此之前,ELK理论知识我已经在我的上一篇博客已经阐述完了,在本篇博客中我将部署完整的ELK环境,如有不足之处、请大家批评指证。

  1. 一、 ELK安装信息

  2. 192.168.10.101 Elasticsearch+kibana

    192.168.10.103 Logstash

    注释:部署环境应部署JDK1.8版本因为ELK是由java语言开发因此事先部署jdk环境。
  3. (一) 我这里已经部署完成

  4. java version "1.8.0_131"

  5. Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

  6. Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

(二) 下载Elasticsearch+kibana,由于我们是在一台服务器部署ES和kibana因此我们安装顺序安装。下载ES并配置

tar zxvf elasticsearch-5.3.0.tar.gzmv elasticsearch-5.3.0 /usr/local/elasticsearchuseradd elk   #由于ES不能使用root用户启动,因此创建普通用户elk不用设置密码chown -R elk /usr/local/elasticsearch/     #改变文件拥有者vim  /usr/local/elasticsearch/config jvm.options            #进入到这个文件并修改内存因为我的虚拟机内存是2G的因此要改为1G,如果你的虚拟机是4G或者8G你就可以忽略此选项。vim  usr/local/elasticsearch/config/ elasticsearch.yml找到# network.host这一行,并修改为0.0.0.0     #设置监听ip  su - elk     #切换用户/usr/local/elasticsearch/bin/elasticsearch -d     #-d、代表后台启动netstat -ntlp|grep -E "9200|9300"   #查看端口是否启动   Port 9200      ES对外数据存储端口,客户端连接该端口发送和接收数据;  Port 9300      ES对内部分布式集群节点的端口,分布式节点之间通信;

1. 至此ES已经配置完,接下来部署Kibana

tar zxvf kibana-5.3.0-linux-x86_64.tar.gzmv kibana-5.3.0-linux-x86_64 /usr/local/kibana/usr/local/kibanachown -R elk.root *       #改变拥有者vim /usr/local/kibana/config/ kibana.yml找到#server.host       #去掉注释后面写0.0.0.0找到# elasticsearch.url:    #启动注释后面写自己本机ip+port,如果有节点以逗号为分隔启动kibanacd  /usr/local/kibana/binnohup ./kibana &    以后台方式启动netstat -tnl|grep -E "9200|9300|5601"    #端口是否启动,5601为kibana端口打开浏览器输入kibana服务器ip,成功访问出现如下界面

2、默认界面是英文界面,不方便管理人员因此我们要对ELK-WEB进行中文汉化支持

        下载地址:wget http://bbs.jfedu.net/download/Kibana_Hanization_2018.tar.gz        由于汉化过程是不可逆的,因此汉化前应把Kibana备份        cp kibana/ kibana.bak -a        tar xzf Kibana_Hanization_2018.tar.gz        python main.py /usr/local/kibana

(1)打开浏览器查看是否汉化成功





二、 ES+Kibana已经配置完成,接下来配置客户端Logstash

tar xzf logstash-5.3.0.tar.gzmv logstash-5.3.0 /usr/local/logstash/usr/local/logstash mkdir   etc        #默认没有etc文件,所以新建一个因为这里放的都是Logstash收集客户端的指令

(一)我们在客户端收集Nginx日志

vim /usr/local/logstash/etc/nginx_logs.conf input {   file {       type => "nginx-access"       path => "/usr/local/nginx/logs/access.log"   }}output {  elasticsearch {    hosts => "192.168.10.101"   #填写ES服务器的地址    }}nohup ../bin/logstash -f nginx_log.conf &  #启动Logstash

1、 打开Kibana浏览器清晰看到Nginx访问日志

三、Kibana安全认证

当我们安装完ES、Kibana启动进程,可以直接在浏览器访问,这样不利于数据安全,接下来我们利用Apache的密码认证进行安全配置。通过访问Nginx转发只ES和kibana服务器。

Kibana服务器安装Nginx:

um install pcre-devel pcre -ywget -c http://nginx.org/download/nginx-1.12.0.tar.gz tar -xzf nginx-1.12.0.tar.gzuseradd www ;cd nginx-1.12.0./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_modulemake && make install

(一)、修改Nginx.conf配置文件代码如下:

worker_processes  1;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    sendfile        on;    keepalive_timeout  65;    upstream  jvm_web1 {    server    127.0.0.1:5601  weight=1  max_fails=2  fail_timeout=30s;}    server {        listen  80;        server_name  localhost;        location / {         proxy_set_header  Host  $host;         proxy_set_header  X-Real-IP  $remote_addr;         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;         proxy_pass http://jvm_web1;        }    }}

1、修改kibana配置文件监听IP为127.0.0.1:

2、重启kibana和Nginx服务,通过Nginx 80端口访问如下:

3、添加Nginx权限认证:

Nginx.conf配置文件location /中加入如下代码:

auth_basic   "ELK Kibana Monitor Center"; auth_basic_user_file   /usr/local/nginx/html/.htpasswd;    通过Apache加密工具htpasswd生成用户名和密码:htpasswd -c /usr/local/nginx/html/.htpasswd admin

4、重启Nginx web服务,访问如下:


用户名和密码正确,即可登录成功,如下图所示:


0