syslog-ng部署:

  用于接收交换机输出的日志。

  syslog-ng安装很简单,可以顺便搜一下,文章有很多。我是yum直接安装的。

  syslog-ng配置:

vi /etc/syslog-ng/syslog-ng.conf

  配置文件需要添加source 和destination

#设置接收日志的协议和端口,localhost填写本机IP地址
source s_remote {
tcp(ip(localhost) port());
udp(ip(localhost) port());
}; #收到的日志存放本地一份(elk搭建存不存本地都无所谓)
destination d_file
{ file("/netlog/logs_${YEAR}-${MONTH}-${DAY}");
}; #收到的日志交给logstash处理,定义传输协议udp,端口5144(这里对应logstash的input)
destination d_logstash { udp ("10.120.248.132" port()); }; #多个目的,需要填写进来,分号隔开
log { source(s_remote); destination(d_file); destination(d_logstash); };

  交换机上配置好log服务器地址(部署syslog-ng、ELK的服务器IP地址)即可。

ELK搭建(非集群):

  ELK分别是Elasticsearch、Logstash、Kibana三个开源框架缩写。

  Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。

  Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。

  Kibana 提供日志分析的 Web 界面,帮助汇总、分析和搜索重要数据日志。

1. 下载ELK(版本保持一致!):

  这里选择下载了6.3.0版本。

  Elasticsearch下载: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.tar.gz

  Kibana下载: https://artifacts.elastic.co/downloads/kibana/kibana-6.3.0-linux-x86_64.tar.gz

  Logstash下载: https://artifacts.elastic.co/downloads/logstash/logstash-6.3.0.tar.gz

  下载完成,使用rz命令上传至centos7虚机,放在/home/目录下。

2. 解压

cd /home
tar -zxvf elasticsearch-6.3..tar.gz
tar -zxvf kibana-6.3.-linux-x86_64.tar.gz
tar -zxvf logstash-6.3..tar.gz

3. java环境搭建

  推荐使用jdk1.8,为了方便安装了java-1.8.0-openjdk,安装方法见链接。

  https://www.cnblogs.com/sitongyan/p/11262375.html

4. 部署elasticsearch,ELK的包解压修改配置文件启动即可使用,不需要安装。

  修改配置文件

vi /home/elasticsearch-6.3./config/elasticsearch.yml
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0 ##服务器ip 本机
#
# Set a custom port for HTTP:
#
http.port: ##服务端口
#

  启动elasticsearch:

/home/elasticsearch-6.3./bin/elasticsearch   #命令窗运行

/home/elasticsearch-6.3./bin/elasticsearch  -d  #后台线程运行

  关闭elasticsearch:

ps -ef | grep elastic                    #后台线程关闭
kill - ##pid 4442为查处线程的pid

  Elasticsearch启动常见问题解决

  验证elasticsearch启动:

5. 安装kibana

  修改配置文件:

vi /home/kibana-6.3.-linux-x86_64/config/kibana.yml
server.port:        ##服务端口
server.host: "0.0.0.0" ##服务器ip 本机 elasticsearch.url: "http://localhost:9200" ##elasticsearch服务地址 与elasticsearch对应

  启动kibana:

/home/kibana-6.3.-linux-x86_64/bin/kibana       #命令窗启动

nohup ./kibana-6.3.-linux-x86_64/bin/kibana &   #后台线程启动

  关闭kibana:

ps -ef | grep kibana                    #后台线程关闭
kill - ##pid 为查处线程的pid
  备注:常见问题多为 端口占用,以及目录未授权,需要同elasticsearch 使用目录运行执行的用户去执行 未配置则为root用户

  验证kibana启动:

6. 安装logstash

  新建配置文件:

vi /home/logstash-6.3./config/logback-es.conf

0.0.0.0填写本地IP地址,input标签表示监听udp协议的5144端口(此端口为syslog-ng设置的吐出日志的目标端口),input日志来源有很多种,udp是其中一种。

其他常见input标签使用。

