标签:ack stash 直接 ntpdate red mod ges grep -v 状态图
之前的文档介绍了ELK的架构基础知识,下面简单记录下ELK结合Redis搭建日志分析平台的集群环境部署过程,大致的架构如下:
+ Elasticsearch是一个分布式搜索分析引擎,稳定、可水平扩展、易于管理是它的主要设计初衷
+ Logstash是一个灵活的数据收集、加工和传输的管道软件
+ Kibana是一个数据可视化平台,可以通过将数据转化为酷炫而强大的图像而实现与数据的交互将三者的收集加工,存储分析和可视转化整合在一起就形成了ELK。
基本流程:
1)Logstash-Shipper获取日志信息发送到redis。
2)Redis在此处的作用是防止ElasticSearch服务异常导致丢失日志,提供消息队列的作用。
3)logstash是读取Redis中的日志信息发送给ElasticSearch。
4)ElasticSearch提供日志存储和检索。
5)Kibana是ElasticSearch可视化界面插件。
1)机器环境
主机名 ip地址 部署的服务 elk-node01 192.168.10.213 es01,redis01 elk-node02 192.168.10.214 es02,redis02(vip:192.168.10.217) elk-node03 192.168.10.215 es03,kibana,nginx 三台节点都是centos7.4系统 [root@elk-node01 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) 三台节点各自修改主机名 [root@localhost ~]# hostname elk-node01 [root@localhost ~]# hostnamectl set-hostname elk-node01 关闭三台节点的iptables和selinux [root@elk-node01 ~]# systemctl stop firewalld.service [root@elk-node01 ~]# systemctl disable firewalld.service [root@elk-node01 ~]# firewall-cmd --state not running [root@elk-node01 ~]# setenforce 0 [root@elk-node01 ~]# getenforce Disabled [root@elk-node01 ~]# vim /etc/sysconfig/selinux ...... SELINUX=disabled 三台节点机都要做下hosts绑定 [root@elk-node01 ~]# cat /etc/hosts ...... 192.168.10.213 elk-node01 192.168.10.214 elk-node02 192.168.10.215 elk-node03 同步三台节点机的系统时间 [root@elk-node01 ~]# yum install -y ntpdate [root@elk-node01 ~]# ntpdate ntp1.aliyun.com 三台节点都要部署java8环境 下载地址:https://pan.baidu.com/s/1pLaAjPp 提取密码:x27s [root@elk-node01 ~]# rpm -ivh jdk-8u131-linux-x64.rpm --force [root@elk-node01 ~]# vim /etc/profile ...... JAVA_HOME=/usr/java/jdk1.8.0_131 JAVA_BIN=/usr/java/jdk1.8.0_131/bin PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/sbin/ CLASSPATH=.:/lib/dt.jar:/lib/tools.jar export JAVA_HOME JAVA_BIN PATH CLASSPATH [root@elk-node01 ~]# source /etc/profile [root@elk-node01 ~]# java -version java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
2)部署ElasticSearch机器环境
a)安装Elasticsearch(三台节点都要操作。部署的时候,要求三台节点机器都能正常对外访问,正常联网) [root@elk-node01 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch [root@elk-node01 ~]# cat /etc/yum.repos.d/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 enabled=1 [root@elk-node01 ~]# yum install -y elasticsearch b)配置Elasticsearch集群 elk-node01节点的配置 [root@elk-node01 ~]# cat /etc/elasticsearch/elasticsearch.yml|grep -v "#" cluster.name: kevin-elk #集群名称,三个节点的集群名称配置要一样 node.name: elk-node01.kevin.cn #集群节点名称,一般为本节点主机名。注意这个要是能ping通的,即在各节点的/etc/hosts里绑定。 path.data: /data/es-data #集群数据存放目录,注意目录权限要是elasticsearch path.logs: /var/log/elasticsearch #日志路径,默认就是这个路径 network.host: 192.168.10.44 #服务绑定的网络地址,一般填写本节点ip;也可以填写0.0.0.0 http.port: 9200 #服务接收请求的端口号 discovery.zen.ping.unicast.hosts: ["192.168.10.44", "192.168.10.45", "192.168.10.47"] #添加集群中的主机地址,会自动发现并自动选择master主节点 [root@elk-node01 ~]# mkdir -p /data/es-data [root@elk-node01 ~]# mkdir -p /var/log/elasticsearch/ #默认这个路径是存在的 [root@elk-node01 ~]# chown -R elasticsearch.elasticsearch /data/es-data #这一步授权不能忘记,否则下面的es服务器启动会失败! [root@elk-node01 ~]# chown -R elasticsearch.elasticsearch /var/log/elasticsearch/ [root@elk-node01 ~]# systemctl daemon-reload [root@elk-node01 ~]# systemctl enable elasticsearch [root@elk-node01 ~]# systemctl start elasticsearch [root@elk-node01 ~]# systemctl status elasticsearch [root@elk-node01 ~]# lsof -i:9200 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 20061 elasticsearch 195u IPv6 1940586 0t0 TCP elk-es01.kevin.cn:wap-wsp (LISTEN) ------------------------------------------------------------------------------------------- elk-node02节点的配置 [root@elk-node02 ~]# cat /etc/elasticsearch/elasticsearch.yml |grep -v "#" cluster.name: kevin-elk node.name: elk-node02.kevin.cn path.data: /data/es-data path.logs: /var/log/elasticsearch network.host: 192.168.10.45 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.10.44", "192.168.10.45", "192.168.10.47"] [root@elk-node02 ~]# mkdir -p /data/es-data [root@elk-node02 ~]# mkdir -p /var/log/elasticsearch/ [root@elk-node02 ~]# chown -R elasticsearch.elasticsearch /data/es-data [root@elk-node02 ~]# chown -R elasticsearch.elasticsearch /var/log/elasticsearch/ [root@elk-node02 ~]# systemctl daemon-reload [root@elk-node02 ~]# systemctl enable elasticsearch [root@elk-node02 ~]# systemctl start elasticsearch [root@elk-node02 ~]# systemctl status elasticsearch [root@elk-node02 ~]# lsof -i:9200 ------------------------------------------------------------------------------------------- elk-node03节点的配置 [root@elk-node03 ~]# cat /etc/elasticsearch/elasticsearch.yml |grep -v "#" cluster.name: kevin-elk node.name: elk-node03.kevin.cn path.data: /data/es-data path.logs: /var/log/elasticsearch network.host: 192.168.10.47 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.10.44", "192.168.10.45", "192.168.10.47"] [root@elk-node03 ~]# mkdir -p /data/es-data [root@elk-node03 ~]# mkdir -p /var/log/elasticsearch/ [root@elk-node03 ~]# chown -R elasticsearch.elasticsearch /data/es-data [root@elk-node03 ~]# chown -R elasticsearch.elasticsearch /var/log/elasticsearch/ [root@elk-node03 ~]# systemctl daemon-reload [root@elk-node03 ~]# systemctl enable elasticsearch [root@elk-node03 ~]# systemctl start elasticsearch [root@elk-node03 ~]# systemctl status elasticsearch [root@elk-node03 ~]# lsof -i:9200 c)查看elasticsearch集群信息(下面命令在任意一个节点机器上操作都可以) [root@elk-node01 ~]# curl -XGET ‘http://192.168.10.44:9200/_cat/nodes‘ 192.168.10.45 192.168.10.45 13 20 0.05 d m elk-node02.kevin.cn 192.168.10.44 192.168.10.44 7 22 0.00 d m elk-node01.kevin.cn 192.168.10.47 192.168.10.47 8 24 0.00 d * elk-node03.kevin.cn #带*号表示该节点是master主节点。即本集群环境下es3节点是主节点 后面添加 ?v ,表示详细显示 [root@elk-node01 ~]# curl -XGET ‘http://192.168.10.44:9200/_cat/nodes?v‘ host ip heap.percent ram.percent load node.role master name 192.168.10.45 192.168.10.45 15 20 0.02 d m elk-node02.kevin.cn 192.168.10.44 192.168.10.44 6 22 0.00 d m elk-node01.kevin.cn 192.168.10.47 192.168.10.47 8 24 0.00 d * elk-node03.kevin.cn 查询集群状态方法 [root@elk-node01 ~]# curl -XGET ‘http://192.168.10.44:9200/_cluster/state/nodes?pretty‘ { "cluster_name" : "kevin-elk", "nodes" : { "dFvBDQ6qQiGqiGbT9AOQmA" : { "name" : "elk-node02.kevin.cn", "transport_address" : "192.168.10.45:9300", "attributes" : { } }, "upj1QlY1S-uleLaJeXfHzg" : { "name" : "elk-node01.kevin.cn", "transport_address" : "192.168.10.44:9300", "attributes" : { } }, "pD6BJY5UTXqKgyFKzeZctA" : { "name" : "elk-node03.kevin.cn", "transport_address" : "192.168.10.47:9300", "attributes" : { } } } } 查询集群中的master [root@elk-node01 ~]# curl -XGET ‘http://192.168.10.44:9200/_cluster/state/master_node?pretty‘ { "cluster_name" : "kevin-elk", "master_node" : "pD6BJY5UTXqKgyFKzeZctA" } 或者 [root@elk-node01 ~]# curl -XGET ‘http://192.168.10.44:9200/_cat/master?v‘ id host ip node pD6BJY5UTXqKgyFKzeZctA 192.168.10.47 192.168.10.47 elk-node03.kevin.cn 查询集群的健康状态(一共三种状态:green、yellow,red;其中green表示健康) [root@elk-node01 ~]# curl -XGET ‘http://192.168.10.44:9200/_cat/health?v‘ epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent 1527567139 12:12:19 kevin-elk green 3 3 24 12 0 0 0 0 - 100.0% 或者 [root@elk-node01 ~]# curl -XGET ‘http://192.168.10.44:9200/_cluster/health?pretty‘ { "cluster_name" : "kevin-elk", "status" : "green", "timed_out" : false, "number_of_nodes" : 3, "number_of_data_nodes" : 3, "active_primary_shards" : 12, "active_shards" : 24, "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.0 } d)在线安装elasticsearch插件(三个节点上都要操作,且机器都要能对外正常访问) 安装head插件 [root@elk-node01 ~]# /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head 安装kopf插件 [root@elk-node01 ~]# /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf 安装bigdesk插件 [root@elk-node01 ~]# /usr/share/elasticsearch/bin/plugin install hlstudio/bigdesk 三个插件安装后,记得给plugins目录授权,并重启elasticsearch服务 [root@elk-node01 ~]# chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/plugins [root@elk-node01 ~]# ll /usr/share/elasticsearch/plugins total 12 drwxr-xr-x 3 elasticsearch elasticsearch 4096 May 28 19:20 bigdesk drwxr-xr-x 6 elasticsearch elasticsearch 4096 May 28 19:20 head drwxr-xr-x 8 elasticsearch elasticsearch 4096 May 28 19:21 kopf [root@elk-node01 ~]# systemctl restart elasticsearch 最后就可以查看插件状态,直接访问http://ip:9200/_plugin/"插件名"; head集群管理界面的状态图,五角星表示该节点为master; 这里在三个节点机上安装了插件,所以三个节点都可以访问插件状态
Centos7下ELK+Redis日志分析平台的集群环境部署记录
标签:ack stash 直接 ntpdate red mod ges grep -v 状态图
原文地址:https://www.cnblogs.com/kevingrace/p/9104423.html