ELK实战
实验规划
主机名 | IP地址 | |
---|---|---|
nginx服务器 | nginx | 20.0.0.10/24 |
elasticsearch主服务器 | elasticsearch-master | 20.0.0.20/24 |
elasticsearch从服务器 | elasticsearch-backup | 20.0.0.30/24 |
kibana服务器 | kibana | 20.0.0.40/24 |
所有服务器关闭防火墙
systemctl stop firewalld
setenforce 0
Nginx服务器配置
1、导入nginx数据包
[root@nginx opt]# ls -lh
总用量 960K
-rw-r--r-- 1 root root 958K 12月 1 09:36 nginx-1.12.0.tar.gz
2、安装nginx支持工具
[root@nginx opt]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel
3、解压数据包并安装nginx
[root@nginx opt]# tar zxvf nginx-1.12.0.tar.gz
[root@nginx opt]# cd nginx-1.12.0/
[root@nginx nginx-1.12.0]# ./configure --prefix=/usr/local/nginx \
--user=nginx\
--group=nginx\
--with-http_stub_status_module
[root@nginx nginx-1.12.0]# make && make install
4、创建一个不可登录nginx程序用户并用户nginx的配置路径
[root@nginx nginx-1.12.0]# useradd -M -s /sbin/nologin nginx
[root@nginx nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@nginx nginx-1.12.0]# ln -s /usr/local/nginx/conf/nginx.conf /etc/
5、创建一个nginx的启动脚本
[root@nginx nginx-1.12.0]# vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: 35 99 20
#nginx
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage:$0 {start|stop|restart|reload}"
exit 1
esac
exit 0
[root@nginx nginx-1.12.0]# chmod +x /etc/init.d/nginx
[root@nginx nginx-1.12.0]# chkconfig --add nginx
6、修改nginx配置文件
[root@nginx nginx-1.12.0]# vim /etc/nginx.conf
user nginx; #修改为nginx用户
#21-23行去掉#
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#25 设置访问成功日志存放的位置
access_log /var/log/nginx/access.log main;
7、创建日志存放目录
[root@nginx opt]# mkdir /var/log/nginx
8、启动nginx
[root@nginx nginx-1.12.0]# systemctl restart nginx.service
9、查看nginx是否启动
[root@nginx nginx-1.12.0]# netstat -anptu |grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 18438/nginx: master
elasticsearch群集
elasticsearch-master服务器设置
1、下载elasticsearch数据包并安装
[root@elasticsearch-master opt]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
[root@elasticsearch-master opt]# vim /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enable=1
[root@elasticsearch-master opt]# yum list
[root@elasticsearch-master opt]# yum -y install elasticsearch
由于elasticsearch数据包下载太慢为就用我之前在官网下载好的数据包来安装了
[root@elasticsearch-master opt]# ll
总用量 26604
-rw-r--r-- 1 root root 27239226 11月 24 15:52 elasticsearch-2.4.6.rpm
[root@elasticsearch-master opt]# rpm -ivh elasticsearch-2.4.6.rpm
2、安装java
[root@elasticsearch-master opt]# yum -y install java
3、修改elasticsearch配置文件
[root@elasticsearch-master opt]# vim /etc/elasticsearch/elasticsearch.yml
#17行 集群名称
cluster.name: abc
#23行 节点名称
node.name: node1
#33行 设置数据存储目录
path.data: /data/es-data
#37行 设置日志存储目录
path.logs: /var/log/elasticsearch/
#43行 防止交换swap分区
bootstrap.memory_lock: true
#54行 监听网络
network.host: 0.0.0.0
#58行 端口
http.port: 9200
#68行设置群集成员
discovery.zen.ping.unicast.hosts: ["20.0.0.10", "20.0.0.20"]
4、创建数据存储目录
[root@elasticsearch-master opt]# mkdir -p /data/es-data
[root@elasticsearch-master opt]# chown -R elasticsearch:elasticsearch /data/es-data
4、解决无法分配内存
[root@elasticsearch-master opt]# vim /etc/security/limits.conf
在尾部增加
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
5、启动elasticsearch
[root@elasticsearch-master opt]# systemctl start elasticsearch.service
6、查看9200端口是否开启
[root@elasticsearch-master opt]# netstat -naptu|grep 9200
tcp6 0 0 :::9200 :::* LISTEN 41995/java
1:如果启动报错但是9200端口没有开启可能是修配置文件修改的数据存储的位置和创建的创建的数据存储目录名称不一致
2:创建的数据存储目录的属主和属组不是elasticsearch
elasticsearch-backup服务器设置
1、下载elasticsearch数据包并安装
[root@elasticsearch-backup opt]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
[root@elasticsearch-backup opt]# vim /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enable=1
[root@elasticsearch-backup opt]# yum list
[root@elasticsearch-backup opt]# yum -y install elasticsearch
由于elasticsearch数据包下载太慢为就用我之前在官网下载好的数据包来安装了
[root@elasticsearch-backup opt]# ll
总用量 26604
-rw-r--r-- 1 root root 27239226 11月 24 15:52 elasticsearch-2.4.6.rpm
[root@elasticsearch-backup opt]# rpm -ivh elasticsearch-2.4.6.rpm
2、安装java
[root@elasticsearch-backup opt]# yum -y install java
3、修改elasticsearch配置文件
[root@elasticsearch-backup opt]# vim /etc/elasticsearch/elasticsearch.yml
#17行 集群名称
cluster.name: abc
#23行 节点名称
node.name: node2
#33行 设置数据存储目录
path.data: /data/es-data
#37行 设置日志存储目录
path.logs: /var/log/elasticsearch/
#43行 防止交换swap分区
bootstrap.memory_lock: true
#54行 监听网络
network.host: 0.0.0.0
#58行 端口
http.port: 9200
#68行设置群集成员
discovery.zen.ping.unicast.hosts: ["20.0.0.10", "20.0.0.20"]
4、创建数据存储目录
[root@elasticsearch-backup opt]# mkdir -p /data/es-data
[root@elasticsearch-backup opt]# chown -R elasticsearch:elasticsearch /data/es-data
4、解决无法分配内存
[root@elasticsearch-backup opt]# vim /etc/security/limits.conf
在尾部增加
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
5、启动elasticsearch
[root@elasticsearch-backup opt]# systemctl start elasticsearch.service
6、查看9200端口是否开启
[root@elasticsearch-backup opt]# netstat -naptu|grep 9200
tcp6 0 0 :::9200 :::* LISTEN 41995/java
主节点安装插件测试访问
[root@elasticsearch-master opt]# /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
nginx服务器安装logstash
1、下载logstash源
[root@nginx opt]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
2、设置logstash源
[root@nginx opt]# vim /etc/yum.repos.d/logstash.repo
[logstash-2.1]
name=Logstash repository for 2.1.x packages
baseurl=http://packages.elastic.co/logstash/2.1/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enable=1
3、安装logstash
[root@nginx opt]# yum -y install logstash
由于下载的慢我就用之前官网下载的包安装
[root@nginx opt]# ll
-rw-r--r-- 1 root root 75274110 11月 24 16:03 logstash-2.1.3-1.noarch.rpm
[root@nginx opt]# rpm -ivh logstash-2.1.3-1.noarch.rpm
[root@nginx opt]# ln -s /opt/logstash/bin/logstash /usr/bin/
4、创建一个配置文件
[root@nginx opt]# vim file.conf
input {
file {
path => "/var/log/nginx/access.log" #收集日志的路径所以对应的文件
type => "system"
start_position => "beginning"
}
}
output {
elasticsearch {
hosts => ["20.0.0.20:9200"] #elasticsearch主服务器IP地址
index => "nginx_access_log-%{+YYYY.MM.dd}" #创建日志索引名称
}
}
5、使配置生效
[root@nginx opt]# logstash -f /opt/file.conf
6、查看
安装kibana展示收集的日志
1、下载kibana数据包
[root@kibana ~]# ll
-rw-r--r-- 1 root root 30408272 5月 16 2018 kibana-4.3.1-linux-x64.tar.gz
2、解压数据包
[root@kibana ~]# tar zxvf kibana-4.3.1-linux-x64.tar.gz -C /usr/local/
[root@kibana ~]# cd /usr/local/
[root@kibana local]# mv kibana-4.3.1-linux-x64 kibana
3、修改配置文件
[root@kibana local]# vim /usr/local/kibana/config/kibana.yml
#2行
server.port: 5601
#5行
server.host: "0.0.0.0"
#12行 ES地址
elasticsearch.url: "http://20.0.0.20:9200"
#20行
kibana.index: ".kibana"
4、安装
[root@kibana local]# yum -y install screen
5、启动监听
[root@kibana local]# /usr/local/kibana/bin/kibana
6、测试
访问nginx网站然后刷新kibana