ELK6.6 部署安装以及配置

ELK 是一套整体解决方案, 是Elasticsearch + Logstash + Kibana 这种架构的简写。是一种日志分平台析的架构。Elasticsearch: 负责日志检索和存储,Logstash: 负责日志的收集和分析,处理,Kibana: 负责日志的可视化

功能:

分布式日志数据集中式查询和管理

系统监控,包含系统硬件和应用各个组件的监控

故障排查

安全信息和事件管理

报表功能

—————————————————————————————

 

环境: Centos7

关闭Iptables

关闭Selinux

部署规划:

192.168.1.251 部署 Kibana6.6

192.168.1.242 部署 Elasticsearch6.6+jdk1.8

192.168.1.250 部署 Logstash6.6+jdk1.8

一、 JDK1.8环境搭建

(1)JDK二进制安装:

[root@elasticsearch01 ~] tar -zxf jdk-8u201-linux-x64.tar.gz

[root@elasticsearch01 ~]mv jdk1.8.0_201 /usr/local/ # 解压到对应安装目录/usr/local/

[root@elasticsearch01 ~] /usr/local/jdk1.8.0_201/bin/java -version #验证安装

(2)配置Java环境变量/etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_201/

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

[root@elasticsearch01 ~] source /etc/profile

[root@elasticsearch01 ~] java -version #验证环境变量

二、Elasticsearch 安装

(1)Elasticsearch安装:(Elasticsearch的tar包是已经编译好的,下载后直接使用即可)

[root@elasticsearch01 ~] tar -zxf elasticsearch-6.6.0.tar.gz

[root@elasticsearch01 ~] mv elasticsearch-6.6.0 /usr/local/

(2)Elasticsearch配置文件修改:

[root@elasticsearch01 ~]cp /usr/local/elasticsearch-6.6.0/config/elasticsearch.yml /usr/local/elasticsearch-6.6.0/config/elasticsearch.yml-bak

[root@elasticsearch01 ~]vim /usr/local/elasticsearch-6.6.0/config/elasticsearch.yml

# 数据目录

path.data: /usr/local/elasticsearch-6.6.0/data

# log 目录

path.logs: /usr/local/elasticsearch-6.6.0/logs

#监听地址(监听在任意地址)

network.host: 0.0.0.0

#监听端口

http.port: 9200

(3)JVM的内存限制更改:(内存不大,最好不要做限制,默认大小为1G内存)

[root@elasticsearch01 ~] vim /usr/local/elasticsearch-6.6.0/config/jvm.options

-Xms2048M

-Xmx2048M

(4)句柄数,进程数修改:

最大文件打开数调整

[root@elasticsearch01 ~] vim /etc/security/limits.conf

* – nofile 65536

最大打开进程数调整

[root@elasticsearch01 ~] vim /etc/security/limits.d/20-nproc.conf

* – nproc 10240

修改后添加如下一行,lougout 才能生效

[root@elasticsearch01 ~] vim /etc/pam.d/login

session required /lib/security/pam_limits.so

(5)修改内核参数调整

[root@elasticsearch01 ~]# Vim /etc/sysctl.conf

vm.max_map_count = 262144

[root@elasticsearch01 ~]# sysctl -p

(6) 创建启动 用户elk:

[root@elasticsearch01 ~] useradd -s /sbin/nologin elk

[root@elasticsearch01 ~] chown -R elk:elk /usr/local/elasticsearch-6.6.0/

[root@elasticsearch01 ~] su – elk -s /bin/bash

[root@elasticsearch01 ~]# nohup /usr/local/elasticsearch-6.6.0/bin/elasticsearch &

(7)验证启动是否成功:

[root@elasticsearch01 ~]#curl http://192.168.1.242 :9200

