rsyslog源码启动_rsyslog日志服务器

hacker|
134

文章目录:

自带的rsyslog 怎么启用日志向mysql功能支持呢。

你是想把log日志内容写入数据库吗?

如果是想把mysql的log写入rsyslog启动时加参数--syslog

如何实现集中式RSYSLOG服务器监控

安装RSYSLOG服务器

这第一个部分描述的是如何搭建从客户端收集syslog数据的RSYSLOG服务器。在该例子中,我们的服务器名为rsyslog.domain.com,其固定IP地址为192.168.0.15。

首先,我们安装一些依赖项。

apt-get update

apt-get upgrade

apt-get install rsyslog rsyslog-mysql unzip zip binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libdb4.6-dev libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

安装过程中要求你输入MySQL服务器的密码时,创建一个密码!

我的OpenVZ模板已准备好了一切,所以下面这个命令对你来说可能没有必要……

apt-get install linux-kernel-headers

确保相应服务已创建并运行起来……

/etc/init.d/rsyslog restart

/etc/init.d/mysql restart

/etc/init.d/apache2 restart

确保服务器在侦听合适的TCP IP端口(端口80和端口3306)。这时,RSYSLOG还没有侦听任何端口。

rsyslog:~# netstat -tapn

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      415/mysqld

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      581/apache2

然后,我们可以构建rsyslog数据库:

mysqladmin -u root -p create rsyslog

接下来,我们启动MySQL命令外壳程序,创建rsyslog用户:

mysql -u root -p

GRANT SELECT, INSERT, UPDATE, DELETE ON rsyslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE';

FLUSH PRIVILEGES;

quit

接下来,我们配置rsyslog服务器,以便侦听TCP端口514:

vi /etc/rsyslog.conf

添加这几行……(要记得将密码更改成你在创建MySQL服务器的rsyslog用户时输入的那个密码。)

$ModLoad MySQL

*.*       127.0.0.1,rsyslog,rsyslog,ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE

……并去掉处理TCP syslog接收的几行代码前面的注释。

# rsyslog v3的/etc/rsyslog.conf配置文件

#

# 想了解更多信息,请参阅/usr/share/doc/rsyslog-doc/html/rsyslog_conf.html

$ModLoad MySQL

*.* 127.0.0.1,rsyslog,rsyslog,ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE

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

#### 模块 ####

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

$ModLoad imuxsock # 提供对本地系统日志的支持

$ModLoad imklog # 提供内核日志支持(以前由rklogd来提供)

#$ModLoad immark # 提供--MARK--息功能

# 提供UDP syslog接收

#$ModLoad imudp

#$UDPServerRun 514

# 提供TCP syslog接收

$ModLoad imtcp

$InputTCPServerRun 514

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

#### 全局指令 ####

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

并重启rsyslog服务。

/etc/init.d/rsyslog restart

确保服务器在侦听合适的TCP IP端口。(端口80、端口514和端口3306。)

rsyslog:~# netstat -tapn

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 0.0.0.0:514             0.0.0.0:*               LISTEN      618/rsyslogd

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      415/mysqld

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      581/apache2

接着我们下载LogAnalyzer,并配置Apache web服务器,以便显示日志。

cd /tmp

wget

tar xvzf loganalyzer-3.4.1.tar.gz

mv loganalyzer-3.4.1/ /var/www/

cd /var/www

接着我们为Apache web服务器配置www文件夹用户权限。

chown www-data:www-data * . -Rf

然后,我们对LogAnalyzer文件夹作了一些“改进”工作。

mv loganalyzer-3.4.1/ loganalyzer

cd contrib/

cp * ./../src/

cd ./../src/

sh ./configure.sh

我们已准备使用我们的互联网服务器来输入LogAnalyzer的最后设置项。往你的互联网浏览器里面输入rsyslog服务器的固定IP地址,本文中是。

运行简单的设置脚本(很简单,只要点击next - next。)

现在,你应该有了正常运行的rsyslog服务器,而且LogAnalyzer已创建并运行起来。

接下来,我们配置RSYSLOG客户端,以便将其syslog数据发送到rsyslog服务器:

配置RSYSLOG客户端

我们要做的通常仅仅是配置rsyslog.conf文件,然后重启服务。(几乎所有Debian操作系统都预先安装了rsyslog。)

vi /etc/rsyslog.conf

添加万一网络连接中断要用到的work spool目录这几行,并将你的rsyslog服务器IP地址更改成192.168.0.15。(你可能还想要用mkdir命令来创建/rsyslog/work spool目录。)

