一、日志文件说明
日志的功能
用于记录系统、程序运行中发生的各种事件
通过阅读日志,有助于诊断和解决系统故障

日志文件的分类
内核及系统日志
由系统服务syslog统一进行管理,日志格式基本相似
用户日志
记录系统用户登录及退出系统的相关信息
程序日志
由各种应用程序独立管理的日志文件,记录格式不统一

• 内核及公共消息日志
• /var/log/messages
• 计划任务日志
• /var/log/cron
• 系统引导日志
• /var/log/dmesg
• 邮件系统日志
• /var/log/maillog
• 用户登录日志
• /var/log/lastlog
• /var/log/secure
• /var/log/wtmp
• /var/run/btmp

二、内核及系统日志

由系统服务 rsyslogd 统一管理

软件包:rsyslog-7.4.7-16.el7.x86_64

主要程序:/sbin/rsyslogd

配置文件:/etc/rsyslog.conf

日志消息的级别

0 EMERG(紧急):会导致主机系统不可用的情况

1 ALERT(警告):必须马上采取措施解决的问题

2 CRIT(严重):比较严重的情况

3 ERR(错误):运行出现错误

4 WARNING(提醒):可能会影响系统功能的事件

5 NOTICE(注意):不会影响系统但值得注意

6 INFO(信息):一般信息

7 DEBUG(调试):程序或系统调试信息等

日志记录的样式

centos使用logrotate日志外发 centos7日志文件_运维

centos使用logrotate日志外发 centos7日志文件_analyzer_02


安全日志

保存了用户登录、退出系统等相关信息

/var/log/lastlog:最近的用户登录事件

/var/log/wtmp:用户登录、注销及系统开、关机事件

/var/run/utmp:当前登录的每个用户的详细信息

/var/log/secure:与用户验证相关的安全性事件

分析工具部分命令

users 、who、w、last、lastb

由相应的应用程序独立进行管理

Web服务:/var/log/httpd/

access_log、error_log

代理服务:/var/log/squid/

access.log、cache.log、

FTP服务:/var/log/xferlog

查看工具部分命令

文本查看、grep过滤检索、Webmin管理套件中查看

awk、sed等文本过滤、格式化编辑工具

Webalizer、Awstats等专用日志分析工具

日志文件管理方案:
及时作好备份和归档
延长日志保存期限
控制日志访问权限
日志中可能会包含各类敏感信息,如账户、口令等
集中管理日志:将服务器的日志文件发到统一的日志文件服务器,便于日志信息的统一收集、整理和分析、杜绝日志信息的意外丢失、恶意篡改或删除

三、日志管理配置
记录日志服务的主配置文件:/etc/rsyslog.conf

第一块:Modules模块加载

第二块:Global Directory全局文件夹配置

第三块:rules规则
服务.级别 记录的文件及路径 //级别包括8个级别

四、建立日志服务器
如何建立日志同步服务器
1.说明 (日志发送机+日志服务器)(日志发送机就是传统的服务器,需要外发自己的日志)

2.本地存日志---同步---远程存日志

2.确定日志发送机3件事情:1)发什么日志? 2)怎么发?3)发给谁?
登录用户操作 日志协议514 目标服务器信息

确定日志服务器3件事情:1)确保日志服务开启 2)收谁的? 3)怎么收?
配置接收日志选项 来源IP 建立指定路径

-日志发送机:vi /etc/rsyslog.conf 81行

服务.级别  @@TCP协议 IP地址:514
       如:authpriv.*  @@172.18.11.83:514
          service  rsyslog  restart

日志接收服务器操作

-日志服务器(接收)
配置文件修改 vi /etc/rsyslog.conf

15-16行UDP去掉# 19-20行TCP去掉# //注意,注释是有讲究的,空格
查看开启以下象如下内容示例
##Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

##Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

