• rsyslog+loganalyzer远程日志系统搭建教程(CentOS6.8)


    一、说明

    本文主要是对“CentOS 6.7搭建Rsyslog日志服务器”进行整理,同时在本地进行环境搭建,验证在CentOS6.8上的正确性。

    二、安装配置rsyslog

    1.清空iptables关闭selinux

    1.1 清空iptables

    一般iptables不要限制对rsyslog端口(默认UDP,514)的访问就不会rsysylog造成影响,可以不用清。

    iptables -F                      #清空iptables策略
    service iptables save      #保存iptables策略配置

    1.2关闭selinux

    selinux老问题,过于严格可能会造成功能异常,将其关闭

    setenforce 0

    上边只是临时关闭,如果配置为启用状态则系统重启后selinux还是启用,要彻底关闭selinux到其配置文件/etc/selinux/config,将属性SELINUX的值修改为disabled

    2、yum安装LAMP环境及rsyslog、rsyslog mysql支持模块

    yum install -y mysql-server mysql-devel libcurl-devel net-snmp-devel php php-gd php-xml php-mysql httpd rsyslog rsyslog-mysql

    看这意思没什么问题,但是由于本机之前已零散地安装了这些东西,mysql还手动安装成了5.5,在执行此句时报冲突libXtst-1.2.3-1.el6.i686 is a duplicate with libXtst-1.2.2-2.1.el6.x86_64,直接跳过了

    3、设置mysql和apache开机启动,并启动服务

    chkconfig --level 35 mysql on        #配置mysql开机自启动;5.5及之前版本用mysql,5.6及之后版本用mysqld
    chkconfig --level 35 httpd on         #配置apache开机自启动
    
    service mysql start                         #启动mysql
    service httpd start                         #启动apache

    4、修改mysql的root密码

    mysqladmin -u root password "abcd1234"    #abcd1234修改成你想要的密码

    默认安装的5.1版本的mysqlroot默认密码应该为空可以直接这样修改密码,如果之前已配置密码,则要登录mysql修改:

    update MySQL.user set password=PASSWORD('abcd1234') where User='root';
    flush privileges;

    5、修改mysql的配置文件,支持uft8

    编缉/etc/my.cnf配置如下(主要是各节区值为utf8的项):

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    character_set_server=utf8
    init_connect='SET NAMES utf8'
    default-character-set=utf8
    
    [mysql]
    default-character-set=utf8
    
    [mysql.server]
    default-character-set=utf8
    
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    default-character-set=utf8
    
    [client]
    default-character-set=utf8

    mysql5.1版本好像配置配置defalut-character-set就可以了,character_set_server参数5.5版本之后才有,不过多配上去也不要紧。改完要重启mysql使配置生效

    server mysql restart   #5.6及之后版本使用mysqld

    6、导入rsyslog数据库到mysql

    rsyslog的mysql数据库脚本默认文件是(版本相应修改):

    /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

    可以使用以下命令中确认其位置:

    echo  $(rpm -ql rsyslog-mysql | grep sql$)

     导入数据库(输入密码):

    mysql -u root -p < $(rpm -ql rsyslog-mysql | grep sql$)

    可以看到导入后已创建syslog数据库

    7、设置rsyslog数据库的字符集

    按原文讲syslog数据库默认不是utf8编码,所以要使用以下命令修改编码(但就我查看似乎是utf8的,多执行一次无所谓)

    mysql> use syslog
    #修改Syslog数据库的字符集
    mysql> ALTER DATABASE `syslog` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 
    #修改SystemEvents表的字符集
    mysql> alter table systemEvents  default character set =utf8;
    #修改SystemEventsPorperties表的字符集
    mysql> alter table systemeventsproperties  default character set =utf8;

    查看修改后的结果:

    #查看数据库的字符集设置
    mysql> show variables like 'character%';
    
    #查看systlog数据库所有表的字符集设置
    mysql> use syslog;
    mysql> show table status from SyslogG;

    8、创建Rsyslog数据库用户

    登录mysql创建用于管理rsyslog的数据库用户rsyslog,下边只授予了其localhost登录的权限,abcd1234改为自己想要的密码

    mysql> grant all privileges on syslog.* to 'rsyslog'@'localhost' identified by 'abcd1234'; 
    mysql> flush privileges; 

    9、修改rsyslog配置

    cat > /etc/sysconfig/rsyslog << EOF
    # Options for rsyslogd
    # Syslogd options are deprecated since rsyslog v3.
    # If you want to use them, switch to compatibility mode 2 by "-c 2"
    # See rsyslogd(8) for more details
    SYSLOGD_OPTIONS="-c 2 -r -x -m 180"
    KLOGD_OPTIONS="-x"
    EOF

    各参数详解:
    -c 指定运行兼容模式。
    -r 指定监听端口。 默认514
    -x 在接收客户端消息时,禁用DNS查找。需和-r参数配合使用。
    -m 标记时间戳。单位是分钟,为0时,表示禁用该功能。

    10、配置服务端支持rsyslog-mysql模块,并开启UDP服务端口

    编缉/etc/rsyslog.conf,在#### MODULES ####下添加前边两行,然后取消后边三行的注释

    $ModLoad ommysql.so
    *.* :ommysql:localhost,syslog,rsyslog,abcd1234
    #注:localhost表示本地主机,syslog为数据库名,rsyslog为数据库的用户,abcd1234为前边创建该用户时指定的密码
    
    $ModLoad immark
    $ModLoad imudp
    $UDPServerRun 514

    保存后重启rsyslog使配置生效

    service rsyslog restart

    11、添加服务端iptables防火墙规则

    开头说过iptables策略可以不用清,当如果确实不清为确保万一,执行以下命令开放TCP和UDP的514端口

    iptables -I INPUT -p tcp --dport 514 -m comment --comment "accept for rsyslog" -j ACCEPT
    iptables -I INPUT -p udp --dport 514 -m comment --comment "accept for rsyslog" -j ACCEPT
    service iptables save

    三、Loganalyzer安装与配置

    1、下载Loganalyzer

    Loganalyzer官网下载安装文件到/usr/local/src目录下,最新版本是4.1.6

    cd /usr/local/src
    wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.6.tar.gz

    2、解压文件并复制源代码到apache的loganalyzer目录

    cd /usr/local/src
    tar -zxf loganalyzer-4.1.6.tar.gz
    cd loganalyzer-4.1.6
    mkdir -p /var/www/html/loganalyzer/
    cp -r src/* /var/www/html/loganalyzer/
    cp -r contrib/* /var/www/html/loganalyzer/

    3、生成空的配置文件并设置权限

    cd /var/www/html/loganalyzer/
    touch config.php
    chmod 666 config.php

    4、修改php环境

    为配合LogAnalyzer对php环境的要求,修改/etc/php.ini中以下两项的值为:

    memory_limit = 512M 
    max_execution_time = 120

    5.重启apache

    service iptables restart

    6、loganalyzer初始化配置

    httpd默认主路径为/var/www/html,现在loganalyzer目录为/var/www/html/loganalyzer,所以访问http://192.168.220.128/loganalyzer/进行配置

     

    四、Linux客户端配置

    CentOS默认都会安装rsyslog,这里我们以一台CentOS 7为例。CentOS 6和7配置都是一样的,只是启停命令有所改变

    1、确认rsyslog服务是否启动

    systemctl list-unit-files rsyslog.service    #确认rsyslog是否开机自启动
    systemctl enable rsyslog.service             #如果没有则配置其开机自启动
    systemctl status rsyslog.service             #查看rsyslog状态
    systemctl start rsyslog.service              #如果rsyslog没启动,将其启动

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

    编缉/etc/rsyslog.conf,在最后### begin forwarding rule ###和### end of the forwarding rule ###之间,新建一行追加远程日志服务器地址(我这是192.168.220.128,根据自己实际情况配置):

    *.* @192.168.220.128

    3.重启rsyslog

    systemctl restart rsyslog.service

    这样192.168.220.142的日志就会自动发送到192.168.220.128,192.168.220.128接收后就会自动存入syslog库。最后loganalyzer从syslog中读出然后在界面展现

    如上图所示,Host列ls即是192.168.220.128,lsx即是192.168.220.142。

    参考:

    http://www.linuxidc.com/Linux/2016-06/132418.htm

  • 相关阅读:
    Celery异步框架
    彻底理解cookie,session,token
    消息队列
    pip源、搭建虚拟环境、git
    全文检索
    redis高级
    redis基础
    基本数据结构和算法(python代码实现算法)
    MySQL数据库高级
    MySQL数据库进阶
  • 原文地址:https://www.cnblogs.com/lsdb/p/8073068.html
Copyright © 2020-2023  润新知