input {
udp {
host => "0.0.0.0"
port => 5144
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "switch-log-%{+YYYY.MM.dd}"
}
stdout {
codec => rubydebug
}
}

  备注:上述文件复制时必须去除多余空格,保持yml文件规范。

  启动logstash:

/home/logstash-6.3./bin/logstash -f /home/logstash-6.3./config/logback-es.conf         ##命令窗形式

nohup /home/logstash-6.3./bin/logstash -f /home/logstash-6.3./config/logback-es.conf &  ##后台线程形式

  关闭logstash:

ps -ef | grep logstash                    #后台线程关闭
kill - ##pid 为查处线程的pid

7. 验证ELK

  查看elasticsearch索引,logstash收集到日志后,会按照配置文件自动创建索引,并且根据时间YYYY.MM.dd切割数据建立一个一个的索引。

curl http://10.120.248.132:9200/_cat/indices?v   ##查看自动创建的索引,能查看到说明elasticsearch存储了从logstash output来的数据。
curl -XDELETE http://10.120.248.132:9200/索引名 ##清空无用索引

  验证kibana日志展示是否正常:新建立的索引,kibana需要新建一下关联。

  Create Index Pattern创建索引

  选择时间戳,创建完成。

  然后在Discover中查看日志。如果看不见日志,注意右上角的时间段选择,选择查看的时间长一些即可看见日志。

  注意:右上角的选择查看日志的时间段(例如today)是参照按照当前浏览器时间。例如,需要查看的日志索引为7月1日,然而今天实际是7月2日,选择区间为today就没有日志,因为today代表当前时间7月2日,7月1日的日志中是不包含7月2日的。

8. kibana添加登录认证

  elk验证完成之后,会发现kibana不需要用户登录直接即可访问,这样很不安全,需要添加登录认证。

  可以采用Nginx代理完成认证操作。

  Linux环境安装Nginx步骤

  1.安装Nginx完成之后,安装Apache密码生成工具:

yum install httpd-tools

  2.生成密码文件:

mkdir -p /etc/nginx/passwd
htpasswd -c -b /etc/nginx/passwd/kibana.passwd user ****** ##-c表示创建一个加密文件,-b表示在htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码。

  3.配置Nginx:

vi /usr/local/webserver/nginx/conf/nginx.conf
    server {
listen ; ##监听用户访问的5601端口
server_name localhost:; ##本机IP:port #charset koi8-r; #access_log logs/host.access.log main; location / {
auth_basic "kibana login auth";
auth_basic_user_file /usr/local/test/passwd/kibana.passwd; ##存储用户密码文件
proxy_pass http://localhost:5602; #因为Nginx代理了kibana的5601端口,所以kibana需要换一个端口,我换成了5602,注意kibana的配置文件也需要改成5602端口
proxy_redirect off;
} #error_page /.html;

  4.修改Kibana配置文件:

vi /home/kibana-6.3.-linux-x86_64/config/kibana.yml
# Kibana is served by a back end server. This setting specifies the port to use.
server.port:

  5.重启Kibana服务,配置文件生效:

ps -ef | grep kibana
kii - 进程号
cd /home/
nohup ./kibana-6.3.0-linux-x86_64/bin/kibana & ##后台启动

  6.访问kibana

  

  后续会补充logstash时间戳问题的处理办法。

