[环境搭建] CentOS 6.5 x64 + ELK 日志分析平台部署
0.实验环境说明
- 宿主机
- Windows 10
- 工具
- VMware v12.5 Pro
- 虚拟主机系统
- CentOS 6.5 x64
- ELK
- Elasticsearch v2.4.3
- LogStash v2.4.1
- Kibana v4.6.3
ELK套件下载地址:https://www.elastic.co/downloads
点击此处有更多版本选择:
-
安装及配置Elasticsearch
-
打开个人目录文件夹
-
点击后弹出文件夹
-
在Windows下复制压缩文件“ELK+syslog-20180523-own”,粘贴到上一步centeOS中打开到文件夹下
-
复制完毕
-
打开终端
-
右键,点击如图所示位置
-
-
弹出终端如图
-
进入管理员模式
su
<本行输入root用户的口令>
-
创建一个文件夹用以存放安装包
mkdir -p /home/hadoop/app
-
解压至“/home/hadoop/app”
unzip ELK+syslog-20180523-own.zip -d /home/hadoop/app
-
设置虚拟机CenteOS的网络(根据实际情况设定,这里设置静态ip是因为作者的实验环境需要)
-
打开网络配置
-
在右上角的计算机图标上右键:
-
编辑eth0
-
设置静态ip
弹出提示“输入root用户口令”,输入即可。
-
关闭防火墙
service iptables stop
-
安装及配置elasticsearch-2.4.3
cd /home/hadoop/app
tar zxvf elasticsearch-2.4.3.tar.gz
rm elasticsearch-2.4.3.tar.gz
vi /home/hadoop/app/elasticsearch-2.4.3/config/elasticsearch.yml
#(注:如下的蓝颜色部分代码是复制粘贴放入文件中的内容,若无其他特别声明,皆可直接粘贴到文件开头。后文不再赘述。)
network.host: 0.0.0.0
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping_timeout: 120s
client.transport.ping_timeout: 60s
discovery.zen.ping.unicast.hosts: ["192.168.72.134"]
cluster.name: ownhp
node.name: node-0
path.data: /home/hadoop/data/elasticsearch-2.4.3/data
path.logs: /home/hadoop/data/elasticsearch-2.4.3/datalog
node.master: true
node.data: true
-
安装JDK1.8
-
复制安装包到个人文件夹下
-
打开个人文件夹
-
-
-
在Windows中复制文件,在CentOS中右键点击“Paste”粘贴到目录下
-
打开终端
-
登录root账户
su
<本行输入root用户口令>
-
编译安装
tar zxvf jdk-8u151-linux-x64.tar.gz
mv jdk1.8.0_151 jdk
mv jdk /usr/local/
vi /etc/profile
在文件开头添加:
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=/usr/local/jdk/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
-
令配置立即生效
source /etc/profile
-
安装插件“elasticsearch-head”
注意:由于是在线安装,需要虚拟机连入互联网。
-
检查并确保:宿主机(搭载VMware环境的主机)已正常连入互联网。
-
检查并确保:VMware的桥接模式已配置为桥接到连入了互联网的网卡。
-
打开VMware的网络编辑器
-
-
弹出网络编辑器界面如下
-
点击“更改设置”
-
会弹出“应用授权”的窗口,询问“是否允许该应用对设备的修改”,点击“是”即可。
-
接着,网络编辑器中“VMnet信息”部分原先灰色部分文字变成黑色,并能够选择、设置。
-
将桥接模式设置为桥接到连接了互联网的网卡
-
①如果宿主机使用网线出网,设置为桥接到“Realtek PCIe GBE Family Controller”
-
-
②如果宿主机连接互联网的方式是使用无线网,即连接了WIFI,则设置为桥接到无线网卡“Intel(R) Dual Band Wireless-AC 7265”。(注意,若您使用了外接的USB网卡设备等,请自行查询您的网卡设备名,并在这里选择桥接到该网卡)。
-
设置网络模式为“桥接模式”
-
安装head插件
cd /home/hadoop/app/elasticsearch-2.4.3
bin/plugin install mobz/elasticsearch-head
-
永久关闭防火墙:
chkconfig iptables off
-
修改虚拟机配置(虚拟内存等)以支持elasticsearch
vi /etc/security/limits.conf
添加如下内容:
* soft nofile 262144
* hard nofile 262144
* soft nofile 262144
* hard nofile 262144
* soft nproc 2048
* hard nproc 4096
elsearch soft memlock unlimited
elsearch hard memlock unlimited
vi /etc/security/limits.d/90-nproc.conf
找到如下内容:
* soft nproc <这里可能是某数字>
root soft nproc <这里可能是某数字>
修改为:
* soft nproc unlimited
root soft nproc unlimited
vi /etc/sysctl.conf
添加如下内容:
vm.max_map_count = 655360
vm.swappiness = 1
sysctl -p
-
为CenteOS系统添加用户“es”
添加用户“es”并设置口令为“123”(专门用来启动ElasticSearch,鉴于安全方面的考虑,ElasticSearch不支持root用户启动)。
groupadd es
useradd es -g es -p 123
-
改变文件夹“elasticsearch-2.4.3”的属主为用户“es”
chown es:es -R /home/hadoop/app/elasticsearch-2.4.3
-
创建文件夹“data”,改变文件夹“data”的属主为用户“es”
mkdir -p /home/hadoop/data
chown es:es -R /home/hadoop/data
su es
123
-
后台启动elasticsearch
/home/hadoop/app/elasticsearch-2.4.3/bin/elasticsearch -d
-
启动成功可能需要半分钟到1分钟时间,为了检查ElasticSearch是否启动成功,也可以去掉命令参数“-d”,不启用后台运行,观察输出。如果此时想要重新启动ElasticSearch观察输入,需要先结束在上一步中正在执行的ElasticSearch进程。
-
使用ps命令查找正在运行的ElasticSearch的进程PID
-
ps -ef | grep elastic
-
得到搜索结果如下
-
结束ElasticSearch进程
kill -9 37787
-
在终端使用前台启动的方式重新启动ElasticSearch,观察是否成功启动
/home/hadoop/app/elasticsearch-2.4.3/bin/elasticsearch
-
观察到“node-0 start”即说明启动成功了
-
通过浏览器访问ElasticSearch:
(注意:ip地址应改为你的虚拟机(CenteOS)地址)
-
若返回了ElasticSearch集群信息形如下图,说明ElasticSearch正常工作。
-
通过浏览器访问elasticsearch的head插件
http://192.168.72.134:9200/_plugin/head/
-
安装及配置Logstash
-
解压安装包
su
<本行输入root用户的口令>
cd /home/hadoop/app
tar zxvf logstash-2.4.1.tar.gz
rm logstash-2.4.1.tar.gz -f
cd /home/hadoop/app/logstash-2.4.1
-
新建一个
-
情景一:安装logstash到客户机上收集数据(并传给elasticsearch)
该情景下使用logstash从本地文件读取日志发送给elasticsearch。
-
新建并编辑logstash的配置文件
mkdir config
cd config
vi logstash+ES.conf
input {
file {
path => "/var/log/own/*/*"
start_position => "beginning" #从文件开始处读写
}
}
filter {
#定义数据的格式
grok {
match => { "message" => "%{DATA:timestamp}\|%{IP:serverIp}\|%{IP:clientIp}\|%{DATA:logSource}\|%{DATA:userId}\|%{DATA:reqUrl}\|%{DATA:reqUri}\|%{DATA:refer}\|%{DATA:device}\|%{DATA:textDuring}\|%{DATA:duringTime:int}\|\|"}
}
}
output {
elasticsearch {
hosts => "192.168.72.134:9200"
}
}
注意:ip地址应改为你的虚拟机(CenteOS)地址
-
后台启动logstash:
su es
<本行输入es用户的口令,之前设置为“123”>
/home/hadoop/app/logstash-2.4.1/bin/logstash -f /home/hadoop/app/logstash-2.4.1/config/logstash+ES.conf &
-
情景二:logstash安装到elasticsearch所在的同一台主机,并令其监听514端口(syslog传输的端口)
-
新建并编辑logstash的配置文件
cd /home/hadoop/app/logstash-2.4.1
cd config
vi logstash+ES2.conf
input {
tcp {
port => 514
type => syslog
}
udp {
port => 514
type => syslog
}
}
output {
hosts => "192.168.72.134:9200"
#(注意:ip地址应改为你的虚拟机(CenteOS)地址)
}
-
启动logstash:
/home/hadoop/app/logstash-2.4.1/bin/logstash -f /home/hadoop/app/logstash-2.4.1/config/logstash+ES.conf
-
安装及配置Kibana
-
解压并配置文件
cd /home/hadoop/app
tar tar xzvf kibana-4.6.3-linux-x86_64.tar.gz
rm -f kibana-4.6.3-linux-x86_64.tar.gz
vi /home/hadoop/app/kibana-4.6.3-linux-x86_64/config/kibana.yml
server.port:5601
server.host:"192.168.72.134"
elasticsearch.url:"http://192.168.72.134:9200"
kibana.index:".kibana"
(注意:ip地址应改为你的虚拟机(CenteOS)地址)
-
后台运行:
/home/hadoop/app/kibana-4.6.3-linux-x86_64/bin/kibana &