一、方案介绍
(1) 方式 1:
Rsyslog-Rsyslog-server+mysql+Loganalyzer
(2) 重点:(配置文件)
- 转发日志的主机——配置rsyslog.conf日志转发规则、存储规则、系统日志与非系统日志的区别定义。
- 接收日志服务器——配置rsyslog.conf日志接受模块、存储规则、mysql存储模块、系统日志与非系统日志的区别定义。
- 日志文件命名规则与日志内容自定义模板的区别和使用方法。
(3) 功能 :
- 将多个 linux主机的日志收集在 一个日志服务器上保存在/data/log/并按IP分目录保存;
- 同步存储在MySQL数据库中;
- 展示在web上;
二、基础架构C/S
三、安装脚本.sh
1.适用环境:(经过测试,过程没有异常),其他环境下有异常请更改脚本再运行。
Linux version 3.10.0-693.el7.x86_64
CentOS Linux release 7.4.1708 (Core)
2.脚本说明:
脚本会安装数据库,如果你的系统已经装有数据库并有数据,请先修改脚本中数据库的安装语句再执行,避免数据丢失。
使用说明:
(1) 客户端:
执行客户端rsyslog-agent安装脚本请在后面跟上你的rsyslog-server的ip,如:
sh rsyslog_install_agent.sh 192.168.32.128
(2) 服务端-单机部署
如果你想要把rsyslog-server和web服务装在同一个主机上请按顺序执行脚本:
sh rsyslog_mysql_install_server.sh
sh loganalyzer_web_install_server.sh
(3) 服务的-双机部署
如果你想要把rsyslog-server和web服务分开装在不同的主机上,请在rsyslog-server上执行脚本:
sh rsyslog_mysql_install_server.sh
在web服务器上执行脚本:
sh loganalyzer_web_install_server.sh
rsyslog_mysql_install_server.sh:
#!/bin/bash
clear
echo '
安装Rsyslog+mariadb-server=Rsyslog-server
------------------------------------------------
!!!如果系统已经安装过mysql数据库,请将脚本中的安装数据库的部分注释再继续
环境:
适用版本:测试正常.
Linux version 3.10.0-693.el7.x86_64
CentOS Linux release 7.4.1708 (Core)
---------------------------------------------------
其他系统环境下没有测试,如果报错,请更改脚本再继续安装
'
sleep 10
echo '第一步:基本环境配置'
yum install wget -y
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo yum makecache fast yum install centos-release-scl -y
sed -i '1c\#!/usr/bin/python2 -Es' /usr/sbin/firewalld sed -i '1c\#!/usr/bin/python2 -Es' /usr/bin/firewall-cmd
systemctl restart firewalld systemctl enable firewalld
sed -i 's/enforcing/disabled/g' /etc/selinux/config
setenforce 0
clear
echo '第二步:安装rsyslog并配置转发到mysql,作为日志服务器rsyslog-server'
yum remove rsyslog -y rm -rf /etc/rsyslog*
yum install rsyslog rsyslog-mysql mariadb-server -y
rpm -ql rsyslog-mysql
sed -i 's/Syslog/rsyslog/g' /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
systemctl start rsyslog systemctl enable rsyslog
systemctl start mariadb systemctl enable mariadb
pwd_sql=$(rpm -ql rsyslog-mysql | grep create)
mysql $pwd_sql
mysql -e "grant all privileges on rsyslog.* to rsyslog@'%' identified by 'rsyslog';grant all privileges on rsyslog.* to rsyslog@'localhost' identified by 'rsyslog';flush privileges;"
#sed -i '$ a\$ModLoad imtcp\n$InputTCPServerRun 514' /etc/rsyslog.conf
sed -i '$ a\$ModLoad imudp\n$UDPServerRun 514\n$ModLoad imtcp\n$InputTCPServerRun 514\n$ModLoad ommysql #:ommysql:数据库IP,数据库名,用户名,密码\n*.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,rsyslog,rsyslog,rsyslog' /etc/rsyslog.conf
sed -i '$ a\*.info;mail.none;authpriv.none;cron.none @127.0.0.1' /etc/rsyslog.conf
systemctl restart rsyslog
firewall-cmd --add-port=514/tcp --zone=public --permanent
firewall-cmd --reload systemctl restart firewalld
clear
netstat -nltp |grep -E '514|3306'
echo '安装结束!
请检查3306和514端口是否在侦听。
注意:
执行此脚本以后firewalld默认enable,如果需要设置开机不自启,请自己disable
接收日志的端口为514
mysql信息:port:3306,数据库、用户名密码均为rsyslog