# 提供TCP syslog接收

#$ModLoad imtcp

#$InputTCPServerRun 514

$WorkDirectory /rsyslog/work # work(spool)文件的默认位置

$ActionQueueType LinkedList # 使用异步处理

$ActionQueueFileName srvrfwd # 设置文件名称,还启用磁盘模式

$ActionResumeRetryCount -1 # 插入失败后,无限次重试

$ActionQueueSaveOnShutdown on # 如果rsyslog关闭,保存内存中数据

*.* @@YOUR-RSYSLOG-SERVER-ADDRESS-HERE

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

#### 全局指令####

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

并重启rsyslog服务。

/etc/init.d/rsyslog restart

服务器已通过合适的TCP IP端口(端口514)连接。

root@ic1:~# netstat -tapn

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 192.168.0.100:49188     192.168.0.15:514         ESTABLISHED 13289/rsyslogd

这就是成功搭建的系统的样子。

Linux如何启动流程?Linux启动流程详解

当用户打开电源后,BIOS开机自检,确定启动设备,安装启动设备,启动设备上面安装的GRUB开始引导Linux,Linux首先先进行内核引导,通过跟切换,执行init程序,init程序确定启动级别,根据启动级别进行系统初始化和运行的服务,然后返回init启动终端,用户通过验证成功登陆Shell,这就是一个从开机到登陆的启动过程。

一、硬件引导启动

当用户打开电源后POST开始自检,检测硬件设备是否确实或者存在故障(是否影响正常开机),如果不影响正常开机,就把任务交给BIOS。BIOS通过搜索,安装启动确定启动设备,启动项为硬盘,BIOS去读取硬盘的前512字节到内存,找到BootLoader,确定GRUB

二、GRUB引导启动内核

这一部分概况起来就是:GRUB程序加载执行并开始引导kernel程序

Boot Loader就是在操作系统内核运行之前运行的一小段程序。通过GRUB引导可以确定内核程序,因为引导扇区只有446字节,GRUB只是一个小的程序安装在里面,真正使用的在MBR后面的扇区存放,我们想使用Bootloader GRUB功能必须读取后面的文件,Bootloader GRUB功能程序的运行和加载配置选项分为三个阶段

Stage1阶段:

Stage1阶段其实就是执行系统安装时预先写入到MBR的Bootloader中的程序。

Stage1阶段的任务仅是将硬盘0柱面0磁道2扇区的内容读入内存并执行,它是Stage1.5阶段或Stage2阶段的入口,引导进入Stage1.5阶段或Stage2阶段。 在此Stage1阶段,还没有识别文件系统的能力。

Stage1.5阶段:

stage1.5阶段是stage1阶段和stage2阶段的中间桥梁。stage1.5阶段具有识别启动分区文件系统的能力,此后GRUB程序便有能力去访问/boot分区下/grub目录下的 stage2文件,并将stage2载入内存执行。

Stage2阶段

Stage2阶段执行时,首先会解析GRUB程序的配置文件grub.conf,并依配置文件决定是否显示系统启动菜单。然后加载内核镜像到内存中,通过initrd程序建立RAMDisk内存虚拟根文件系统。此时控制权将转交给内核程序。

三、内核引导启动

这一部分主要是通过在内存中建立虚拟根文件系统实现相关设备的驱动并建立和切换到真正的根文件系统。

解压内核镜像加载到内存,以及initrd程序建立RAMDisk内存虚拟根文件系统后,内核开始驱动基本硬件,并调用虚拟根文件系统中的init程序加载驱动模块初始化系统中各种设备的相关配置工作,其中包括CPU、I/O、存储设备等。当所需的驱动程序加载完后,会根据grub.conf配置文件中“root=XXX”部分所指定的内容创建一个根设备,然后将根文件系统以只读的方式挂载,并切换到真正的根文件系统上,同时调用系统进程的/sbin/init程序,进入系统初始化阶段。

四、系统初始化

这一步是通过/sbin/init,init程序准备软件运行坏境,启动系统服务

通过/etc/inittab文件确定运行级别,然后去执行系统初始化脚本/etc/rc.sysinit,为用户初始化用户空间环境,在完成初始化后,根据运行级别,系统开始对应级别的目录启动服务,关闭那些不要的服务(里面S99local - ../rc.local)用户自动服务启动脚本

运行级别:为系统运行或维护等目的而设定;0-6:7个级别

0:关机

1:单用户模式(root自动登录), single, 维护模式

2: 多用户模式,启动网络功能,但不会启动NFS;维护模式

