ELK 初探

2018-07-02 15:34:28 +08:00
 knownsec200

需求背景:

业务发展越来越大,服务器越来越多,各种访问日志,应用日志,错误日志也越来越多,开发人员排查问题,需要上服务器查,不方便,运营人员需要一些数据,也需要运维人员上服务器分子日志。 Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful 风格接口,多数据源,自动搜索负载等。 Logstash 是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)。 kibana 也是一个开源和免费的工具,他 Kibana 可以为 Logstash 和 Elastic Search 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

一、准备工作

三台服务器环境: 192.168.153.13 (主节点) cnetos7 192.168.153.14 (数据节点) centos7 192.168.153.15 (数据节点) centos7 角色划分: 3 台全部安装 elasticsearch 主节点上安装 kibana 其中一个( 192.168.153.15 )数据节点上安装 logstash

二、部署工作:

1、三台机器上都安装 jdk yum install -y java-1.8.0-openjdk 2、安装 elasticsearch 下载 6.3 版本的 在一台机器上执行 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.rpm 用 scp 同步到另外两台机器上 然后分别在三台机器上执行: rpm -ivh elasticsearch-6.3.0.rpm 3、配置 es 在主节点上配置如下信息: vim /etc/elasticsearch/elasticsearch.yml cluster.name: test node.name: test-01 node.master: true node.data: false path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch network.host: 192.168.153.13 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.153.13","192.168.153.14", "192.168.153.15"] 配置完保存,分别拷贝到其他两个节点上 在一个从节点: vim /etc/elasticsearch/elasticsearch.yml #修改以下 4 行数据 node.name: test-14 node.master: false node.data: true network.host: 192.168.153.14 在另一个从节点也是同样的修改(注意 ip 和 node.name 不一样) 4、启动 es 顺序:主,从,从 systemctl start elasticsearch #curl '192.168.153.13:9200/_cluster/health?pretty' 查看集群节点有没有问题

5、安装 kibana (主机器上) wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.0-x86_64.rpm rpm -ivh kibana-6.3.0-x86_64.rpm vim /etc/kibana/kibana.yml #配置 kibana server.port: 5601 server.host: 192.168.153.13 elasticsearch.url: "http://192.168.153.13:9200" 启动: systemctl start kibana 查看进程,端口,检查服务是否启动起来 浏览器访问:192.168.153.13:5601,可以访问到说明成功了 6、安装 logstash 在 192.168.153.15 机器上安装 wget https://artifacts.elastic.co/downloads/logstash/logstash-6.3.0.rpm rpm -ivh logstash-6.3.0.rpm 配置 logstash vim /etc/logstash/conf.d/syslog.conf #以收集系统日志为例 input{ syslog{ type => "syslog-syslog" port => 10514 } } output{ stdout{ codec => rubydebug } } 检查配置文件是否有错: cd /usr/share/logstash/bin ./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.te st_and_exit 显示 Configuration OK,说明可以启动了 注:启动之前要做一件事,检查 10514 端口是否打开,没有打开,那么配置一下 vim /etc/rsyslog.conf 在#### RULES #### 下面添加一行 .@@192.168.153.15:10514 启动: ./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf 注:此处一个小实验 执行了./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf,终端页面不会退出,在新打开一个终端页面,执行 systemctl restart rsyslog,然后反过去看之前的终端页面,会出现日志信息(图略)


三、配置 logstash 收集信息展示在 kibana 上 1、配置并启动 logstash vim /etc/logstash/conf.d/syslog.conf input{ syslog{ type => "syslog-syslog" port => 10514 } } output{ elasticsearch{ hosts => ["192.168.153.13:9200"] index => "system-syslog-%{+YYYY.MM}" } } 检查配置: /usr/share/logstash/bin/logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.te st_and_exit 为对 logstash 的日志和数据目录授权: chown -R logstash /var/lib/logstash/ chown -R logstash /log/lib/logstash/ 启动: systemctl restart logstash 稍等查看端口 9600 是否启动起来

2、kibana 上看日志 配置 logstash 监听 192.168.153.15 这个 ip vim /etc/logstash/logstash.yml http.host: "192.168.153.15" systemctl restart logstash

web 页面打开 kibana 并配置索引; 索引可以执行:curl '192.168.153.13:9200/_cat/indices?v' 来获取

然后下一步,create ; 回到首页 discover,可以看到

3、实验: 终端窗口关闭 192.168.153.15 这个页面,再重新连接,会看到 /var/log/messages 下会生成新的日志; 刷新 kibana 页面,可以看到新生成的日志

3106 次点击
所在节点    奇思妙想
10 条回复
FYK
2018-07-02 17:06:25 +08:00
ballshapesdsd
2018-07-02 17:10:16 +08:00
@FYK #1
artandlol
2018-07-02 22:28:30 +08:00
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -e ES_MIN_MEM=128m  -e ES_MAX_MEM=1024m -it --name elk sebp/elk:es220_l222_k441
service logstash stop
/opt/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["localhost"] } }'
service logstash start
artandlol
2018-07-02 22:31:04 +08:00
mingyun
2018-07-02 22:52:02 +08:00
有更好的排版吗
yanaraika
2018-07-02 22:57:50 +08:00
docker-compose 一键启动就行了……
vencent
2018-07-02 23:53:17 +08:00
排版有点难受噢
fireapp
2018-07-03 09:53:12 +08:00
v2 都成了 helloworld 的个人 blogs 了
FYK
2018-07-03 11:23:24 +08:00
@ballshapesdsd #2 这是为啥啊
jasonslyvia
2018-07-05 17:30:59 +08:00
好歹排个版

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/467490

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX