Linux:日志系统和网络管理

发布时间 2023-11-28 22:23:22作者: Huan&

一  、日志系统

日志文件:系统中各个运行消息的文件,不同的日志文件记录了不同类型的信息,如内核消息、错误消息等。

syslog服务:

syslogd: 系统,非内核产生的信息

klogd:内核,专门负责记录内核产生的日志信息

分析日志文件: 通过浏览日志查找关键信息,对系统服务进行调试,判断故障发生的原因

分类
内核及系统日志: 数据由系统服务rsyslog统一管理可以根据主配文件/etc/rsyslog.conf中的设置决定内核消息及其各种系统消息的记录位置/var/log/messages

用户日志: 数据用于记录系统用户登录及其退出系统的相关信息,包括用户名、登录终端、 登录时间、来源、使用的进程等等 /var/log/secure

程序日志: 应用程序自己独立管理的一个日志,记录程序本身运行过程中的各种事件信息 /var/log/nginx/access.log /var/log/nginx/error.log

1、内核和系统日志 /etc/rsyslog.conf

mail.notice(举例)

服务.级别 /var/log/messages 内核和大多数系统消息日志位置

消息内容组成 时间:消息发出的时间和日期

主机名:生成消息的计算机的名称

子系统的名称:发出消息的应用程序的名称

消息内容:消息的具体内容

2、用户日志和程序日志

查询当前登录的用户情况:users,who,w

查询用户登录的历史记录:last 成功日志,lastb 失败日志

查看安全日志文件:/var/log/secure

举例:查看/var/log/secure安全日志文件,打开新终端会看到信息。

 


3、程序日志

例1:httpd 服务的日志文件access_log和error_log分别记录客户访问事件和错误信息 /var/log/httpd/access_log /var/log/httpd/error_log

例2:nginx服务的日志文件access.log和error.log /var/log/nginx/access.log /var/log/nginx/error.log

例3:源码安装nginx日志路径 /usr/local/nginx/logs

注意:/var/log/dmesg 系统启动硬件检查日志:直接运行命令 dmesg

常见日志文件
/var/log/boot.log 记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息

/var/log/messages 记录Linux操作系统常见的系统和服务错误信息

/var/log/cron crond 计划任务产生的事件信息

/var/log/dmesg 引导过程中产生的信息

/var/log/maillog 记录电子邮件活动信息

/var/log/lastlog 记录最后一次用户成功登陆的时间、登陆IP等信息

/var/log/secure Linux系统安全日志,记录用户和工作组变化情况、用户登陆认证情况

/var/log/syslog 只记录警告信息,常常是系统出问题的信息,使用lastlog查看

/var/log/wtmp 记录用户登录、注销、系统启动、关键等信息,使用last命令查看

/var/log/btmp 记录失败或者是错误的登录信息和验证 lastb命令查看

/var/run/utmp 该日志文件记录有关当前登录的每个用户的信息。如who、w、users等就需要访问这个文件

日志消息的级别
0 emerg 会导致主机系统不可用的情况

1 alert 必须马上采取措施解决的问题

2 crit 比较严重的情况

3 err 运行出现问题

4 warning 可能影响系统功能,需要提醒用户的重要事件

5 notice 不会影响正常功能,但是需要注意的事件

6 info 一般信息

7 debug 程序或系统调试信息等

8 none 不记录任何日志

rsyslog.conf文件分析
加载模块、转发端口等基本配置

 


服务名称
auth # 认证相关的
authpriv # 权限,授权相关的
cron # 任务计划相关的
daemon # 守护进程相关的
kern # 内核相关的
lpr # 打印相关的
mail # 邮件相关的
mark # 标记相关的
news # 新闻相关的
security # 安全相关的,与auth 类似
syslog # syslog自己的
user # 用户相关的
uucp # unix to unix cp 相关的
local0 到 local7 # 用户自定义使用
* # *表示所有的facility
配合日志级别举例
1、//mail的info级别以上的信息,记录的位置
mail.info /var/log/mail
2、//只记录info这一个级别。
auth.=info
3、//user的相关信息但不包括error,取反。
user.!=error
4、//所有日志的info以上的信息
*.info
5、//mail的所有级别
mail.*
6、//所有服务的所有级别
*.*
7、//合并日志,写到一块
cron.info;mail.info
action(动作)日志记录的位置
- //延迟写入,系统不繁忙的时候才写入。
发送邮件,通过什么协议
@@192.168.1.1 TCP
@192.168.1.1 UDP

*号表示所有在线用户
~ 忽略日志
^号后跟可执行脚本或程序的绝对路径

案例:更改系统安全日志secure的记录位置,将secure的位置更改为/usr/local/secure

 


日志的采集
企业环境可以使用ELK,但rsyslog也可以实现日志收集功能

 

参数解释:

//间隔多久采集1次。

默认单位是秒 $InputFilePollInterval 1

//采集的日志的名称

$InputFileName /usr/local/nginx/logs/access.log

//给对应的日志打一个标签

$InputFileTag nginx-info-access;

//给这个日志命名

$InputFilestateFile state-nginx-info-accesslog

//启动监控

$InputRunFileMonitor

日志的切割
为了防止日志文件过大,所以我们要做到日志定期的切割和清理。 logrotate 日志轮替

/etc/logrotate.conf

weekly //切割周期,默认每周

rotate 4 //保留多少个日志文件,那么一周一个,也就是能看到一个月的日志。如果是0就表示不作备份,仅做了一个切割,表示每周清空一下日志。

create //旧日志切割后,源文件是否生成新的日志。这一点就跟脚本切割日志有很大不同的地方。

dateext //切割后,日志的文件类型是什么样?默认是以日期来切割的。

include /etc/logrotate.d //还需要读取这个地方的内容 ,目录里都是其他地方的日志

/var/log/wtmp { //特指某个文件的切割方式,

monthly //每月切割

create 0664 root utmp //切割完成之后,这个文件的权 限,以及属主和属组是谁

minsize 1M //文件超过1M之后才切割,这表示即便过了1个月, 大小没到1M,也不切割

rotate 1 //保留1个

}

其他参数:

compress //压缩,gzip
delaycompress //延迟压缩
nocompress //不压缩
copytruncate //先拷贝,再清空。
missingok //丢了也没关系,热日志会出现中断
ifempty //即使日志文件为空,到日期也切割
notifempty //为空者不切割
mail Email //切割后的日志文件,不在本地保存,发送邮件到其他地方。
nomail //生成的日志不发送,在本地使用
olddir Directory //另存为的地址,如果不写则默认是在同一个目录下边。
noolddir //转存文件都保存在本地。
sharedscripts //运行脚本,为脚本添加的a权限后需要暂时调整权限
postrotate //切割之后,执行脚本
prefotate //切割之前,执行脚本时间参数
daily //每天
weekly //每周
mounthly //每月
yearly //每年
rotate count //保存几份。
dateext //使用当前日期。
size(minisize) //达到多少才切割,默认单位是M,sizeksizem默认单位是kb。size = 5

切割安全日志

手动切割日志
如果有特殊权限,而每次切割完成之后,都需要重新启动rsyslog服务,需要写脚本支持。

脚本切割nginx日志

 

 

二 、网络管理

在CentOS 7系统中,网络配置发生了较大变化,一是网卡的命名规则,二是使用网络管理器管理网络。
在早期的Linux系统中,网卡被命名为eth0、eth1、eth2等,但往往不一定准确对应网卡接口的物理顺序。CentOS7默认基于硬件、设备拓扑来分配网卡名称。 CentOS 7的网卡名称具有以下特征:
     1.以太网接口名称以en开头,WLAN接口名称从w1开头,WWAN 接口名称以ww开头。
     2.下一个字符表示适配器的类型,其中。表示在主板上,s表示热插拔插槽,P表示PCI接口设备。
     3.第三个字符为x用于合并MAC地址,默认情况下不使用,管理员可用。最后使用数字n表示索引、ID或端口。
     4.如果无法确定名称,则使用ethn这样的传统名称。

网卡配置参数

            计算机在同一网络下的唯一标识,IP地址不能重复

            32位二进制数构成

             由于不方便记忆

默认网关
通向外部网络的唯一出口

连接不同网络的途径

DNS地址
域名解析服务—将已知的域名解析为IP地址

用来进行使用域名访问网络服务器

2)获得网卡配置参数的方法

自动获得 DHCP分配
手动配置 管理员手动配置

 

网络参数配置
1.图形化—NetworkManager
2.命令行
ifconfig
查看及配置网卡参数(临时配置),不能查看基于配置文件的多IP地址的网络参数
root用户可以使用该命令更改网卡参数,普通用户只能用户查看
语法
查看—ifconfig [网卡名]

 


配置—ifconfig 网卡名 IP地址/子网掩码的网络位长度

子接口
基于物理网卡的逻辑接口

可以使系统基于一块网卡配置多个IP地址

ifconfig 网卡名:编号(上限999999999) IP地址/子网掩码的网络位长度

ip a[ddress]
查看网络参数

能够查看基于配置文件实现的多IP地址配置后的网络参数

 

 

配置文件

/etc/sysconfig/network-scripts/ifcfg-网卡名

永久配置,需要网卡重新读取配置文件

配置参数
单一IP地址配置
自动获得
TYPE=Ethernet 网卡参数的类型,Ethernet:以太网

BOOTPROTO=dhcp 获得IP地址的方式,dhcp|static|none

NAME=ens33 网卡描述名称,可有可无

DEVICE=ens33 网卡设备名称

ONBOOT=yes 是否启用配置文件,yes|no

手动配置
TYPE=Ethernet

BOOTPROTO=static

NAME=ens33

DEVICE=ens33

ONBOOT=yes

IPADDR=192.168.115.150 IP地址
PREFIX=24 子网掩码长度

[ 或者使用 NETMASK=255.255.255.0]

GATEWAY=192.168.115.2 默认网关

DNS1=192.168.115.2 域名解析服务器地址

多IP地址配置—手动配置
TYPE=Ethernet

BOOTPROTO=static

NAME=ens33

DEVICE=ens33

ONBOOT=yes

IPADDR1=192.168.115.150

PREFIX1=24

GATEWAY=192.168.115.2

DNS1=192.168.115.2

IPADDR2=192.168.115.151

PREFIX2=24

DNS2=192.168.115.3

DNS3=192.168.115.

三、网卡启停操作
systemctl start network


ifup 网卡名 ifdown 网卡名(重新读取网卡配置文件)
ifconfig 网卡名 up | down 不会重新读取配置文件
四、路由配置
route
查看 route -n


配置路由
添加
route [选项] add [选项] 目标网络ID/子网掩码网络位长度 [选项] 下一跳地址

删除
route [选项] del [选项] 目标网络ID/子网掩码网络位长度 [选项] 下一跳地址

配置网关地址(临时)
语法
route add -net 0/0 gw 网关地址

route add default gw 网关地址

 

作用

查看本地服务的网络监听状态,查看客户端连接到本地服务的连接状态

语法—netstat 选项 (-anptu)
选项

 


查看本地服务的网络监听状态,查看客户端连接到本地服务的连接状态

语法—ss 选项 (-anptuli)
选项