Bboymars

从事Java、IOS开发

喜欢运动类型的活动


ELK日志收集框架部署步骤

一、需求缘起

项目业务越来越复杂,单体项目维护越来越麻烦。 微服务化亟需落实,但随之而来的服务日志怎么管理.
每个服务都有自己的日志文件,排查问题需要连接到服务主机去查看日志,非常不便。
需要一个办法将所有服务的日志都收集起来统一管理,这就引入了有名的ELK框架。

二、环境准备

主机中安装Docker 参照: https://docs.docker.com/install/linux/docker-ce/centos/#prerequisites 执行如下命令:

yum install -y yum-utils \
      device-mapper-persistent-data \
      lvm2

 yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

yum-config-manager --enable docker-ce-edge
yum install docker-ce

# 查看docker 版本
docker --version

# 启动docker
systemctl start docker

#安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

三、镜像与ELK配置文件相关准备

1、镜像准备,执行命令:

docker pull elasticsearch:6.4.2
docker pull logstash:6.4.2
docker pull kibana:6.4.2
docker pull mobz/elasticsearch-head:5

# 查看相关镜像

2、ELK配置相关准备:

# 拉取相关配置以及脚本:
git clone https://github.com/hu5675/docker-elk.git elk

后缀.txt的都不需要关心
修改start.sh\stop.sh 为可执行文件:
chmod +x start.sh stop.sh

四、构建Elasticseach集群、Elasticseach-head、Logstash和Kibana

1、执行start.sh 构建:

./start.sh

注意执行过程中需要输入elastic、kibana、logstash_system、beats_system密码,elastic的密码需要配置在kibana、logstash目录下的配置中


注:以上4个框分别输入的密码是:elastic、kibana、logstash、filebeat。也就是es内置4个用户的密码

2、查看运行的容器:

3、(此步不做)执行stop.sh 可删除以上构建的容器、网络等。需手动删除es的数据目录文件:

rm -rf es-cluster/data/es2/*
rm -rf es-cluster/data/es/*
rm -rf es-cluster/data/es/*

五、验证部署环境

1、利用es-head验证es集群是否正常:

# 浏览器打开
http://***.***.***.***:9100/?auth_user=elastic&auth_password=elastic

可见es集群正常,注意箭头所指的地址记得修改

2、利用es api接口验证:

# 浏览器打开
http://***.***.***.***:9200/_cat/nodes  会要求输入用户名和密码  用户名:elastic  密码:elastic

3、验证logstash 是否正常:

# 浏览器输入: 
http://***.***.***.***:9600/ 

4、验证kibana是否正常:

# 浏览器输入:
http://***.***.***.***:5601  会要求输入用户名和密码 用户名:elastic  密码:elastic

到此 es集群、Logstash、es-head以及kibana 搭建完成

六、部署Filebeat日志收集组件

1、另外找台主机部署Filebeat,同样从git拉取elk。

git clone https://github.com/hu5675/docker-elk.git elk 
需用到elk目录下的filebeat文件件和特定日志格式的日志模板ZHLERROR.log

2、 进入elk/filebeat,并修改目录下的配置文件filebeat.yml,主要配置收集的日志目录和logstash地址。

3、部署并启动

chmod +x deploy_filebeat.sh
./deploy_filebeat.sh

4、检查下filebeat是否启动成功

七、测试Filebeat以及在Kibana中查看收集的日志

1、将ZHLERROR.log文件的内容输出到 /root/logs/1.log中

cat /elk/ZHLERROR.log > /root/logs/1.log

2、查看es-head的索引变化


可见filebeat已经将日志收集并发送到es集群中

3、也可在kibana中查看日志记录:

Kibana其他高级功能略过

至此 ELK日志收集环境搭建完成。
最近的文章

Jmeter 对api接口进行分布式压测

一、需求缘起公司要求对一级api接口进行压测,目标:1万qps 二、压测部署图 二、硬件准备(Linux 4核8g)Jmeter Master : jmeter_master_ip Jmeter Slave 01: jmeter_slave_ip_01 Jmeter Slave 02: jme …

于 继续阅读
更早的文章

Mysql Group Replication 高可用组复制集群环境搭建

一、MySQL的高可用集群可分为“主从复制”和“组复制”传统主从复制参照Mysql手册 1、异步复制 2、半同步复制 组复制(5.7.17新增功能)参照Mysql手册 二、Mysql Server服务节点环境说明mgr_n1 192.172.0.11 mgr_n2 …

于 继续阅读