3:多用户模式,正常模式;文本界面

4:预留级别;可同3级别

5:多用户模式,正常模式;图形界面

6:重启

默认级别:3, 5

切换级别:init #

查看级别:runlevel ; who -r

五、启动终端,用户登录

这一步是用户登录shell过程

如果没有改变级别,默认情况执行/sbin/mingetty打开6个纯文本终端,让用户输入用户名和密码。输入完成后,再调用login程序,核对密码。如果密码正确,就从文件 /etc/passwd 读取该用户指定的shell,然后启动这个shell。更多Linux介绍请查看《Linux就该这么学》。

suse linux rsyslog服务怎么重启

 首先,我们安装一些依赖项。

apt-get update

apt-get upgrade

apt-get install rsyslog rsyslog-mysql unzip zip binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libdb4.6-dev libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

安装过程中要求你输入MySQL服务器的密码时,创建一个密码!

我的OpenVZ模板已准备好了一切,所以下面这个命令对你来说可能没有必要……

apt-get install linux-kernel-headers

确保相应服务已创建并运行起来……

/etc/init.d/rsyslog restart

/etc/init.d/mysql restart

/etc/init.d/apache2 restart

确保服务器在侦听合适的TCP IP端口(端口80和端口3306)。这时,RSYSLOG还没有侦听任何端口。

rsyslog:~# netstat -tapn

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 415/mysqld

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 581/apache2

然后,我们可以构建rsyslog数据库:

mysqladmin -u root -p create rsyslog

接下来,我们启动MySQL命令外壳程序,创建rsyslog用户:

mysql -u root -p

GRANT SELECT, INSERT, UPDATE, DELETE ON rsyslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE';

FLUSH PRIVILEGES;

quit

接下来,我们配置rsyslog服务器,以便侦听TCP端口514:

vi /etc/rsyslog.conf

添加这几行……(要记得将密码更改成你在创建MySQL服务器的rsyslog用户时输入的那个密码。)

$ModLoad MySQL

*.* 127.0.0.1,rsyslog,rsyslog,ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE

……并去掉处理TCP syslog接收的几行代码前面的注释。

# rsyslog v3的/etc/rsyslog.conf配置文件

#

# 想了解更多信息,请参阅/usr/share/doc/rsyslog-doc/html/rsyslog_conf.html

$ModLoad MySQL

*.* 127.0.0.1,rsyslog,rsyslog,ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE

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

#### 模块 ####

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

$ModLoad imuxsock # 提供对本地系统日志的支持

$ModLoad imklog # 提供内核日志支持(以前由rklogd来提供)

#$ModLoad immark # 提供--MARK--息功能

# 提供UDP syslog接收

#$ModLoad imudp

#$UDPServerRun 514

# 提供TCP syslog接收

$ModLoad imtcp

$InputTCPServerRun 514

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

#### 全局指令 ####

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

并重启rsyslog服务。

/etc/init.d/rsyslog restart

确保服务器在侦听合适的TCP IP端口。(端口80、端口514和端口3306。)

rsyslog:~# netstat -tapn

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 618/rsyslogd

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 415/mysqld

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 581/apache2

接着我们下载LogAnalyzer,并配置Apache web服务器,以便显示日志。

5条大神的评论

  • avatar
    访客 2022-07-07 上午 03:35:12

    -mysql unzip zip binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libpcre3 libpopt-dev lynx

  • avatar
    访客 2022-07-07 上午 07:24:33

    驱动并建立和切换到真正的根文件系统。解压内核镜像加载到内存,以及initrd程序建立RAMDisk内存虚拟根文件系统后,内核开始驱动基本硬件,并调用虚拟根文件系统中的init程序加载驱动模块初始化系统中各种设备的相关配置工作,其中包括CPU、I/O、存储设备等。当所需的

  • avatar
    访客 2022-07-07 上午 12:56:44

    如果不影响正常开机,就把任务交给BIOS。BIOS通过搜索,安装启动确定启动设备,启动项为硬盘,BIOS去读取硬盘的前512字节到内存,找到BootLoader,确定GRUB二、GRUB引导启动内核这一部分概况起来就是:GRUB程序加载执行并开始引导k

  • avatar
    访客 2022-07-07 上午 01:39:28

    (servers and established)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program nametcp        

  • avatar
    访客 2022-07-07 下午 12:16:53

    .0:* LISTEN 581/apache2然后,我们可以构建rsyslog数据库:mysqladmin -u root -p create rsyslog接下来,我们启动MySQL命令外壳程序,创建rsyslog用户:mysql

发表评论