日志管理ELK

日志管理ELK运维架构日志管理ELK:ElasticSearch、Logstash和Kibana介绍,结合redis安装配置及展示更多干货分布式实战(干货)springcloud实战(干货)mybatis实战(干货)springboot实战(干货)React入门实战(干货)构建中小型互联网企业架构(干货)python学习(干货)ElasticSearch笔记一、 介绍1、日志主要包括系…

大家好,又见面了,我是你们的朋友全栈君。

运维架构日志管理ELK:ElasticSearch 、 Logstash 和 Kibana 介绍,结合redis安装配置及展示

更多干货

一、 介绍

  • 1、日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

  • 2、通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。

  • 3、集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。

  • 4、开源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。官方网站:https://www.elastic.co/products

  • 1.Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

  • 2.Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)。

  • 3.kibana 也是一个开源和免费的工具,他Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

image

  • 在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,
  • 将过滤后的内容发送到logstash indexer,logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,
  • 可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。

二、 安装ElasticSearch

1、 安装jdk

wget  http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.tar.gz
mkdir /usr/local/java 
tar -zxf jdk-8u45-linux-x64.tar.gz -C /usr/local/java/
export JAVA_HOME=/usr/local/java/jdk1.8.0_4
export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

2、 安装ElasticSearch

wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.2.0/elasticsearch-2.2.0.tar.gz
解压:tar -zxf elasticsearch-2.2.0.tar.gz -C ./
安装elasticsearch的head插件: 
cd /data/program/software/elasticsearch-2.2.0 
./bin/plugin install mobz/elasticsearch-head 

执行结果:

image

安装elasticsearch的kopf插件

./bin/plugin install lmenezes/elasticsearch-kopf 

执行结果:

image

创建elasticsearch的data和logs目录

mkdir data
mkdir logs

配置elasticsearch的配置文件

cd config/

备份一下源文件:

cp elasticsearch.yml elasticsearch.yml_back

编辑配置文件:

vim elasticsearch.yml 

配置内容如下:

cluster.name: dst98  主机名称
node.name: node-1
path.data: /data/program/software/elasticsearch-2.2.0/data
path.logs: /data/program/software/elasticsearch-2.2.0/logs
network.host: 10.15.0.98   主机IP地址
network.port: 9200    主机端口

启动elasticsearch: ./bin/elasticsearch

报如下错误:说明不能以root账户启动,需要创建一个普通用户,用普通用户启动才可以。

[root@dst98 elasticsearch-2.2.0]# ./bin/elasticsearch
Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93)
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
Refer to the log for complete error details.

添加用户及用户组

#groupadd search
#useradd -g search  search

将data和logs目录的属主和属组改为search

#chown search.search /elasticsearch/ -R

然后切换用户并且启动程序:

su search
./bin/elasticsearch

后台启动:nohup ./bin/elasticsearch &

启动成功后浏览器访问如下:

image

通过安装head插件可以查看集群的一些信息,访问地址及结果如下:

image

三、安装Kibana

下载kibana:

wget https://download.elastic.co/kibana/kibana/kibana-4.4.0-linux-x64.tar.gz

解压:

tar -zxf kibana-4.4.0-linux-x64.tar.gz -C ./

重命名:

mv kibana-4.4.0-linux-x64 kibana-4.4.0

先备份配置文件:

/data/program/software/kibana-4.4.0/config
cp kibana.yml  kibana.yml_back

修改配置文件:

server.port: 5601           
server.host: "10.15.0.98"
elasticsearch.url: "http://10.15.0.98:9200"    --ip为server的ip地址
kibana.defaultAppId: "discover"
elasticsearch.requestTimeout: 300000
elasticsearch.shardTimeout: 0

启动程序:

 nohup ./bin/kibana &

四、配置Logstash

下载logstash到要采集日志的服务器上和安装ELK的机器上。

wget https://download.elastic.co/logstash/logstash/logstash-2.2.0.tar.gz

解压: tar -zxf logstash-2.2.0.tar.gz -C ./

运行如下命令进行测试:

./bin/logstash -e 'input { stdin{} } output { stdout {} }' 
Logstash startup completed
Hello World!     #输入字符
2015-07-15T03:28:56.938Z noc.vfast.com Hello World!  #输出字符格式

注:其中-e参数允许Logstash直接通过命令行接受设置。使用CTRL-C命令可以退出之前运行的Logstash。

1、配置ElasticSearch上的LogStash读取redis里的日志写到ElasticSearch

进入logstash目录新建一个配置文件:

cd logstash-2.2.0 
touch logstash-indexer.conf #文件名随便起 

写如下配置到新建立的配置文件:

input和output根据日志服务器数量,可以增加多个。
input {
    redis {
        data_type => "list"
        key => "mid-dst-oms-155"
        host => "10.15.0.96"
        port => 6379
        db => 0
        threads => 10
        }
}

output {
        if [type] == "mid-dst-oms-155"{
        elasticsearch {
        hosts => "10.15.0.98"
        index => "mid-dst-oms-155"
        codec => "json"
        }
       }
}

启动logstash:

nohup ./bin/logstash -f logstash-indexer.conf  -l logs/logstash.log &

2、配置客户端的LogStash读取日志写入到redis

进入logstash目录新建一个配置文件:

cd logstash-2.2.0 
touch logstash_agent.conf #文件名随便起 

写如下配置到新建立的配置文件:

input和output根据日志服务器数量,可以增加多个。

input { 
file { 
path => [“/data/program/logs/MID-DST-OMS/mid-dst-oms.txt”] 
type => “mid-dst-oms-155” 
} 
} 
output{ 
redis { 
host => “125.35.5.98” 
port => 6379 
data_type => “list” 
key => “mid-dst-oms-155” 
} 
}

启动logstash:

nohup ./bin/logstash -f logstash_agent.conf -l logs/logstash.log &

备注:

logstash中input参数设置: 
1. start_position:设置beginning保证从文件开头读取数据。 
2. path:填入文件路径。 
3. type:自定义类型为tradelog,由用户任意填写。 
4. codec:设置读取文件的编码为GB2312,用户也可以设置为UTF-8等等 
5. discover_interval:每隔多久去检查一次被监听的 path 下是否有新文件,默认值是15秒 
6. sincedb_path:设置记录源文件读取位置的文件,默认为文件所在位置的隐藏文件。 
7. sincedb_write_interval:每隔15秒记录一下文件读取位置

相关内容

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136851.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mvc框架流程_知识框架怎么做

    mvc框架流程_知识框架怎么做最简单的CI模型:注意:模型需要用到数据库配置文件在appcation/config.php这里我们要用到数据库,需要将databases.php中的相关参数填写一下,具体不再赘述。直接进入主题:MVC:1、首先谈“M”模型CI中的模型存放在application/models文件夹里命名规则是:类名_model.php文件

    2022年10月26日
  • stm32编程入门书籍_STM32开发板

    stm32编程入门书籍_STM32开发板1.STM32需要了解的基础知识STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARMCortex®-M0,M0+,M3,M4和M7内核,按内核架构分为不同产品:主流产品(STM32F0、STM32F1、STM32F3)、超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)、高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)。内核是ARM公司统一设计的于ARMv7架构的Cortex系列由ARM公司在2006年推出,Co

    2022年9月7日
  • hostapd和dhcpd

    hostapd和dhcpdhostapd.conf#####hostapdconfigurationfile##############################################interface=wlan0ctrl_interface=/var/run/hostapdssid=rtwapchannel=6wpa=2wpa_passphrase=87654321#bridge=br0

    2022年5月21日
  • android自动画廊,Android3D画廊效果与自动轮播Banner

    android自动画廊,Android3D画廊效果与自动轮播Banner最开始项目需要使用3D画廊效果作为首页轮播,网上找了半天也没有比较满意的,最终决定自己写一个。本控件采用的是viewpager完成的,支持无限滑动的3D视觉的画廊效果、平面普通广告栏轮播。提供对外方法:指示器图片自定义、小图片位置、是否圆角等。本代码已托管到[github]https://github.com/lzjin/ViewPagerGallery1、先看效果图:gif1.gifgif2….

    2022年5月6日
  • Python安装失败_python第三方库安装失败

    Python安装失败_python第三方库安装失败详细内容相信很多刚开始入门Python的菜鸟们在安装python第三方库的时候,多多少少都会遇到一些安装失败的问题。下面,我将结合自身经验,分享一下在windows操作系统上此类问题的解决办法。一、清楚自己所安装的python版本(2.7或3.6,andmore);(推荐学习:Python视频教程)二、检查是否安装了pip,pip版本是否可以使用;三、网络是否正常;如果确认上面都没有问题的话,就…

    2022年10月2日
  • pycharm如何设置背景图片_微信主题背景图片

    pycharm如何设置背景图片_微信主题背景图片1、在pycharm界面用快捷键Ctrl+shift+A或连按两次Shift键,在输入框中输入SetBackgroundImage,点击下图箭头所指位置:2、点击SetBackgroundImage后进入如下图所示界面,进行设置:3、设置完成后,点击右下角的ok即可。上效果图:cool……4、取消背景设置:第二步点击SetBackgroundImage后进入的界面中,点击右下角第三个按钮ClearandClose即可取消。…

    2022年8月27日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号