elk部署生产实践部署

author author     2022-09-11     369

关键词:

                    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"

}



本文出自 “一杯水” 博客,请务必保留此出处http://6528161.blog.51cto.com/6518161/1952127

ansible生产环境使用场景:批量部署elk客户端(代码片段)

背景应审计要求,系统日志需保留1年时间,现将私有云上所有的系统日志message上送elk平台[root@xxx-1opt]#more/etc/ansible/yaml/product/message_elk.yaml#上传私有云系统日志message至elk平台----hosts:"hostlist"remote_user:rootgather_facts:notasks:-name:copyf 查看详情

将 Play 代码从 git 存储库部署到生产环境的最佳实践是啥?

】将Play代码从git存储库部署到生产环境的最佳实践是啥?【英文标题】:WhatarebestpracticesregardingthedeploymentofPlaycodefromagitrepotoproduction?将Play代码从git存储库部署到生产环境的最佳实践是什么?【发布时间】:2017-02-2613:36:12【问题... 查看详情

elk实践:基础入门(代码片段)

...尝试尝试。原本打算按照教程《ELK集中式日志平台之二—部署》(作者:樊浩柏科学院)进行测试的,没想到一路出了很多坑,所以又按照自己成功搭建的流程写了本文。《ELK集中式日志平台之二—部署》一文参考价值非常大,... 查看详情

在实际生产项目中部署(管理依赖)django 可重用应用程序的最佳实践是啥?

】在实际生产项目中部署(管理依赖)django可重用应用程序的最佳实践是啥?【英文标题】:What\'sthebestpracticetodeploy(managedependency)thedjangoreusableappsinarealproductionproject?在实际生产项目中部署(管理依赖)django可重用应用程序的最... 查看详情

springboot最佳实践集成jsp与生产环境部署

...介绍一下SpringBoot怎么集成JSP开发,以及生产环境的详细部署方法。二、集成JSP开发环境SpringBoot2.0.4RELEASETomcat9.0.10IDEA(IntellijIDEA简称,下文统 查看详情

elk中的elasticsearch集群的部署

本文内容背景ES集群中第一个master节点ESslave节点本文总结Elasticsearch(以下简称ES)搭建集群的经验。以Elasticsearch-rtf-2.2.1版本为例。我搭过三个集群:研究ELK时搭了一个;测试环境搭了一个;生产环境搭了一个。回想起来,搭建... 查看详情

elk-elasticsearch-6.3.2部署(代码片段)

 参考博客:linux下ElasticSearch.6.2.2集群安装与head、Kibana、X-Pack..插件的配置安装参考博客:ELK5.5.1插件安装实践纪要(head/bigdesk/kopf/cerebo/中文分词插件)参考博客:ELK构建MySQL慢日志收集平台详解参考博客:针对Logstash吞吐量... 查看详情

cobbler自动化部署最佳实践

第1章Cobbler自动化部署最佳实践运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统,如果不通过自动化来完成,根本是不可想象的。面对生产环境中不同服... 查看详情

elk日志系统部署实现(代码片段)

文章目录1.前言2.ELK服务安装部署2.1Log4j配置2.2Filebeat配置2.2.1Filebeat数据流转2.2.2Filebeat部署运行2.3Kafka配置2.3.1Kafka与Zookeeper2.3.2Zookeeper的作用2.3.3Kafka数据流转2.3.4Kafka安装部署2.3.5Kafka优化2.4Logstash配置与数据流转2.4.1Logstash数据流转... 查看详情

elk-5.0.1_生产实践杂乱笔记

[[email protected]~]#cat/etc/redhat-release (经实践,elk5.0.1需要内核3.点几以上版本支持)CentOSLinuxrelease7.2.1511(Core)IP:本地192.168.1.73[[email protected]~]#cat/etc/hosts127.0.0.1 localhostlocalh 查看详情

运维工程师系统日志收集elk之elasticsearch服务部署

...LK(elasticsearch、logstash、kibana)专题之elasticsearch软件服务部署,采用集群模式部署,使用Vmware构建3台虚拟机,全部代码经过生产环境测试验证。1.1部署环境准备   本文应用全部软件版本如下:操作系统Ubuntu22.04.1LTS应... 查看详情

kubernetes(k8s)生产级实践指南从部署到核心应用

第1章课程简介【学前须知】本章对这门课程进行说明,包括:课程整体设计思路、课程使用的技术介绍、课程的学习规划、高效学习的方式方法等。第2章kubernetes快速入门【k8s必知必会】本章中将从核心概念、架构设计、认证授... 查看详情

elk部署步骤最后filebeat+elk

...ash、Kiabana组成。ElasticSearchLogstashKiabana补充Elasticsearch集群部署一、环境准备(在Node1、Node2节点上操作,只展示node1)更改node节点主机名配置域名解析安装java二、部署Elasticsearch软件安装软件包加载服务系统修改主 查看详情

Django 和 VirtualEnv 开发/部署最佳实践

】Django和VirtualEnv开发/部署最佳实践【英文标题】:DjangoandVirtualEnvDevelopment/DeploymentBestPractices【发布时间】:2011-01-1512:16:28【问题描述】:只是好奇人们如何结合virtualenv部署他们的Django项目更具体地说,您如何使您的生产virtualen... 查看详情

多阶段部署的 Team City 最佳实践是啥?

】多阶段部署的TeamCity最佳实践是啥?【英文标题】:WhataretheTeamCitybestpracticesformultistagedeployment?多阶段部署的TeamCity最佳实践是什么?【发布时间】:2011-12-0800:13:14【问题描述】:我们有3个环境:开发:TeamCity在此处部署,用于... 查看详情

elk服务搭建(开源实时日志分析elk平台部署)(低版本—简单部署)

开源实时日志分析ELK平台部署日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能... 查看详情

自动化部署实践(代码片段)

1.1早期手动部署代码方式1、纯手工scp上传2、纯手工登录,gitpull、svnupdate3、纯手工xftp往上拉4、开发给打一个压缩包,rz上去然后解压缺点1、运维全程参与,占用大量时间2、上线速度太慢3、人为失误过多,管理混乱4、回滚的太... 查看详情

elk部署详解--filebeat

filebeat.yml######################FilebeatConfigurationExample##########################Thisfileisanexampleconfigurationfilehighlightingonlythemostcommon#options.Thefilebeat.reference.ymlfilefromthesa 查看详情