{

“name” : “6CbRLkm”,

“cluster_name” : “elasticsearch”,

“cluster_uuid” : “NINwpaL_ReWp75be3QDV7g”,

“version” : {

“number” : “6.6.0”,

“build_flavor” : “default”,

“build_type” : “tar”,

“build_hash” : “a9861f4”,

“build_date” : “2019-01-24T11:27:09.439740Z”,

“build_snapshot” : false,

“lucene_version” : “7.6.0”,

“minimum_wire_compatibility_version” : “5.6.0”,

“minimum_index_compatibility_version” : “5.0.0”

},

“tagline” : “You Know, for Search”

}

(6)注意事项:
Elasticsearch启动注意

Elasticsearch如果监听在127.0.0.1的话,可以正常启动成功

Elasticsearch如果要跨机器通讯,需要监听在真实网卡上,监听在0.0.0.0或者内网地址

需要调整系统参数才能正常启动!!!!很重要

Elasticsearch监听网卡建议

如果学习,建议监听在127.0.0.1

如果是云服务器的话,一定把9200和9300公网入口在安全组限制一下

自建机房的话,建议监听在内网网卡,监听在公网会被入侵

三、Kibana安装

(1)、Kibana安装:

[root@elasticsearch01 ~]# tar -zxf kibana-6.6.0-linux-x86_64.tar.gz

[root@elasticsearch01 ~]# mv kibana-6.6.0-linux-x86_64 /usr/local/kibana-6.6.0

(2)、修改Kibana配置文件:

[root@elasticsearch01 ~]# cp /usr/local/kibana-6.6.0/config/kibana.yml /usr/local/kibana-6.6.0/config/kibana.yml-bak

[root@elasticsearch01 ~]# vim /usr/local/kibana-6.6.0/config/kibana.yml

server.port: 5601

server.host: “0.0.0.0”

elasticsearch.hosts:[“http://192.168.1.242:9200”]

kibana.index: “.kibana”

logging.dest: /tmp/kibana.log

(3) 创建日志文件:

[root@elasticsearch01 ~]# touch /tmp/kibana.log

[root@elasticsearch01 ~]# chmod 777 /tmp/kibana.log

(4)Kibana的启动和访问

后台启动Kibana:nohup /usr/local/kibana-6.6.0/bin/kibana

访问Kibana,需要开放5601端口

(5)Kibana借用Nginx来实现简单认证

Kibana的安全说明

默认无密码,也是谁都能够访问

如果使用云厂商,可以在安全组控制某个IP的访问

建议借用Nginx实现用户名密码登录

1、部署Nginx,使用Nginx来转发

Nginx编译安装

[root@kibana01 ~]# yum install -y lrzsz wget gcc gcc-c++ make pcre pcre-devel zlib zlib-devel

[root@kibana01 ~]# wget ‘http://nginx.org/download/nginx-1.14.2.tar.gz’

[root@kibana01 ~]# tar -zxvf nginx-1.14.2.tar.gz

[root@kibana01 ~]# cd nginx-1.14.2

[root@kibana01 ~]# useradd -s /sbin/nologin nginx

./configure –prefix=/usr/local/nginx –user=nginx –group=nginx && make && make install

Nginx两种限制:

限制源IP访问,比较安全,访问的IP得不变

使用用户名密码的方式,通用

修改nginx 配置文件

写在location 中

root@kibana01 ~]# vim /usr/local/nginx/conf/nginx.conf

.. ..

