十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在此之前,ELK理论知识我已经在我的上一篇博客已经阐述完了,在本篇博客中我将部署完整的ELK环境,如有不足之处、请大家批评指证。
创新互联建站是专业的河南网站建设公司,河南接单;提供成都网站制作、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行河南网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
一、 ELK安装信息
192.168.10.101 Elasticsearch+kibana 192.168.10.103 Logstash 注释:部署环境应部署JDK1.8版本因为ELK是由java语言开发因此事先部署jdk环境。 |
(一) 我这里已经部署完成
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
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.gz mv elasticsearch-5.3.0 /usr/local/elasticsearch useradd 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.gz mv kibana-5.3.0-linux-x86_64 /usr/local/kibana /usr/local/kibana chown -R elk.root * #改变拥有者 vim /usr/local/kibana/config/ kibana.yml 找到#server.host #去掉注释后面写0.0.0.0 找到# elasticsearch.url: #启动注释后面写自己本机ip+port,如果有节点以逗号为分隔 启动kibana cd /usr/local/kibana/bin nohup ./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.gz mv 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 -y wget -c http://nginx.org/download/nginx-1.12.0.tar.gz tar -xzf nginx-1.12.0.tar.gz useradd www ; cd nginx-1.12.0 ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module make && 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服务,访问如下:
用户名和密码正确,即可登录成功,如下图所示: