ELK架构的简单搭建

一、配置node节点

1、更改几台服务器名字(方便识别)

服务器1:hostnamectl set-hostname node1

服务器2:hostnamectl set-hostname node2

服务器3:hostnamectl set-hostname apache

完成之后,再进行刷新一下,看看是否成功

vim /etc/hosts				#进入配置文件,添加主机名与IP地址,进行绑定

192.168.75.51 node1
192.168.75.52 node2
192.168.75.53 apache

#配置完成之后,使用ping指定的主机名,查看是否能联通

2、安装elasticsearch

java -version				#检查当前的JAVA环境
#openjdk version "1.8.0_131"
#OpenJDK Runtime Environment (build 1.8.0_131-b12)
#OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

rpm -ih elasticsearch-5.5.0.rpm		#rpm安装程序

elasticsearch在安装成功之后,会在/etc/elasticsearch/文件下,产生几个目录以及配置文件,需要对elasticsearch.yml,配置文件进行修改

cd /etc/elasticsearch/
cp elasticsearch.yml{,.bak}				#对配置文件先进行备份,以防后面配置出现问题,好用于恢复,并且对其重命名

加载守护进程

systemctl daemon-reload
systemctl enable elasticsearch.service

完成之后,进行对配置文件进行修改

vim elasticsearch.yml
17 cluster.name: my-elk-cluster
#修改集群的名字
23 node.name: node1
#开启之后,配置为对应的主机名即可
33 path.data: /data/elk_data
#指定数据目录
37 path.logs: /var/log/elasticsearch
#指定日志目录
43 bootstrap.memory_lock: false
#前端框架的内存所,取消
55 network.host: 0.0.0.0
#监听所有的地址
59 http.port: 9200
#监听端口
68 discovery.zen.ping.unicast.hosts: ["node1", "node2"]
#以单播的形式发现集群中的成员地址

完成之后,再检查一遍
grep -v "^#" ./elasticsearch.yml

cluster.name: my-elk-cluster
node.name: node1
path.data: /data/elk_data
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]
mkdir -p /data/elk_data		#创建上面指定的数据目录
chown elasticsearch.elasticsearch /data/elk_data/
#更改目录的属主属组权限
systemctl enable --now elasticsearch.service		#启动服务
netstat -ntap|grep 9200					#查看端口,是否启动
http://192.168.75.51(52):9200/		#查看节点的信息

{
  "name" : "node1",
  "cluster_name" : "my-elk-cluster",
  "cluster_uuid" : "GIkCf1XXT7qVqBCNElrSUg",
  "version" : {
    "number" : "5.5.0",
    "build_hash" : "260387d",
    "build_date" : "2017-06-30T23:16:05.735Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.0"
  },
  "tagline" : "You Know, for Search"
}



http://192.168.75.51:9200/_cluster/health?pretty		#查看集群的信息

cluster_name	"my-elk-cluster"
status	"green"
timed_out	false
number_of_nodes	2
number_of_data_nodes	2
active_primary_shards	0
active_shards	0
relocating_shards	0
initializing_shards	0
unassigned_shards	0
delayed_unassigned_shards	0
number_of_pending_tasks	0
number_of_in_flight_fetch	0
task_max_waiting_in_queue_millis	0
active_shards_percent_as_number	100


curl http://192.168.75.51:9200/_cluster/stats?pretty		#查看详细点的集群状态

3、安装Elasticsearch-head插件与phantomjs

Elasticsearch在5.0 版本后,Elasticsearch-head插件需要作为独立服务进行安装,需要使用npm.工具(Wodeas的包管理T具)安装。

yum install gcc gcc-c++ make -y			#安装依赖环境

解压node并且编译安装

tar zxf node-v8.2.1.tar.gz
cd node-v8.2.1/
./configure
make -j2 && make install

安装phantomjs

tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/
#解压安装包,并且指定安装目录
cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/

ln -s /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin/* /usr/local/bin/
#做个软连接到缓存命令目录,方便后面使用

安装Elasticsearch-head

tar zxvf elasticsearch-head.tar.gz -C /usr/local/src/	#解压文件到指定目录
cd /usr/local/src/elasticsearch-head/

npm install			#安装程序

vi /etc/elasticsearch/elasticsearch.yml
#进入配置文件,在末行添加下面的语句
http.cors.enabled: true			#开启跨域访问支持,默认是false
http.cors.allow-origin: "*"		#指定跨域访问允许的域名地址为所有
systemctl restart elasticsearch.service
#重启服务
systemctl status elasticsearch.service
#查看服务信息
ss -natp | grep 9200
#查看端口信息

启动服务器

cd /usr/local/src/elasticsearch-head/
#必须到安装目录下启动服务,不然可能会导致服务启动失败
npm run start &
#启动服务,并且将其放置到后台运行

上面语句执行之后,会使用到9100端口,可以先进行查看此端口信息,查看语句这里就略过了

执行完成之后,可以去客户机网站上测试一下网址

http://192.168.75.51:9100/		#登录上之后,my-elk-cluster这一行的那个集群的地址显示的位localhost:9200 ,需要修改为自己集群的IP地址加9100

在这里插入图片描述
现在还没有被访问过,所以现在显示的是没有访问记录

curl -X PUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'
#添加一个访问记录

添加完成之后,去刷新页面,可以发现,现在已经改变了,是一个副本,五个分片,在数据浏览页面可以看到,刚刚我们添加的访问记录

在这里插入图片描述
在这里插入图片描述

二、配置apache节点

1、安装logstash

先安装环境配置

yum install httpd -y
rpm -ivh logstash-5.5.1.rpm		#rpm安装软件
cd /usr/share/logstash/			#移动到程序的安装目录
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
#做个软连接到缓存命令目录,方便后面使用
systemctl start httpd		#启动httpd
netstat -natp | grep 80		#查看是否开启

格式转换

logstash -e 'input { stdin{} } output { stdout{} }'
#输入采用的是标准输入,转换为另一种标准输出显示
logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'
#输入结果www.baidu.com
{
    "@timestamp" => 2022-01-03T10:57:30.972Z,
      "@version" => "1",
          "host" => "apache",
       "message" => "www.baidu.com"
}
#将输入的网址的格式设置成Rubydebug的格式显示,目的是为了让下一个组件来进行接收。

2、修改配置文件

修改文件的权限

chmod o+r /var/log/messages		#添加其他用户读取权限

自定义一个文件,来定义抓取和输出的对象

vim system.conf

input {
#定义一个抓取对象
       file{
       #抓取的文件形式
        path => "/var/log/messages"
        #位置为系统日志
        type => "system"
        #日志类型
        start_position => "beginning"
        #从最开始的位置开始
        }
      }

output {
#输出
        elasticsearch {
        #输出到es数据库
          hosts => ["192.168.75.51:9200"]
          #输出的服务器位置
          index => "system-%{+YYYY.MM.dd}"
          #输出的索引以及时间戳
          }
        }
systemctl restart logstash.service		#重启一下

重启之后,回到网站进行查看:

在这里插入图片描述

索引,数据浏览等等都有增加新的记录。就不一一截图了

三、可视化数据

1、安装kibana

在node1主机上安装kibana

rpm -ivh kibana-5.5.1-x86_64.rpm
cd /etc/kibana/
cp kibana.yml kibana.yml.bak		#复制一份配置文件,备用
vim /etc/kibana/kibana.yml		#进入配置文件,打开下面命令

2 server.port: 5601
7 server.host: "0.0.0.0"		#开启之后设置位监听所有
21 elasticsearch.url: "http://192.168.75.51:9200"	
	#kibana和es对接的地方
30 kibana.index: ".kibana"		#开启kibana自身的索引

开启kibana

systemctl start kibana.service
systemctl enable kibana.service

访问kibana

http://192.168.75.51:5601/

在这里插入图片描述
输入完成之后,点击create

在这里插入图片描述

点击发现,来看发现的数据源

在这里插入图片描述

2、查看apache主机的日志文件

在apache服务器上进行配置

cd /etc/logstash/conf.d/
vim apache_log.conf
input {
       file{
        path => "/etc/httpd/logs/access_log"
        type => "access"
        start_position => "beginning"
        }
       file{
        path => "/etc/httpd/logs/error_log"
        type => "error"
        start_position => "beginning"
        }

      }
output {
        if [type] == "access" {
        elasticsearch {
          hosts => ["192.168.75.51:9200"]
          index => "apache_access-%{+YYYY.MM.dd}"
          }
        }
        if [type] == "error" {
        elasticsearch {
          hosts => ["192.168.75.51:9200"]
          index => "apache_error-%{+YYYY.MM.dd}"
          }
		}
		}

apache日志收集开启之后,再进行下面的操作

/usr/share/logstash/bin/logstash -f apache_log.conf
#指定logstash去收集apache的日志

再回到页面之后,就可以看到,日志信息里面已经有apache的日志记录了

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值