确定全局日志配置文件的文件夹状态:
第36行,确认状态不要注释
$IncludeConfig /etc/rsyslog.d/*.conf

建立来源IP接收日志配置(需手动建立),如:
/etc/rsyslog.d/172.18.11.67.conf

内容如下:
格式: :属性, 比较操作符, "值" 日志文件路径

属性包括:fromhost,fromhost-ip,msg,hostname
操作符包括:contains,isequal,startswith

例如:

:fromhost-ip, isequal, “172.18.11.67” /var/log/receive/sec67denglu.log

保存退出

注:子文件夹及文件不需要手动建立,重启服务后会自动生成。

重启服务并观察端口 systemctl restart rsyslog
并检查是否生成receive文件夹及log文件(发送机操作触发一下)

日志发送机操作
vi /etc/rsyslog.conf,找到81行,添加
authpriv.* @@172.18.11.76:514

重启服务systemctl restart rsyslog

远程登录查看日志变化是否同步

作业:
1、两台LINUX建立日志实时同步。
2、是

建立LAMP架构WEB服务器

[root@A ~]# yum -y install httpd*
[root@A ~]# yum -y install mariadb*
[root@A ~]# yum -y install php php-gd php-xml php-mysqlnd rsyslog-mysql
[root@A ~]# yum -y install libcurl-devel net-snmp-devel [root@A ~]# systemctl enable mariadb.service
[root@A ~]# systemctl start mariadb.service
[root@A ~]# mysqladmin -u root password 9865321[root@A ~]# systemctl enable httpd.service
[root@A ~]# systemctl start httpd.service
[root@A ~]# cd /var/www/html/
[root@A html]# vim test.php
<?php
phpinfo();
?>
[root@A ~]#firefox http://127.0.0.1/test.php建立WEB网站日志分析系统
1、安装 GeoIP
sudo yum install geoip geoip-devel
2、安装
centos: yum install goaccess
或源码安装
\$ wget http://tar.goaccess.io/goaccess-1.1.1.tar.gz 
\$ tar -xzvf goaccess-1.1.1.tar.gz 
\$ cd goaccess-1.1.1/ $ ./configure --enable-geoip --enable-utf8 
\$ make # make install3、配置时间和日志格式
sudo vim /usr/local/etc/goaccess.conf
将以下项目的注释去掉1. Apache/nginx time format time-format %H:%M:%S 
2. Apache/nginx date format date-format %d/%b/%Y 
3. NCSA Comobined log format log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u”
4.运行如下命令实时分析
goaccess -f /home/wwwlogs/access.log -o <output_path>/state.html --real-time-html --date-spec=hr --hour-spec=min --ws-url=www.wang.com

日志存于数据库中进行日志分析

[root@LServ ~]# cd /usr/share/doc/rsyslog-7.4.7/
[root@LServ rsyslog-7.4.7]# mysql -u root -p < mysql-createDB.sql 
Enter password: 
[root@LServ rsyslog-7.4.7]# mysql -u root -p
Enter password: 
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| Syslog |
……….
MariaDB [(none)]> grant all on Syslog.* to rsyslog@localhost identified by '13520900';
Query OK, 0 rows affected (0.02 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)[root@A ~]# vim /etc/rsyslog.conf
MODULES
$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,13520900
$ModLoad immark
$ModLoad imudp
$UDPServerRun 514
[root@A ~]# systemctl restart rsyslog.service[root@B ~]# vim /etc/rsyslog.conf 
. @172.16.8.8:514[root@B ~]# systemctl restart rsyslog.service
[root@B ~]# vim /etc/bashrc
export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[pwd]"$msg"; }'[root@B ~]# source /etc/bashrc
[root@A ~]# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.6.tar.gz[root@A ~]# tar zxvf loganalyzer-3.6.6.tar.gz
[root@A ~]# cd loganalyzer-3.6.6/
[root@A loganalyzer-3.6.6]# mkdir -p /var/www/html/loganalyzer
[root@A loganalyzer-3.6.6]# rsync -a src/* /var/www/html/loganalyzer/[root@A ~]# firefox http://127.0.0.1/loganalyzer/install.php
[root@A ~]# cd /var/www/html/loganalyzer/
[root@A loganalyzer]# touch config.php
[root@A loganalyzer]# chmod 666 config.php创建第一个系统日志source。
(注意图上的选项,特别注意:
Source Type = MYSQL Native
Database Tablename =SystemEvents )


转载于:https://blog.51cto.com/jxwpx/2316955