测试/生产环境elk部署实践

最近两周,需要部署一套elk日志收集系统,顺便将其整理成部署文档

elk + kafka + zookeeper生产实践

1.查看系统版本
2.确认基础环境
3.安装zookeeper
4.安装kafka
5.安装filebeat
6.安装Elasticsearch
7.安装kibana
8.安装Logstash
9.关联配置
10.最终验证

1.查看系统版本
cat /etc/redhat-release #查看系统版本 CentOS Linux release 7.2.1511 (Core)

2.确认基础环境
update-alternatives --config java #查看java环境 1.8 openjdk +
go version #go version go1.11 linux/amd64
go env #gopath,goroot,gotooldir等确认下没问题
#创建elk用户(用于启动Elasticsearch,修改Elasticsearch的配置)
1.建用户:
adduser elk //新建elk用户
passwd elk //给elk用户设置密码
密码:password
2.创建工作组
创建用户时自动创建了
3.验证用户和组是否创建成功
cat /etc/group
cat /etc/passwd
4.授予elk用户sudo权限
root用户下:sudo vim /etc/sudoers
在 root ALL=(ALL) ALL
下新增记录 elk ALL=(ALL:ALL) NOPASSWD:ALL
#安装的elk+filebeat都是6.4官方推荐稳定版本
#安装的kafka : 2.11-1.1.1 , zookeeper : 3.4.12
#wget,yum,本地download下上传服务器,都可以,官网版本确定,对应系统确定即可
#这里采用的全部是下载压缩包安装方式:

3.安装zookeeper
#将zookeeper压缩包复制到zookeeper安装目录下,定为{zookeeper_home}
#默认安装三台zookeeper服务器集群
tar -xzf zookeeper-3.4.12.tar.gz
cd zookeeper-3.4.12
#修改配置文件
vim conf/zoo_sample.cfg
dataDir=/var/zookeeper #修改
#添加:
server.1=192.168.23.159:2888:3888
server.2=192.168.23.160:2888:3888
server.3=192.168.23.16:2888:3888
#root下新建目录:
mkdir /var/zookeeper
#启动zookeeper
#复制zoo.cfg文件
cp conf/zoo_sample.cfg conf/zoo.cfg
bin/zkServer.sh start
ps -ef |grep zookeeper #查看启动参数

4.安装kafka
#官网下载,filebeat目前版本限制kafka版本必须在0.8.2.0 and 1.1.1 之间
#直接使用 Kafka 2.11-1.1.1 进行安装
#因为至少需要3台主机,因此,部署在159,160,161三台机器上,目录 /home/sre/deploy/elk
#添加本地hostname的配置
listeners = PLAINTEXT://localhost:9092
#启动kafka server
bin/kafka-server-start.sh config/server.properties &
#查看端口占用情况
netstat -tunlp|egrep "(8888|9092|9093|9094|2181)"

#创建kafka的topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic topic_name
#kafka至少要3个活动的server才能创建topic,但查看topic没有这个限制
#查看topic
bin/kafka-topics.sh --list --zookeeper 192.168.23.159:2181
#查看topic详情
bin/kafka-topics.sh --describe --zookeeper  localhost:2181 --topic topic_name
#删除topic
bin/kafka-topics.sh --delete --zookeeper 192.168.23.159:2181 --topic topic_name
#kafka对应topic生产数据
bin/kafka-console-producer.sh --broker-list 192.168.23.159:9092 --topic test
#向kafka对应topic申请,消费数据(默认从上次结束的地方开始消费)

5.安装filebeat
#下载安装包(centos的对应filebeat_file.rpm)并安装
rpm -iv filebeat_file.rpm
#rpm安装的filebeat程序根目录
/usr/share/filebeat
#修改配置文件
sudo vim /etc/filebeat/filebeat.yml
#配置多个input,区分不同来源的日志,并设置不同的fields_topic(对应不同kafka的topic),之后统一通过kafka out分别输出到对应的kafka topic 中去
#启用指定模板
sudo filebeat modules enable elasticsearch kafka kibana system nginx mysql
#查看模板启用情况
sudo filebeat modules list
#将filebeat.reference.yml中关于kafka output相关的配置复制到filebeat.yml文件中output的部分,即可通过service启动
systemctl status filebeat
systemctl start filebeat
systemctl restart filebeat
systemctl stop filebeat

