Chinaunix首页 | 论坛 | 博客
  • 博客访问: 28719
  • 博文数量: 2
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5
  • 用 户 组: 普通用户
  • 注册时间: 2018-12-12 11:29
文章分类
文章存档

2018年(1)

2016年(1)

我的朋友

分类: 系统运维

2016-04-11 15:43:57

摘自: http://www.cnblogs.com/mchina/p/linux-centos-rsyslog-loganalyzer-mysql-log-server.html

中文部分接自: http://gdcsy.blog.163.com/blog/static/12734360920146164021323/

一、简介

LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端。它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。数据可以从数据库或一般的 syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构。基于当前的日志数据,它可以处理syslog日志消 息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案。

LogAnalyzer 获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的日志并保存到服务端该目录下,一种是读取后保存到日志服务器数据库中,推荐使用后者。

LogAnalyzer 采用php开发,所以日志服务器需要php的运行环境,本文采用LAMP。

二、系统环境

Rsyslog Server OS:CentOS 6.5

Rsyslog Server IP:192.168.1.107

Rsyslog 版本:rsyslog-5.8.10-8.el6.i686

LogAnalyzer 版本:LogAnalyzer 3.6.5 (v3-stable)

LAMP 版本:httpd-2.2.15-30.el6.centos.i686 + mysql-5.1.73-3.el6_5.i686 + php-5.3.3-27.el6_5.i686

防火墙已关闭/iptables: Firewall is not running.

SELINUX=disabled

Rsyslog Client OS:RHEL 6.4

Rsyslog Client IP:192.168.1.108

注意: 所有测试完毕后,应该设置好防火墙, /etc/sysconfig/iptables
:INPUT ACCEPT [0:0]      #虽然input 默认策略为ACCEPT, 但由于[0:0] 这里的端口为0:0 所以相当于拒绝所有端口
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p udp --dport 514 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23456 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

三、安装并设置LAMP环境

3.1 安装LAMP环境

# yum -y install httpd mysql mysql-server mysql-devel php php-mysql gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap

3.2 启动服务并加入开机启动

启动Apache

# /etc/init.d/httpd start

# chkconfig httpd on

启动数据库

# /etc/init.d/mysqld start

# chkconfig mysqld on

3.3 设置MySQL root 密码

# mysqladmin -uroot password 'abc123'

3.4 测试php运行环境

# cd /var/www/html/

[root@TS html]# cat > index.php < > phpinfo();
> ?>
> EOF

1

打开浏览器访问:

2

LAMP环境配置完毕。

3.5 作为日志服务器必须进行时间同步
# crontab –e

添加脚本例子如下:
*/20 * * * *       /usr/sbin/ntpdate 210.72.145.44          //每20分钟执行一次

注意: 客户端也应该进行时间同步


四、检查并安装服务器端软件

4.1 检查是否安装了rsyslog软件

# rpm -qa|grep rsyslog    //默认系统都安装了该软件

4.2 安装rsyslog 连接MySQL数据库的模块

# yum install rsyslog-mysql –y

rsyslog-mysql 为rsyslog 将日志传送到MySQL 数据库的一个模块,这里必须安装。

五、配置服务器端

5.1 导入rsyslog-mysql 数据库文件

# cd /usr/share/doc/rsyslog-mysql-5.8.10/

特别注意1: 这里要修改一下createDB.sql的脚本,使其支持中文,创建库的地方加入utf8


创建表的地方,加入utf8编码


特别注意2: mysql的配置文件 my.cnf 修改以支持库级UTF8编码和客户端级UTF8编码
复制my.cnf 到 /etc之下

修改客户端级和数据库级字符编码为UTF8


# mysql -uroot -pabc123 < createDB.sql

3

查看做了哪些操作


# mysql -uroot –p

mysql> show databases;

mysql> show tables;

5

导入数据库操作创建了Syslog 库并在该库中创建了两张空表SystemEvents 和SystemEventsProperties。

5.2 创建rsyslog 用户在mysql下的相关权限

# mysql -uroot –p

mysql> grant all on Syslog.* to identified by '123456';

mysql> flush privileges;

mysql> exit

7

5.3 配置服务端支持rsyslog-mysql 模块,并开启UDP服务端口获取网内其他LINUX系统日志

# vi /etc/rsyslog.conf

$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,123456

在 #### MODULES #### 下添加上面两行。

说明:localhost 表示本地主机,Syslog 为数据库名,rsyslog 为数据库的用户,123456为该用户密码。

5.4 开启相关日志模块

# vi /etc/rsyslog.conf

$ModLoad immark    #immark是模块名,支持日志标记

$ModLoad imudp    #imupd是模块名,支持udp协议

$UDPServerRun 514    #允许514端口接收使用UDP和TCP协议转发过来的日志

6

5.5 重启rsyslog 服务

# /etc/init.d/rsyslog restart

六、配置客户端

6.1 检查rsyslog 是否安装

# rpm -qa|grep rsyslog

6.2 配置rsyslog 客户端发送本地日志到服务端

# vi /etc/rsyslog.conf

local3.notice                     @192.168.1.107

行尾新增上面这行内容,即客户端将本地日志发送到服务器。

6.3 重启rsyslog 服务

# /etc/init.d/rsyslog restart

6.4 编辑/etc/bashrc,将客户端执行的所有命令写入系统日志/var/log/messages中。

# vi /etc/bashrc

在文件尾部增加一行

export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg" -p local3.notice; }'

特别注意3: 这个配置可以把客户端的所有执行的命令传递给日志服务器

设置其生效

# source /etc/bashrc

客户端配置完毕。

七、测试Rsyslog Server是否可以正常接受Client端日志

Client 端测试:

11

Server 端侦测:

