LINUX日志采集及远程日志同步

一、系统日志
进程和操作系统内核需要能够为发生的事件记录日志 , 这些日志可用于系统审核和问题的故障排除 , 一般这些日志永久存储 /var/log 目录中
1.日志类型
auth            ###pam产生的日志
authpriv        ###ssh、ftp等登陆信息的验证信息
cron            ###时间任务相关
kern            ###内核
lpr            ###打印
mail            ###邮件
mark(syslog)-rsyslog    ###服务内部消息,时间标识
news            ###新闻组
user            ###用户程序产生相关信息
uucp            ###unix to unix copy(unix主机之间相关通信)
local 1~7        ###自定义日志设备
2.日志级别
debug            ###有调式信息的,日志信息最多
info            ###一般信息的日志,最常用
notice            ###最具有重要性的普通条件的信息
warning            ###警告级别
err            ###错误级别,阻止某功能或模块不能正常工作的信息
crit            ###严重级别,阻止整个系统或整个软件不能正常工作的信息
alert            ###需要立刻修改的信息
emerg            ###内核崩溃等严重信息
none            ###什么都不记录
注:
3.日志存储文件
日志永久存储于 /var/log 目录中。各系统文件记录信息如下:
var/log/messages    ###大多数系统日志信息记录在此处
/var/log/secure        ###安全和身份认证相关的消息和错误的日志文件(系统登陆)
/var/log/maillog    ###与邮件服务器相关的日志文件
/var/log/cron         ###与定时任务相关的日志文件
/var/log/boot.log     ###与系统启动有关的日志文件

二、日志采集
1.系统日志采集服务rsyslog

     此服务是用来采集服务的,他不产生日志,只是采集
2.日志采集规则

1)指定日志采集路径

rsyslog 服务的主配置文件为/etc/rsyslog.conf 。在此文件中指定日志采集路径的格式为:
     日志类型 . 日志级别           /var/log/file(日志存放文件)

测试步骤:

vim   /etc/rsyslog.conf          ##查看并修改采集日志文件配置,为了让我们把日志采用到指定位置

        *.*       /var/log/westos     #将所有日志的所有调试信息放到/var/log/westos(这个文件会自动生成)
systemctl  restart  rsyslog.service     #重启rsyslog系统

 >    /var/log/westos            ###清空日志

logger  test   

cat   /var/log/westos           ###查看日志

2)指定日志采集格式

vim      /etc/rsyslog.conf

      $template 格式名称 , “日志采集格式”

       日志类型 . 日志级别                /etc/log/file(日志保存文件);格式名称

%timegenerated%  #日志生成时间
%FROMHOST-IP%    #日志来源主机的IP
%syslogtag%             #日志生成程序(记录目标)
%msg%                    #日志内容
\n                             #换行

测试步骤:

vim    /etc/rsyslog.conf
      $template STUDENT,"%FROMHOST-IP% %syslogtag% %msg%\n"          ###不采集时间
      *.*                                                     /var/log/westos;STUDENT

systemctl  restart  rsyslog.service 

 >    /var/log/westos            ###清空日志

logger  student 

cat   /var/log/westos           ###查看日志

三、日志的远程同步及采集格式设定

1.远程日志同步

1)在日志发送方

vim   /etc/rsyslog.conf

*.*    @接受IP *.*         ##‘@’表示udp协议发送,‘@@’表示tcp协议发送   ##将所有日志的所有调试信息发送到接收方地址

systemctl  restart  rsyslog.service          ###重启rsyslog服务器

2)在日志接收方
vim /etc/rsyslog.conf
15    $ModLoad imudp            ###日志接收模块
16    #$UDPServerRun 514          ###打开接收端口

systemctl restart rsyslog 
systemctl stop firewalld            ###关闭防火墙 

systemctl disable firewalld   #关闭防火墙对接收的屏蔽

测试步骤:

发送方server(172.25.254.248):

vim   /etc/rsyslog.conf

systemctl restart rsyslog.service

接收方desktop(172.25.254.168):

vim   /etc/rsyslog.conf

systemctl restart rsyslog

systemctl stop firewalld   

在发送方:

在接收方:

注意排错:防火墙关闭;网络畅通;服务开启;接口开启

四、时间同步

1.时间同步服务名称  chronyd

在服务器端共享时间:
vim /etc/chrony.conf

   22      allow  IP/24                ##允许那些客户端来访问本机共享的时间

   29      local stratum 10                 ##本机不同步任何时间,本机作为时间源

   systemctl restart chronyd.server    ##重启chronyd服务

在客户端:

vim /etc/chrony.conf

server  主机IP    iburst      ##本机立即同步ip主机的时间

systemctl restart chronyd    ##重启chronyd

chronyc sources -v

改为

出现“^* ”就说明试验成功,已经和172.25.254.248的时间同步

^                   ##172.25.254.248的服务器

*                   ##current synced已完成同步

2.修改时间

1)timedatectl 命令

timedatectl                  ##查看时间

timedatectl  list-timezones  ##查找所有时区时间
timedatectl  set-timezone Asia/Shanghai    ##修改时间为上海时间

timedatectl status            ##显示当前时间信息

timedatectl set-time "2018-10-13  22:15:00"    ##更改当前时间

2)设置硬件时间

timedatectl set-local-rtc 0   ##使用UTC(伦敦)时间

timedatectl set-local-rtc 1    ##使用当地时间

vim  /etc/adjtime              ###查看硬件时间配置文件

五、日志查看

1.     journalctl                  ##日志查看工具,直接查看内存中的日志(暂时)

   
        journalctl  -n  3        ##查看最近日志的前三行

   
        journalctl  -p  err     ##查看日志中的错误

   
        journalctl  --since  时间点   --until  时间点

  
        journalctl -o verbose             ##查看日志详细参数  

 

         journalctl _COMM=sshd _PID=10171

测试:systemctl status sshd   ##查看pid

            systemctl restart sshd       ##重开启一个sshd,每重启一次PID就会不一样

    

2.如何使用systemd-journald永久保存日志

默认此程序只负责对日志进行查看而不对日志进行保存和采集,那么关机后再开机,对日志进行查看,只能查看到开机后的日志

系统之前的日志因为是保存在内存中的,所以关机后就被清空了,那么在开机是用journalctl看不到

让systemd-journald保存日志到硬盘:
mkdir     /var/log/journal
chown    root.systemd-journal     /var/log/journal     ##更改文件所有人及所有组
chmod   g+s    /var/log/journal                                  ##在目录中创建的文件都自动归属到目录所在组
killall    -1    systemd-journald                                   ##信号1,重新加载配置而不重启

法二:

测试:

journalctl   -n  3         ##查看日志前三行内容
reboot                 ##退出系统
重新登陆

cd   /mnt         ###随便执行一条命令

journalctl          ##查看日志

猜你喜欢

转载自blog.csdn.net/msm05138240/article/details/83040229