server {

listen 80;

server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {

root html;

index index.html index.htm;

auth_basic “Input Password:”; #指定认证域的名字,随便写

auth_basic_user_file “/usr/local/nginx/pass”; #认证的密码文件,写绝对路径

proxy_pass http://192.168.1.242:5601; #kibana地址,端口

proxy_read_timeout 60;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

2)生成密码文件,创建用户及密码

使用htpasswd命令创建账户文件,需要确保系统中已经安装了httpd-tools。

[root@kibana01 ~]# yum -y install httpd-tools

[root@kibana01 ~]# htpasswd -c /usr/local/nginx/pass fxkj

#创建密码文件,-C 是指定创建密码文件 ,连续两次输入密码,初次创建用户必须加

New password:

Re-type new password:

Adding password for user tom

[root@kibana01 ~]# htpasswd /usr/local/nginx/pass jerry

#追加用户,不能使用-c选项 不然会替换掉原先的用户密码

New password:

Re-type new password:

Adding password for user jerry

[root@kibana01 ~]# cat /usr/local/nginx/pass

[root@kibana01 ~]# /usr/local/nginx/sbin/nginx #启动nginx

访问测试: http://192.168.1.242

#地址访问——进行用户认证——跳转到kibana页

ELK部署安装以及配置

四、Logstash安装

依赖于Java环境

(1)JDK二进制安装:

[root@logstash01 ~]# tar -zxf jdk-8u201-linux-x64.tar.gz

[root@logstash01 ~]#mv jdk1.8.0_201 /usr/local/ # 解压到对应安装目录/usr/local/

[root@logstash01 ~]# /usr/local/jdk1.8.0_201/bin/java -version #验证安装

(2)配置Java环境变量/etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_201/

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

[root@logstash01 ~]# source /etc/profile

[root@logstash01 ~]# java -version #验证环境变量

(3)安装Logstash:

[root@logstash01 ~]# tar -zxf logstash-6.6.0.tar.gz

[root@logstash01 ~]# mv logstash-6.6.0 /usr/local/

(4) 配置Logstash的JVM配置文件(内存不大,最好不要做限制,默认大小为1G内存)

[root@logstash01 ~]# vim /usr/local/logstash-6.6.0/config/jvm.options

-Xms200M

-Xmx200M

Logstash支持

Logstash分为输入、输出

输入:标准输入、日志等

输出:标准输出、ES等

Logstash最简单配置

[root@logstash01 ~]# vim /usr/local/logstash-6.6.0/config/logstash.conf

input{

stdin{}

}

output{

stdout{

codec=>rubydebug

}

}

Logstash的启动和测试

前台启动:/usr/local/logstash-6.6.0/bin/logstash -f /usr/local/logstash-6.6.0/config/logstash.conf

##Successfully started Logstash API endpoint {:port=>9600} 出现这边表示允许成功,直接输入就好

后台启动:nohup /usr/local/logstash-6.6.0/bin/logstash -f /usr/local/logstash-6.6.0/config/logstash.conf –config.reload.automatic &

##–config.reload.automatic自动重新加载配置文件,无需重启logstash

Logstash读取日志/usr/local/logstash-6.6.0/config/logstash.conf

input {

file {

path => “/var/log/secure”

}

}

output{

stdout{

codec=>rubydebug

}

}

五、测试Elasticsearch 和 Logstash 来收集日志数据

(1)创建测试文件:

(在 logstash 安装目录下创建一个用于测试 logstash 使用 elasticsearch 作为 logstash 的后端的测试文件 logstash-test.conf,

该文件中定义了stdout和elasticsearch作为output,这样的“多重输出”即保证输出结果显示到屏幕上,同时也输出到elastisearch中。
前提要保证elasticsearch和logstash都正常启动(需要先启动elasticsearch,再启动logstash)

[root@logstash01 ~]# vim /usr/local/logstash-6.6.0/config/logstash-test.conf

input { stdin { } }

output {

stdout { codec => rubydebug }

elasticsearch {

hosts => [“http://192.168.1.242:9200”] ##指定elasticsearch 地址

index => “logstash-%{+YYYY-MM}”

}

}

(2)、开启服务:

[root@logstash01 logstash-6.6.0]# /usr/local/logstash-6.6.0/bin/logstash -f /usr/local/logstash-6.6.0/config/logstash-test.conf

本文版权归 飞翔沫沫情 作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文链接 如有问题, 可发送邮件咨询,转贴请注明出处:https://www.fxkjnj.com/308/

发表评论

登录后才能评论