ELK部署生产实践部署(1)

具体文档参照我的笔记

### 日志采集前规范解决事项:

1、开发人员不能登录线上服务器查看详细日志。

2、各个系统都有日志,日志数据分散难以查找。

3、日志数据量大、查询速度慢

4、日志数据大量延迟

5、服务器时间不同步,导致日期错误

### 解决问题

1. 方便快速查看各种日志

2. 故障发生,处理故障时才去查看日志,没有完整的日志告警机制

3. 节点多、日志分散、收集日志难度加大、没有统一规范存取路径

4. 运行日志、错误日志、需要固定存放位置

###

部署环境

[[email protected]_agent logfile]# cat /etc/redhat-release

CentOS Linux release 7.0.1406 (Core)

### ELKstack

- [ ] 运行流程: 收集--->>存储 ----->>搜索+统计+展示------->>报警,数据分析

### Elastic Serch 是一个基于Lucene搜索服务器,提供了一个分布式多用户能力的全文搜索引擎。

### ES特点

- [ ] cluster  集群

- 集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主节点是对于集群内部管理的。

## ELKsatack介绍,架构图如下

- [x] 对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),我们将这三个组合起来的技术称之为ELKStack,所以说ELKStack指的是Elasticsearch、Logstash、Kibana技术栈的结合,一个通用的架构如下图所示:

![image](http://note.youdao.com/yws/api/personal/file/910BE9E6CA6F4D90B8A709959FBF34D7?method=download&shareKey=b54685b1119f1d6c39403b71f7d96eb7)

## ElkStack部署

#### Elasticsearch、需要Java环境,所以直接使用yum安装。

1. 安装java、并检查是否安装成功

```

[[email protected]_agent ~]#  yum install java -y

[[email protected]_agent ~]# java -version

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)

[[email protected]_agent ~]#

```

2. 下载并安装GPG key

[[email protected]_agent ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

3. 编辑yum仓库

[[email protected]_agent ~]# vim /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

4. yum安装需要配置limits

[[email protected]_agent ~]# vim /etc/security/limits.conf

elasticsearch soft memlock unlimited

elasticsearch hard memlock unlimited

5. 安装ElasticSearch

[[email protected]_agent ~]# yum install -y elasticsearch logstash kibana

## 配置Elasticsearch

[[email protected]_agent ~]# vim /etc/elasticsearch/elasticsearch.yml

[[email protected]_agent ~]# mkdir -p /data/es-data ##创建存放目录

cluster.name: elkcluster  ##集群名称

node.name: elk-server01   ##节点名称

path.data: /data/es-data  ##修改目录存放路径

path.logs: /var/log/elasticsearch/    ##修改日志存放路径

bootstrap.memory_lock: true    不使用交换分区,锁住内存

network.host: 172.16.1.200    监听主机

http.port: 9200   打开监听端口

### 查看更改配置文件的内容

[[email protected]_agent ~]# grep ‘^[a-z]‘ /etc/elasticsearch/elasticsearch.yml

cluster.name: elkcluster

node.name: elk-server01

path.data: /data/es-data

path.logs: /var/log/elasticsearch/

bootstrap.memory_lock: true

network.host: 172.16.1.200

http.port: 9200

action.destructive_requires_name: false

discovery.zen.ping.unicast.hosts: ["172.16.1.200", "172.16.1.201"]

[[email protected]_agent ~]#

### 启动elasticsearch

```

[[email protected]_agent ~]#  systemctl start elasticsearch

### 查看启动状态、启动失败

[[email protected]_agent ~]#  systemctl status elasticsearch

● elasticsearch.service - Elasticsearch

Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)

Active: failed (Result: exit-code) since Mon 2017-06-26 14:52:39 EDT; 2s ago

Docs: http://www.elastic.co

Process: 20760 ExecStart=/usr/share/elasticsearch/bin/elasticsearch -Des.pidfile=${PID_DIR}/elasticsearch.pid -Des.default.path.home=${ES_HOME} -Des.default.path.logs=${LOG_DIR} -Des.default.path.data=${DATA_DIR} -Des.default.path.conf=${CONF_DIR} (code=exited, status=1/FAILURE)

Process: 20759 ExecStartPre=/usr/share/elasticsearch/bin/elasticsearch-systemd-pre-exec (code=exited, status=0/SUCCESS)

Main PID: 20760 (code=exited, status=1/FAILURE)

Jun 26 14:52:39 master_agent elasticsearch[20760]: at org.elasticsearch.bootstrap.Security.createPermissions(Security.java:212)

Jun 26 14:52:39 master_agent elasticsearch[20760]: at org.elasticsearch.bootstrap.Security.configure(Security.java:118)

Jun 26 14:52:39 master_agent elasticsearch[20760]: at org.elasticsearch.bootstrap.Bootstrap.setupSecurity(Bootstrap.java:212)

Jun 26 14:52:39 master_agent elasticsearch[20760]: at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:183)

Jun 26 14:52:39 master_agent elasticsearch[20760]: at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286)

Jun 26 14:52:39 master_agent elasticsearch[20760]: at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:45)

Jun 26 14:52:39 master_agent elasticsearch[20760]: Refer to the log for complete error details.

Jun 26 14:52:39 master_agent systemd[1]: elasticsearch.service: main process exited, code=exited, status=1/FAILURE

Jun 26 14:52:39 master_agent systemd[1]: Unit elasticsearch.service entered failed state.

Jun 26 14:52:39 master_agent systemd[1]: elasticsearch.service failed.

[[email protected]_agent ~]#

### 解决办法

- [x] 查看日志

- [[email protected]_agent ~]# tail -100 /var/log/elasticsearch/elkcluster.log

- [x] 修改目录所属权限

- [[email protected]_agent ~]# chown -R elasticsearch:elasticsearch /data/es-data/

### 查看启动

[[email protected]_agent ~]#  systemctl start elasticsearch

[[email protected]_agent ~]#  systemctl status elasticsearch

● elasticsearch.service - Elasticsearch

Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)

Active: active (running) since Mon 2017-06-26 14:56:06 EDT; 2s ago

Docs: http://www.elastic.co

Process: 20802 ExecStartPre=/usr/share/elasticsearch/bin/elasticsearch-systemd-pre-exec (code=exited, status=0/SUCCESS)

Main PID: 20803 (java)

CGroup: /system.slice/elasticsearch.service

└─20803 /bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFrac...

### 检查端口是否开启

[[email protected]_agent ~]#  systemctl restart elasticsearch

[[email protected]_agent ~]# ss -ntlp

State       Recv-Q Send-Q                                        Local Address:Port                                          Peer Address:Port

LISTEN      0      50                                                        *:3306                                                     *:*      users:(("mysqld",19594,14))

LISTEN      0      128                                                       *:22                                                       *:*      users:(("sshd",1372,3))

LISTEN      0      50                                      ::ffff:172.16.1.201:9200                                                    :::*      users:(("java",21205,91))

LISTEN      0      50                                      ::ffff:172.16.1.201:9300                                                    :::*      users:(("java",21205,79))

LISTEN      0      128                                                      :::22                                                      :::*      users:(("sshd",1372,4))

[[email protected]_agent ~]#

### 浏览器访问查看下结果

http://172.16.1.201:9200/

内容如下:

{

"name" : "elk-server01",

"cluster_name" : "elkcluster",

"cluster_uuid" : "bkJEwJGARXq2Ki2xWa0oTQ",

"version" : {

"number" : "2.4.6",

"build_hash" : "5376dca9f70f3abef96a77f4bb22720ace8240fd",

"build_timestamp" : "2017-07-18T12:17:44Z",

"build_snapshot" : false,

"lucene_version" : "5.5.4"

},

"tagline" : "You Know, for Search"

}

时间: 2024-11-02 21:43:28

ELK部署生产实践部署(1)的相关文章

开源日志分析系统ELK平台搭建部署

开源日志分析系统ELK平台搭建部署 一.前言 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总. 集中化管理

postgresql 11.6部署主从部署(归档模式)

环境:OS:CentOs 7Postgres-11.6 1.安装步骤1.1    环境部署数据库部署节点    ip    角色Host01    192.168.1.130    主Host02    192.168.1.131    从 1.2  配置等效连接因为我们需要将主库的归档日志通过scp免密传输到备库等效连接配置可以参考https://www.cnblogs.com/hxlasky/p/12204180.html 1.3  主库安装1.3.1 安装介质准备下载地址: https:/

ELK集群部署及收集nginx日志

一.ELK说明 二.架构图 三.规划说明 四.安装部署nginx+logstash 五.安装部署redis 六.安装部署logstash server 七.安装部署elasticsearch集群 八.安装kibana 一.ELK说明 ELK Stack 是 Elasticsearch.Logstash.Kibana 三个开源软件的组合.在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称. ELK Stack 在最近两年迅速崛起,成为机器数据

ELK 日志服务器安装部署

高清原文 乌龟运维 wuguiyunwei.com 简单介绍: ELK是三个开源工具组成,简单解释如下: Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash是一个完全开源的工具,它可以对你的日志进行收集.过滤,并将其存储供以后使用(如,搜索). Kibana 也是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的

ELK详细安装部署

一.前言 ? 日志主要包括系统日志和应用程序日志,运维和开发人员可以通过日志了解服务器中软硬件的信息,检查应用程序或系统的故障,了解故障出现的原因,以便解决问题.分析日志可以更清楚的了解服务器的状态和系统安全状况,从而可以维护服务器稳定运行. ? 但是日志通常都是存储在各自的服务器中.如果管理数十台服务器, 查阅日志需要依次登陆不同的服务器,查看过程就会很繁琐从而导致工作效率低下.虽然可以使用 rsyslog 服务将日志汇总.但是统计一些日志中的数据或者检索也是很麻烦的,一般使用grep.awk

ELK环境的部署与安装

ELK简介 Elasticsearch:是一个高度可扩展的开源全文搜索和分析引擎.能够快速,实时的存储,搜索和分析大量数据,通常用做底层引擎技术. Kibana:是一个开源分析和可视化平台,是进入Elastic Stack的窗口,可以在Elasticsearch中对程序的数据进行可视化探索和实时分析,旨在与Elasticsearch协同工作. 使用Kibana搜索,查看和与存储在Elasticsearch索引中的数据进行交互,可以轻松执行数据分析,并在各种表格,图标和地图中查看数据,基于浏览器的

ELK 5.0部署安装

版本说明: Elasticsearch 5.0 Logstash 5.0(暂时未用) Filebeat 5.0 Kibana 5.0 ELK是一套采集日志并进行清洗分析的系统,由于目前的分析的需求较弱,所以仅仅采用filebeat做日志采集,没有使用logstash 一.环境准备&&软件安装: 1.首先,需要安装Java环境 下载安装包:jre-8u111-linux-x64.rpm 安装:yum install jre-8u111-linux-x64.rpm 2. 新建一个用户,else

ELK之topbeat部署

topbeat定期收集系统信息如每个进程信息.负载.内存.磁盘等等,然后将数据发送到elasticsearch进行索引,最后通过kibana进行展示. 下面是具体的安装及配置步骤: 1.安装topbeat $ tar zxf topbeat-1.3.1-x86_64.tar.gz $ mv topbeat-1.3.1 topbeat 2.配置topbeat $ vim topbeat/topbeat.yml #修改如下内容 input: # In seconds, defines how oft

ELK集群部署

一.ELK简介 ElasticsearchElasticsearch是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据.它被用作全文检索.结构化搜索.分析以及这三个功能的组合 2.LogstashLogstash是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理. 3.Kibanakibana是一个开源和免费的工具,它可以为Logstash和ElasticSearch提供的日志分析友好的Web界面,可以帮助