syslog-ng msyql 设定

评论关闭

配置文件

source src {unix-dgram(“/dev/log”);internal();};
source net {udp();};
destination d_mysql           { pipe(“/tmp/mysql.pipe”
template(“INSERT INTO logs (host, facility,
priority, level, tag, date, time, program,
msg) VALUES ( ‘$HOST’, ‘$FACILITY’, ‘$PRIORITY’,
‘$LEVEL’, ‘$TAG’, ‘$YEAR-$MONTH-$DAY’,
‘$HOUR:$MIN:$SEC’, ‘$PROGRAM’, ‘$MSG’ );\n”)
template-escape(yes)); };
log {source(net);destination(d_mysql);};
log {source(net); destination(d_local); };

写入数据库的脚本

  1. #
  2. #
  3. #
  4. #!/bin/bash
  5. if [ -e /tmp/mysql.pipe ]
  6. then
  7. while [ -e /tmp/mysql.pipe ]
  8. do
  9. mysql -u root –password=Pingzi01# syslog < /tmp/mysql.pipe
  10. done
  11. else
  12. mkfifo /tmp/mysql.pipe
  13. fi

问题 /usr/bin/ld: cannot find -lmysqlclient

评论关闭

问题

/usr/bin/ld: cannot find -lmysqlclient

collect2: ld returned 1 exit status
make: *** [sqlsyslogd] Error 1
解决办法
find / -name libmysqlclient.so
/usr/lib64/mysql/libmysqlclient.so
ln -s  /usr/lib64/mysql /usr/local/lib/

/dev/null 2>&1 详解

评论关闭

> 是重定向
/dev/null 代表空设备文件
1 表示stdout标准输出,系统默认值是1,所以 “>/dev/null” 等同于 “1>/dev/null”
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1

command > file 2>file 与 command > file 2>&1 有什么区别呢?

command > file 2>file 的意思是将命令所产生的标准输出信息,和错误的输出信息送到file 中.command > file 2>file 这样的写法,stdout和stderr都直接送到file中, file会被打开两次,这样stdout和stderr会互相覆盖,这样写相当使用了FD1和FD2两个同时去抢占file 的管道.
而command >file 2>&1 这条命令就将stdout直接送向file, stderr 继承了FD1管道后,再被送往file,此时,file 只被打开了一次,也只使用了一个管道FD1,它包括了stdout和stderr的内容.
引自http://blog.csdn.net/web256/article/details/8244286

rsyslog+loganalyzer

评论关闭

1.1 http mysql php的安装

yum -y install httpd mysql* php*
chkconfig httpd on
chkconfig mysqld on
1.1.1 mysql用户创建
mysqladmin -u root password  xxxxx
1.1.2 rsyslog是否安装
rpm -qa|grep rsyslog
1.1.3 创建数据库
yum install rsyslog-mysql*
cd /usr/share/doc/rsyslog-mysql-5.8.10/
mysql -uroot -pxxxxxx < createDB.sql
grant all on Syslog.* to rsyslog@localhost identified by ‘rsyslog’;
flush privileges;
1.1.4 rsyslog配置
# vi /etc/rsyslog.conf
$ModLoad ommysql
*.* :o mmysql:localhost,Syslog,rsyslog,123456
在 #### MODULES #### 下添加上面两行。
$ModLoad immark    #immark是模块名,支持日志标记
$ModLoad imudp    #imupd是模块名,支持udp协议
$UDPServerRun 514    #允许514端口接收使用UDP和TCP协议转发过来的日志
#### MODULES ####
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
$ModLoad immark  # provides –MARK– message capability
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
1.2 loganalyzer的安装
# mkdir -p /var/www/html/loganalyzer
# rsync -a src/* /var/www/html/loganalyzer/
# touch /var/www/html/loganalyzer/config.php
# chmod 666 /var/www/html/loganalyzer/config.php

mysql基本操作和命令

评论关闭

1.1 root用户创建

mysqladmin -u root password xxxxxxx

1.2 普通用户创建

mysql -uroot -pSmySQL01# < createDB.sql

grant all on Syslog.* to rsyslog@localhost identified by ‘rsyslog’;

flush privileges;

1.3 修改root 密码

mysqladmin -u root -p password “newpasswd#”
Enter password: oldpasswd