10

说明接收正常,包括你重启机器的一些Log都可以查看到。

八、安装LogAnalyzer

# wget

# tar zxf loganalyzer-3.6.5.tar.gz

# cd loganalyzer-3.6.5

# mkdir -p /var/www/html/loganalyzer

# rsync -a src/* /var/www/html/loganalyzer/

12

九、在浏览器安装向导中安装LogAnalyzer

9.1 打开浏览器访问:

13

提示没有配置文件,点击 here 利用向导生成。

9.2 第一步,测试系统环境

14

点击 “Next”,进入第二步。

15

提示错误:缺少config.php 文件,并且权限要设置为666,可以使用contrib目录下的configure.sh 脚本生成。

特别注意4: config.php是自动创建,无须手动创建
查看configure.sh 文件内容

16

需要在/var/www/html/loganalyzer/ 下创建config.php 文件,并设置其权限为666。

# touch /var/www/html/loganalyzer/config.php

# chmod 666 /var/www/html/loganalyzer/config.php

17

做完上面的操作之后,执行 ReCheck 操作,config.php 文件可写,点击 Next 进入下一步。

18

9.3 第三步,基础配置

特别注意:第三步的截图是这样的,默认的数据库名是loganalyzer,用户名是user 哪下图

修改如下图:注意大小写

21

在User Database Options 中,填入上面设置的参数,然后点击 Next.

9.4 第四步,创建表

22

点击 Next 开始创建表。

9.5 第五步,检查SQL结果

23

9.6 第六步,创建管理用户

24

9.7 第七步,创建第一个系统日志source.
特别注意5: 第7步默认的截图,数据库名,表名,用户名,密码都需要重新填写:

27

9.8 第八步,完成

28
9.9 为LogAnalyzer添加中文语言
汉化有很多人来说是渴求的,这里非常简单,只要把汉化包放到LogAnalyzer对应的目录(/var/www/html/loganalyzer/src/lang)下即可

汉化包可到我网盘下载http://pan.baidu.com/s/1mgNtLby,提取密码:t8nw

选择中文语言:

效果图如下:

十、测试

LogAnalyzer 首页

点击任何一条记录,查看详情。

30

查看Statistics

31

登录测试

32

在Admin Center 里可以进行一些系统设置。

34

Rsyslog + LogAnalyzer 日志服务器部署完毕。

十 一.  基本使用
10.1 管理中心--> 设置: 可以进行基本的设置
  10.2 管理中心---> 视图: 可以自定义视图
 
视图选择: 


  10.3  管理中心-->搜索: 可以自定义的搜索

效果图如下:

 
  10.4  管理中心---> 图表: 可以添加自定义的图表


图表效果图:

  10.5 管理中心---> 用户: 可以增加用户


  10.6 高级搜索


  10.7 帮助文档,论坛,wiki


十二.  将应用服务器的日志上传到日志服务器

参考URL: http://www.biglog.cn/tomcat-syslog/

  12. 1  将tomcat-apache 的日志上传到日志服务器

进入 /etc/rsyslog.d
[root@chinanet-1 rsyslog.d]# vim tomcat-binlog.conf

$ModLoad imfile
$InputFilePollInterval 10
$WorkDirectory /var/spool/rsyslog
$PrivDropToGroup adm

## 指定日志格式模板:
$template BiglogFormatTomcat,"%hostname% %msg%\n"        这里定义日志格式,

## Tomcat的localhost.log路径,根据实际情况修改:
$InputFileName /usr/local/apache-tomcat-7.0.57/logs/localhost_access_log.$(date +%F).txt   注意:由于该日志名称中含有日期,所以这里用了$(date +%F)变量获得当前日期
$InputFileTag access-log
$InputFileStateFile stat-access-log
$InputFileSeverity info
$InputFilePersistStateInterval 25000
$InputRunFileMonitor

## 注意syslog日志服务器接收地址,根据实际情况修改:

if $programname == 'access-log' then @10.x.x.x:514;BiglogFormatTomcat
if $programname == 'access-log' then ~

   12. 2  将windows 的日志上传到日志服务器
参考: http://www.biglog.cn/windows-syslog/

Windows系统没有自带的功能支持系统日志进行syslog发送,因此需要依赖第三方工具。这里我们推荐一款非常好用的轻量级日志采集模块:,在Windows下部署和配置均十分便捷。

本文将指引你:如何对Windows的系统日志进行采集,并通过Syslog协议,自动实时的发送到远程的集中日志分析中心,便于集中式的日志存储和管理。

第一步:安装日志采集工具Nxlog

从Sourceforge下载最新的?,并安装。

第二步:获取NXlog配置文件

下载 Windows日志转Syslog发送的配置文件:,并替换掉该路径下的配置文件:C:\Program Files (x86)\nxlog\conf\nxlog.conf

第三步:注意Windows系列的区别

定位到22行和25行,针对Windows 2003和Windows 2008采用不同的方式进行日志采集。
im_msvistalog针对Windows 2008系列,im_mseventlog针对Windows 2003系列。
默认采用支持Windows 2003系列。

nxlog.conf 部分如下

#    Module      im_msvistalog
# For windows 2003 and earlier use the following:
    Module      im_mseventlog



    Module     om_udp
    Host       10.x.x.x
    Port        514

第四步、重启Nxlog服务,日志采集开始工作

到Windows服务器管理器里面找到Nxlog服务,并重启。



效果图: 不是很好。
1. 主机列被填入了日期
2. 消息正文: 过于简略



另外,NTsyslog软件也可以把windows日志转换成syslog格式,上传到日志服务器,缺点: 消息正文过于简单。




阅读(4077) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:KVM详解,太详细太深入了,经典

给主人留下些什么吧!~~