6.安装Elasticsearch
#elasticsearch全部操作均以elk用户登录
cd /usr/local
#权限授予(elk用户目录进入权限)
chown -R elk.elk /home/
chown -R elk.root /home/sre/deploy/go/src/
shasum -a 512 -c elasticsearch-oss-6.4.2.tar.gz.sha512 #根据.sha512校验文件是否没问题
tar -xzf elasticsearch-oss-6.4.2.tar.gz
#给elk用户/组赋予elasticsearch-oss-6.4.2目录的权限
sudo chown -R elk:elk elasticsearch-oss-6.4.2
cd elasticsearch-oss-6.4.2/

#修改配置文件(结合2.x.生产上线前的配置中的sudo vim ./config/elasticsearch.yml部分修改)
sudo vim ./config/elasticsearch.yml
#找到 network.host: 的一行数据,修改为: network.host: hostIp
#去掉 http.port 前面的注释,如果需要修改端口,也需要将端口号修改为需要的值
#设置集群名:cluster.name: sre-elasticsearch
#设置节点名:master-node-{$node-number}
#设置初始节点发现接入的host列表:discovery.zen.ping.unicast.hosts: ["192.168.23.159", "192.168.23.160" ,"192.168.23.16"]
#设置mater最小节点:discovery.zen.minimum_master_nodes: 2

#以上报错修改配置(el的host是localhost时不会报错)
sudo vim /etc/sysctl.conf
vm.max_map_count=655360
sudo sysctl -p  #修改内核后立即刷新
sudo vim /etc/security/limits.conf
#添加下面四个
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536
ulimit -a #查看配置参数
#root用户下执行 ulimit -n 65536
#切换到elk用户,会话级设置: su - elk  ##之后新建的elk 会话也使用了新的设置
ulimit -a #查看配置参数

#启动Elasticsearch
./bin/elasticsearch -d -p pid
#验证Elasticsearch是否正常运行
curl 'localhost:9200/'  #看到返回json数据即表示正常运行了 curl '192.168.23.159:9200/'

#查看Elasticsearch集群(cluster)状态的api
curl -XGET 'http://192.168.23.159:9200/_cluster/health'

7.安装kibana
#官网目前一个kibana只能指向一个具体的Elasticsearch,对Elasticsearch集群,官方建议kibana指向专门的协调节点(coordinating-node)
tar -xzf kibana-oss-6.4.2-linux-x86_64.tar.gz
#给elk用户/kibana-6.4.2-linux-x86_64目录的权限
sudo chown -R elk:elk kibana-6.4.2-linux-x86_64
cd kibana-6.4.2-linux-x86_64/
#修改配置文件
sudo vim ./config/kibana.yml
#修改server.host成122.11.47.183以使其他机器可以访问kibana,默认端口5601(可通过server.port配置)
#找到server.host: "localhost" ,取消掉注释,改为所在ip(方便外网访问)
#修改Elasticsearch.url 到 '122.11.47.183:9200' '192.168.23.159:5601'
#
sudo mkdir /var/log/kibana
#给elk用户/kibana-6.4.2-linux-x86_64目录的权限
sudo chown -R elk:elk /var/log/kibana
#事实上并未在目录记录日志############################################

#启动kibana
./bin/kibana
#测试是否成功启动,返回成功的json即表示成功启动kibana
curl 'localhost:5601/'  curl '192.168.23.159:5601/' 

8.安装Logstash
#同上
#测试是否成功
./bin/logstash -e 'input { stdin {} } output { stdout {} }'
#成功启动后,在命令行输入,自动识别输入,返回json的output
#添加配置文件,指定启动的配置文件
./bin/logstash -f $file_path/config_file
#配置内容:
output {
elasticsearch { hosts => ["122.11.47.183:9200"] }
stdout { codec => rubydebug }
}
#logstash可以配置到Elasticsearch的集群的output,方法是给一个 host:port的数组

9.关联配置
1.filebeat 在一个终端只安装一个,可以区分不同路径和不同文件夹下的文件,并将其自动推送到kafka的对应topic中去,一个filebeat可以负载均衡地对应一个kafka集群
2.logstash 可以从一个kafka集群的多个指定topic中获取(消费)数据,并将其在记录的根级以type的key-value对将其区分索引开来
3.elasticsearch可以是一个分布式存储,索引的数据库集群,接收多个来源的数据
4.kibana只接受elasticsearch中一个固定主机的数据,以此作为web前段展现,查询,配置维护的入口
5.总结:多个filebeat到fafka集群,单个 logstash 从kafka获取数据,输入到elasticsearch集群,kibana从elasticsearch中固定的一个主机进入/查询/维护数据)

10.最终验证
在filebeat配置的log文件中输入数据,看对应topic是否数据进入kafka,logstash是否成功从kafka获取到数据,kibana上是否可以看到

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容