文章目录
项目需求
1:在两台代理服务器上部署nginx实现Apache负载均衡,地址分别是192.168.158.50/24,192.168.158.60/24;
网页轮询查看
2:在两台代理服务器上部署keepalived服务,实现双机热备,提供VIP地址 192.168.158.100/24,且验证地址漂移;
3:在两台web服务器(地址:192.168.158.30/24;192.168.158.40/24)上部署Apache服务,且实现日志的收集logstach功能,去收集access访问日志中的数据信息传递给elasticsearch集群;
4:构建两台elasticsearch服务器(地址:192.168.158.10/24;192.168.158.20/24)组建集群,存储logstach传输的日志信息;
5:部署一台kibana服务器(地址:可以使用ES中的任意一台或单独部署)实现日志信息的可视化功能;
1:ELK
1.1:安装elasticsearch软件
- node1,node2节点都做
#准备yum源,yum安装
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
cd /etc/yum.repo.d/
vim 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
yum install elasticsearch -y
yum install java -y (1.8版本) #安装Java,因为有JVM,日志收集最好的开发语言就是java
- 修改配置文件
[root@node1 ~]# cd /etc/elasticsearch/
[root@node1 elasticsearch]# ls
elasticsearch.yml log4j2.properties jvm.options scripts
[root@node1 elasticsearch]# cp -p elasticsearch.yml elasticsearch.yml.bak ## 先把原配置文件做一下备份,再修改配置文件
[root@node1 elasticsearch]# vim elasticsearch.yml
17: cluster.name: elk-cluster ## 集群名称
23: node.name: node1 ## 当前节点名
33: path.data: /data/elk-data ## 数据存储的位置(目录不存在,需要创建)
37: path.logs: /var/log/elasticsearch/ ## 日志文件存放的位置
43: bootstrap.memory_lock: false ## true:允许内存中的数据交还给SWAP,flase:不允许内存中的数据交还给SWAP。
选择false,因为swap分区实在硬盘上建立的,如果内存不够,数据溢出,分到硬盘上的话,会影响速度
55: network.host: 0.0.0.0 ## 监听地址,0.0.0.0表示所有网段
59: http.port: 9200 ## ES端口号,外部通信的端口号 PS:9300是集群内部通信端口
68: discovery.zen.ping.unicast.hosts: ["node1", "node2"] ## 群集中包含的节点名
#添加映射
[root@node1 ~]# vi /etc/hosts
192.168.158.10 node1
192.168.158.20 node2
[root@node2 ~]# vi /etc/hosts
192.168.158.10 node1
192.168.158.20 node2
- 开启服务
[root@node1 elasticsearch]# mkdir -p /data/elk-data # 创建数据存放目录
[root@node1 elasticsearch]# id elasticsearch ## ES的程序用户,安装的时候自动创建的用户
uid=990(elasticsearch) gid=985(elasticsearch) 组=985(elasticsearch)
[root@node1 elasticsearch]# chown elasticsearch.elasticsearch /data/elk-data/ ## 授权,交给用户 elasticsearch去管理
[root@node1 elasticsearch]# systemctl start elasticsearch.service ## 开启服务
[root@node1 elasticsearch]# netstat -anpt | grep 9200 # 过滤9200端口(外部访问集群端口)
tcp6 0 0 :::9200 :::* LISTEN 15726/java
- 检查群集状态信息
输入http://192.168.158.10:9200/_cluster/state?pretty
1.2:安装elasticsearch-head插件
可视化工具,更方便查看集群信息,并管理集群,以node1为例
[root@node1 ~]# /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
安装位置/usr/share/elasticsearch/plugins<