syslog-ng收集日志+ELK平台搭建教程的更多相关文章

  1. 小白都会超详细--ELK日志管理平台搭建教程

    目录 一.介绍 二.安装JDK 三.安装Elasticsearch 四.安装Logstash 五.安装Kibana 六.Kibana简单使用 系统环境:CentOS Linux release 7.4 ...

  2. ELK日志分析平台搭建

    ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 以下内容来自:http://baidu.blog.51cto.com/71938/1676798 日志主要包括系统日志.应 ...

  3. ELK平台搭建(上)

    一.目的 为指导在Centos6.8系统下搭建标准ELK平台的工作. 二.定义 Elasticsearch Logstash Kibana结合Redis协同工作. 三.适用范围 适用于运营维护组运维工 ...

  4. 基础架构之日志管理平台搭建及java&net使用

    在现代化的软件开发流程中,日志显得非常的重要,不可能再零散的游离在各个项目中,等查看日志的时候再登录服务器去到特定的目录去查看,这显然很繁琐且效率低下,所有整合一套日志管理平台,也显得非常重要,这篇文 ...

  5. ELK日志分析平台搭建全过程

    一.使用背景 当生产环境有很多服务器.很多业务模块的日志需要每时每刻查看时 二.环境 系统:centos 6.5 JDK:1.8 Elasticsearch-5.0.0 Logstash-5.0.0 ...

  6. ELK平台搭建及日志监控

    一.使用背景 当生产环境有很多服务器.很多业务模块的日志需要每时每刻查看时 二.环境 系统:centos 6.5 JDK:1.8 Elasticsearch-5.0.0 Logstash-5.0.0 ...

  7. ELK平台搭建(下)

    1. 目的 为指导在Centos6.8系统下搭建标准ELK平台的工作,特编写本施工文档. 2. 定义 Elasticsearch Logstash Kibana结合Redis协同工作. 3. 适用范围 ...

  8. elk平台搭建

    很多时候我们需要对日志做一个集中式的处理,但是通常情况下这些日志都分布到n台机器上面,导致一个结果就是效率比较低,而ELK平台可以帮助我们解决这么一件事情: ELK下载:https://www.ela ...

  9. 开源OA办公平台搭建教程:O2OA+Arduino实现物联网应用(二)

    O2OA平台搭建 O2OA的开发环境非常简单,安装服务器后即可通过浏览器进行开发了和使用.具体可参考文档库中的其他文档,有比较详细的介绍,这里就不再赘述了. Arduino开发发环境搭建 安装Ardu ...

随机推荐

  1. php函数练习20191031

    <?php$str="what is you name?";$arr=array('i','s');$arr_1=array('s','i');//是先后替换的.echo s ...

  2. java 多线程 线程安全及非线程安全的集合对象

    一.概念: 线程安全:就是当多线程访问时,采用了加锁的机制:即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读取完之后,其他线程才可以使用.防止出现数据不一致或 ...

  3. bzoj 1176 cdq分治套树状数组

    题面: 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数Q<=10000,W<=2000000. Inp ...

  4. vue img标签用法

    :符号是v-bind的缩写 服务器图片路径和请求本地路径 <img class="v-step-0" id="avatar" :src="myP ...

  5. webpack 学习4 使用loader 以及常用的一些loader

    webpack本身只支持处理JavaScript,其他的文件,如css img less是不识别的,所以才会有loader这个东西,它就是可以使webpack能够处理其他非js文件的拓展程序 首先我们 ...

  6. JavaSE---类、对象、成员变量、局部变量

    1.概述 1.1 类 1.1.1 类   是一种  自定义的  引用  数据类型: 1.2 对象 1.2.1 创建对象的根本途径:构造器: 通过new关键字   来调用  某个类的构造器: packa ...

  7. 【Flutter学习】组件学习之目录

    01. Flutter组件-Layout-Container-容器  02. Flutter组件-Text-Text-文本  03. Flutter组件-Text-RichText-富文本  04. ...

  8. Cisco基础(一):Vlan的划分、配置trunk中继链路、以太通道配置、DHCP服务配置

    一.Vlan的划分 目标: VLAN(虚拟局域网)是对连接到的第二层交换机端口的网络用户的逻辑分段,不受网络用户的物理位置限制而根据用户需求进行网络分段.一个VLAN可以在 一个交换机或者跨交换机实现 ...

  9. tomcat7以下线程控制

    web server允许的最大线程连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右. 1.编辑tomcat安装目录下的conf目录下的server. ...

  10. LINUXE下执行php 定时任务

    linux test.php <?php $fn='/home/root.adminssh/boz/logs'; $data=rand(1,9999); $fp=fopen($fn,'wb'); ...