博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Graylog2+rsyslog+log4j 全过程日志管理环境搭建(转)
阅读量:4041 次
发布时间:2019-05-24

本文共 5535 字,大约阅读时间需要 18 分钟。

转自:

需要关注Graylog2与ELK方式的日志优劣势对比。

 第一步:安装Graylog2环境(CentOS7)

     这里网上有很多的教程,直接看官网也是不错的,笔者绕了很大的圈子,最后是参照官网(http://docs.graylog.org/en/2.2/pages/installation/os/centos.html)和这篇博客(http://www.cnblogs.com/iamqiu/p/5749783.html)将环境搭建起来,简要概述如下:

     1、安装CentOS7.2 这个啥也不说了,保证能联网

     2、安装JDK   

           #yum -y install java-1.8.0-openjdk-headless.x86_64

        安装两个工具

                sudo yum install epel-release

          sudo yum install pwgen

    3、安装Mongodb

          3.1 编辑文件  #vi /etc/yum.repos.d/mongodb-org-3.2.repo

      3.2 加入如下文字:     

 

[mongodb-org-3.2]     name=MongoDB Repository     baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/     gpgcheck=1     enabled=1     gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

      3.3 #sudo yum install mongodb-org

 

      3.4 注册并启动服务     

 

$ sudo chkconfig --add mongod      $ sudo systemctl daemon-reload      $ sudo systemctl enable mongod.service      $ sudo systemctl start mongod.service
4、 安装 Elasticsearch

 

       4.1 rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

       4.2 编辑文件 /etc/yum.repos.d/elasticsearch.repo 

 

[elasticsearch-2.x]	name=Elasticsearch repository for 2.x packages	baseurl=https://packages.elastic.co/elasticsearch/2.x/centos	gpgcheck=1	gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch	enabled=1

      4.3 sudo yum install elasticsearch

 

         4.4  修改配置文件  /etc/elasticsearch/elasticsearch.yml

       把 cluster.name 前面的# 去掉 然后 改成  cluster.name:graylog(这个名字可以自定义,但是要记住)

4.5 注册并启动服务
 
$ sudo chkconfig --add elasticsearch       $ sudo systemctl daemon-reload       $ sudo systemctl enable elasticsearch.service       $ sudo systemctl restart elasticsearch.service

 

         4.6 测试

          # curl -X GET 

          显示

          {

  "name" : "Justin Hammer",
  "cluster_name" : "graylog",
  "cluster_uuid" : "37q5FJC7Q7e6OZKEbEObMQ",
  "version" : {
    "number" : "2.4.5",
    "build_hash" : "c849dd13904f53e63e88efc33b2ceeda0b6a1276",
    "build_timestamp" : "2017-04-24T16:18:17Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.4"
  },
  "tagline" : "You Know, for Search"
         }

    表示正确

 

    5、安装Graylog2

     

5.1安装
$ sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.2-repository	_latest.rpm	$ sudo yum install graylog-server

 

       5.2 配置

    

       生成密钥 : pwgen -N 1 -s 96  将生成的串保存下来   

       生成密码:  echo-nyourpassword|sha256sum

    

 

# vi /etc/graylog/server/server.conf

password_secret =  刚才生成的密钥字符串

root_password_sha2 = 刚才生成的密码字符串

 

root_timezone = Asia/Shanghai

web_listen_uri = 

rest_listen_uri = 

rest_transport_uri =    (IP就是服务器的IP)

elasticsearch_cluster_name = graylog(和前面定义的cluster.name一致)

elasticsearch_shards = 1

elasticsearch_replicas = 0

 

             5.3  加入服务并启动

         

$ sudo chkconfig --add graylog-server	$ sudo systemctl daemon-reload	$ sudo systemctl enable graylog-server.service	$ sudo systemctl start graylog-server.service

 

     6 关闭防火墙  

 

#systemctl stop firewalld.service

#systemctl disable firewalld.service

 

#setenforce 0

#vim /etc/sysconfig/selinux

SELINUX=disable

 

   至此 Graylog2安装完成。浏览器输入 http://IP:9000/ 就可以看到界面了

   第二部: 安装rsyslog

      CentOS7 自带rsyslog 不需要安装,只需要配置,配置文件  /etc/rsyslog.conf

 

#################

#### MODULES ####
#################
$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog   # provides kernel logging support
$ModLoad immark  # provides --MARK-- message capability
# provides UDP syslog reception
$ModLoad imudp     # 打开UDP端口
$UDPServerRun 514   # 端口号
# provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
# Enable non-kernel facility klog messages
$KLogPermitNonKernelFacility on
###########################
#### GLOBAL DIRECTIVES ####
###########################
#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# Filter duplicated messages
$RepeatedMsgReduction on
#
# Set the default permissions for all log files.   
#
$FileOwner want  # 你自己的用户名
$FileGroup adm    # 你自己的用户组
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser want   # 你自己的用户名
$PrivDropToGroup adm # 你自己的用户组
#
# Where to place spool and state files
#
$WorkDirectory /var/lib/rsyslog
$IncludeConfig /etc/rsyslog.d/*.conf
*.* @127.0.0.1:5140;RSYSLOG_SyslogProtocol23Format 

# 转发到graylog2服务器的5140端口,因为是单机环境,所以就配了127.0.0.1 

# 端口号也就是一会儿要配置的graylog2 的一个端口,由于权限问题,尽量采用1024以后的端口

 

 第三步,在graylog2中添加一个input

 

 端口号设置为刚才设置的5140 然后点击 show received messages

 这是看到的应该是一些系统日志,如下:

 

第四部 : 将我们开发中的log放进graylog中

    有三种方式将log放进去,其实是有3种方式把log放到rsyslog里面

    这里我只说比较通用的log4j的方式

    我就直接贴代码和配置文件了 

    配置文件:

   log4j.rootLogger=Debug,CONSOLE,syslog

   log4j.appender.syslog=org.apache.log4j.net.SyslogAppender
   log4j.appender.syslog.SyslogHost=192.168.128.131 --graylog服务器的IP
   log4j.appender.syslog.Facility=local1
   log4j.appender.syslog.header=true
   log4j.appender.syslog.layout=org.apache.log4j.PatternLayout
   log4j.appender.syslog.layout.ConversionPattern=%5p | %c{1}-%M [%d{yyyy-MM-dd HH:mm:ss}] - %m%n
   log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
   log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
   log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c %x - %m%n

 

    代码:

    import org.slf4j.Logger; 

    import org.slf4j.LoggerFactory;

    public class loggerTest {
    
private static final Logger logger = LoggerFactory.getLogger(loggerTest.class);
public static void main(String[] args) {
logger.info("这是一个info");
logger.error("这是一个error");
logger.debug("这是一个debug");
logger.warn("这是一个warn");
System.out.println(123);
    } 

    

   然后运行代码,到刚才的input的里面去看

  

    

   搞定。

   

    后记:

      1、笔者没有试过,直接把log4j和graylog2连起来可不可以,但是中间加一个rsyslog可以利用其过滤能力,将不同的log放到不同的input里面或者不放进graylog2,所以这种方式应该是比较合理的。

      2、一开始笔者用的是官网的镜像,但是有很多问题,最后还是自己搭的环境,希望大家还是自己的搭个环境。

   参考:

      http://www.cnblogs.com/iamqiu/p/5749783.html

      https://my.oschina.net/0757/blog/198329

     3、log4j配置文件是不能配置端口的,默认514

你可能感兴趣的文章
Python自动化之pytest常用插件
查看>>
Python自动化之pytest框架使用详解
查看>>
【正则表达式】以个人的理解帮助大家认识正则表达式
查看>>
性能调优之iostat命令详解
查看>>
性能调优之iftop命令详解
查看>>
非关系型数据库(nosql)介绍
查看>>
移动端自动化测试-Windows-Android-Appium环境搭建
查看>>
Xpath使用方法
查看>>
移动端自动化测试-Mac-IOS-Appium环境搭建
查看>>
Selenium之前世今生
查看>>
Selenium-WebDriverApi接口详解
查看>>
Selenium-ActionChains Api接口详解
查看>>
Selenium-Switch与SelectApi接口详解
查看>>
Selenium-Css Selector使用方法
查看>>
Linux常用统计命令之wc
查看>>
测试必会之 Linux 三剑客之 sed
查看>>
Socket请求XML客户端程序
查看>>
Java中数字转大写货币(支持到千亿)
查看>>
Java.nio
查看>>
函数模版类模版和偏特化泛化的总结
查看>>