文章目录
Linux基础二
1.回归网卡传统命名机制
1.1 传统网卡命名机制
- 传统命名
- 以太网eth[0,1,2,…]
- wlan[0,1,2,…]
1.2 网卡命名策略
systemd对网络设备的命名方式
- 规则1:如果Firmware或者BIOS提供的设备索引信息可用就用此命名。比如eno1。否则使用规则2
- 规则2:如果Firmware或Bios的PCI-E扩展插槽可用就用此命名。比如ens1,否则使用规则3
- 规则3:如果硬件接口的位置信息可用就用此命名。比如enp2s0
- 规则4:根据MAC地址命名,比如enx7d3e9f。默认不开启。
- 规则5:上述均不可用时回归传统命名方式
- 上面的所有命名规则需要依赖于一个安装包:biosdevname
1.3 回归传统命名
操作实例:
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-ens33 ifdown-ppp ifup-eth ifup-sit
ifcfg-lo ifdown-routes ifup-ippp ifup-Team
ifdown ifdown-sit ifup-ipv6 ifup-TeamPort
ifdown-bnep ifdown-Team ifup-isdn ifup-tunnel
ifdown-eth ifdown-TeamPort ifup-plip ifup-wireless
ifdown-ippp ifdown-tunnel ifup-plusb init.ipv6-global
ifdown-ipv6 ifup ifup-post network-functions
ifdown-isdn ifup-aliases ifup-ppp network-functions-ipv6
ifdown-post ifup-bnep ifup-routes
[root@localhost network-scripts]# mv ifcfg-ens33 ifcfg-eth0
[root@localhost network-scripts]# vi ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33 //换成eth0
DEVICE=ens33 //换成eth0
ONBOOT=yes
IPADDR=192.168.200.10
GATEWAY=192.168.200.2
PREFIX=24
DNS1=114.114.114.114
~
编辑内核参数 在GRUB_CMDLINE_LINUX中添加 net.ifnames=0 biosdevname=0
[root@localhost ~]# vi /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap net.ifnames=0 biosdevname=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
编辑完grub配置文件以后不会立即生效,需要生成配置文件
[root@localhost ~]# grub2-mkconfig -o /etc/grub2.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-85fa2687aad64722b6e263b08260f5ad
Found initrd image: /boot/initramfs-0-rescue-85fa2687aad64722b6e263b08260f5ad.img
done
[root@localhost ~]#
重启系统
[root@localhost ~]# reboot
2. 网络管理常用命令
2.1 ifconfig
命令功能:查看和配置网络状态
命令实例:
[root@localhost ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.200.10 netmask 255.255.255.0 broadcast 192.168.200.255
inet6 fe80::20c:29ff:fe3e:6fd4 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:3e:6f:d4 txqueuelen 1000 (Ethernet)
RX packets 22225 bytes 17776424 (16.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 18787 bytes 2147002 (2.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.200.10 netmask 255.255.255.0 broadcast 192.168.200.255
inet6 fe80::20c:29ff:fe3e:6fd4 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:3e:6f:d4 txqueuelen 1000 (Ethernet)
RX packets 29815 bytes 2348300 (2.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 43976 bytes 5523236 (5.2 MiB)
[root@localhost ~]# ifconfig lo down
[root@localhost ~]# ifconfig lo
lo: flags=8<LOOPBACK> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# ifconfig lo up
[root@localhost ~]# ifconfig lo
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# ifconfig eth0 192.168.200.20 netmask 255.255.255.0
2.2 ip
命令语法:ip [ OPTIONS ] OBJECT { COMMAND | help }
常用对象的取值含义:
- link:网络设备
- address:设备上的协议(IP或IPv6)地址
- addrlabel:协议地址选择的标签配置
- route:路由表条目
- rule:路由策略数据库中的规则
常用选项:
- -V:显示命令的版本信息;
- -s:输出更详细的信息;
- -f:强制使用指定的协议族;
- -4:指定使用的网络层协议是IPv4协议;
- -6:指定使用的网络层协议是IPv6协议;
- -0:输出信息每条记录输出一行,即使内容较多也不换行显示;
- -r:显示主机时,不使用IP地址,而使用主机的域名。
命令实例:
查看网卡
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:3e:6f:d4 brd ff:ff:ff:ff:ff:ff
inet 192.168.200.10/24 brd 192.168.200.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe3e:6fd4/64 scope link
valid_lft forever preferred_lft forever
[root@localhost ~]#
查看某一个网卡
[root@localhost ~]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:3e:6f:d4 brd ff:ff:ff:ff:ff:ff
inet 192.168.200.10/24 brd 192.168.200.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe3e:6fd4/64 scope link
valid_lft forever preferred_lft forever
显示网络设备运行状态
[root@localhost ~]# ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:3e:6f:d4 brd ff:ff:ff:ff:ff:ff
显示更加详细的设备信息
[root@localhost ~]# ip -s link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
RX: bytes packets errors dropped overrun mcast
5916 68 0 0 0 0
TX: bytes packets errors dropped carrier collsns
5916 68 0 0 0 0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:3e:6f:d4 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
589343 7464 0 0 0 0
TX: bytes packets errors dropped carrier collsns
1432889 10926 0 0 0 0
[root@localhost ~]#
禁用或启用网络接口
[root@localhost ~]# ip link set lo down ; ip link set lo up
添加IP地址
[root@localhost ~]# ip addr add 192.168.200.20/24 dev eth0
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:3e:6f:d4 brd ff:ff:ff:ff:ff:ff
inet 192.168.200.10/24 brd 192.168.200.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet 192.168.200.20/24 scope global secondary eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe3e:6fd4/64 scope link
valid_lft forever preferred_lft forever
[root@localhost ~]#
删除ip地址
[root@localhost ~]# ip addr del 192.168.200.20/24 dev eth0
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:3e:6f:d4 brd ff:ff:ff:ff:ff:ff
inet 192.168.200.10/24 brd 192.168.200.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe3e:6fd4/64 scope link
valid_lft forever preferred_lft forever
显示核心路由表
[root@localhost ~]# ip route list
default via 192.168.200.2 dev eth0 proto static metric 100
192.168.200.0/24 dev eth0 proto kernel scope link src 192.168.200.10 metric 100
[root@localhost ~]#
2.3 ss
命令功能:查看网络状态
常用参数:
- -V, –version 显示版本号 -
- t, –tcp 显示 TCP 协议的 sockets
- -u, –udp 显示 UDP 协议的 sockets
- -x, –unix 显示 unix domain sockets,与 -f 选项相同
- -n, –numeric 不解析服务的名称,如 “22” 端口不会显示成 “ssh”
- -l, –listening 只显示处于监听状态的端口
- -p, –processes 显示监听端口的进程(Ubuntu 上需要 sudo)
- -a, –all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接
- -r, –resolve 把 IP 解释为域名,把端口号解释为协议名称
命令实例:
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
[root@localhost ~]# ss -antlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:* users:(("sshd",pid=1142,fd=3))
LISTEN 0 100 127.0.0.1:25 *:* users:(("master",pid=1430,fd=13))
LISTEN 0 128 :::22 :::* users:(("sshd",pid=1142,fd=4))
LISTEN 0 100 ::1:25 :::* users:(("master",pid=1430,fd=14))
[root@localhost ~]#
常见端口:
- http 80/tcp
- https 443/tcp
- ssh 22/tcp
- ftp 20,21/tcp
- mysql 3306/tcp
- rsync 873/rsync
- redis 6379/tcp
3. 网络配置文件详情
配置文件路径 /etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.200.10
GATEWAY=192.168.200.2
PREFIX=24
DNS1=114.114.114.114
配置信息:
- TYPE //接口类型。常见的接口类型有:Ethernet,Bridge
- IPADDR=192.168.200.10 //固定IP地址
- PREFIX=24 //子网掩码
- NETMASK=255.255.255.0 //子网掩码
- GATEWAY=192.168.200.2 //默认网关
- DNS1=114.114.114.114 //第一个DNS服务器指向
- DNS2 //第二个DNS服务器指向
- DNS3 //第三个DNS服务器指向
- DEVICE=eth0 //关联的设备名称,要与文件名的后半部"INTERFACE_NAME"保持一致
- NAME=eth0 //连接名称
- ONBOOT=yes //在系统引导时是否自动激活此网络接口,可选值有{ yes | no }
4. 磁盘
4.1 硬盘命名
命名方式:
- 传统IDE接口硬盘:/dev/hd[a-z]
- SCISI接口硬盘:/dev/sd[a-z]
- 虚拟化硬盘:/dev/vd[a-z]
4.2 MBR与GPT
MBR分区
-
最多只能有四个主分区
-
最大支持2TB磁盘
GPT分区
- GPT对磁盘大小没有限制
- 最多可以创建128个分区
4.3 分区
fdisk分区
[root@localhost ~]# fdisk /dev/nvme0n2
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xf3363699 创建新的 DOS 磁盘标签。
//创建硬盘
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB
//列出硬盘
命令(输入 m 获取帮助):p
磁盘 /dev/nvme0n2:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf3363699
设备 Boot Start End Blocks Id System
/dev/nvme0n2p1 2048 10487807 5242880 83 Linux
//保存退出
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 4.2G 0 rom
nvme0n1 259:0 0 100G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 99G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
└─centos-home 253:2 0 45.1G 0 lvm /home
nvme0n2 259:3 0 20G 0 disk
├─nvme0n2p1 259:4 0 5G 0 part
└─nvme0n2p2 259:5 0 1K 0 part
[root@localhost ~]# partprobe /dev/nvme0n2
4.4 格式化
目的:是为了创建文件系统 mkfs(make filesystem)
类型:
- Fat32 单个文件不能超过4G
- Ntfs 单个文件可以超过4G 兼容性差
- Exfat 单个文件可以超过4G 兼容性好
- ext4
- xfs
- vfat
实例:
[root@localhost ~]# mkfs.ext4 /dev/nvme0n2p1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@localhost ~]#
4.5 临时挂载与永久挂载
临时挂载:
[root@localhost ~]# mkdir /zzz
[root@localhost ~]# mount -t ext4 /dev/nvme0n2p1 /zzz/
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 1.2G 49G 3% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-home 46G 33M 46G 1% /home
/dev/nvme0n1p1 1014M 142M 873M 14% /boot
tmpfs 378M 0 378M 0% /run/user/0
/dev/nvme0n2p1 4.8G 20M 4.6G 1% /zzz
[root@localhost ~]#
永久挂载:
[root@localhost ~]# blkid /dev/nvme0n2p1
/dev/nvme0n2p1: UUID="68b056b3-c11a-48c5-9abe-d98c87d8b9fd" TYPE="ext4"
[root@localhost ~]# vi /etc/fstab
UUID="68b056b3-c11a-48c5-9abe-d98c87d8b9fd" /zzz ext4 defaults 0 0
[root@localhost ~]# mount -a
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 1.2G 49G 3% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-home 46G 33M 46G 1% /home
/dev/nvme0n1p1 1014M 142M 873M 14% /boot
tmpfs 378M 0 378M 0% /run/user/0
/dev/nvme0n2p1 4.8G 20M 4.6G 1% /zzz
[root@localhost ~]#
5. 计划任务
时间配置
- 分(0-59)*/2 每两分钟 ,1-10 一分钟到10分钟,1,10 一分钟和10分钟
- 时(0-23)
- 日(1-31)
- 月(1-12)
- 周(0-7)
实例:
[root@localhost ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
20 11 * * * /usr/bin/echo "woshineidie"
每天的11点20 执行命令
[root@localhost ~]# crontab -l
20 11 * * * /usr/bin/echo "woshineidie"
[root@localhost ~]#
6. 日志服务rsyslog
6.1 日志系统
- kernel——> 物理终端(/dev/console)——> /var/log/dmesg 或者 #dmesg 或 cat /var/log/dmesg
6.2 系统日志
- /var/log/messages:系统标准错误日志信息;非内核产生的引导信息;各子系统产生的信息
- /var/log/maillog:邮件系统产生的日志信息
- /var/log/secure:与安全相关的日志信息
6.3 日志详细级别
- 日志级别:级别越低越详细
6.4 系统日志服务
- syslog:centos5
- rsyslog:centos6,是syslog的升级版
- 特性:
- 多线程
- 支持UDP,TCP,SSL,TLS协议
- 支持使用MySQL,PGSQL,Oracle实现日志存储(默认没启用此功能,需要加载rsyslog支持此类存储方式的模块,并配置其可使用mysql存储日志)
- 强大的过滤器,可实现过滤系统日志信息中的任何部分
- 自定义输出格式
- 特性:
6.5 elasticsearch,logstash,kibana = elk
- elasticsearch:存储,分析日志
- logstash:日志收集工具
- kibana:前端展示工具
6.6 日志服务(syslog/rsyslog)
1、syslog和rsyslog服务均有两个进程
- syslogd:系统,非内核产生的日志信息
- klogd:内核,专门负责记录内核产生的日志信息
2、日志服务配置文件
- syslog服务的配置文件:/etc/syslog.conf
- rsyslog服务的配置文件:/etc/rsyslog.conf
3、配置文件格式定义
- facility.priority action //设备/来源/服务.日志级别 动作(日志记录到哪)
- facility可以理解为日志的来源或设备,目前常用的facility有以下几种
auth | 认证相关的 |
---|---|
authpriv | 权限、授权相关的 |
cron | 任务计划相关的 |
daemon | 守护进程相关的 |
kern | 内核相关的 |
lpr | 打印机关的 |
邮件相关的 | |
mark | 标记相关的 |
news | 新闻相关的 |
security | 安全相关的,与auth类似 |
syslog | syslog自己的 |
user | 用户相关的 |
uucp | unix to unix cp相关的 |
local0到local7 | 用户自定义使用 |
***** | *表示所有的facility |
- prior (log level) 日志的级别,一般有一下几种级别从低到高 (级别越低信息越详细)
debug | 程序或系统的调试信息 |
---|---|
info | 一般信息 |
notice | 不影响正常功能,需要注意的消息 |
warning/warn | 可能影响系统功能,需要提醒用户的重要事件 |
err/error | 错误信息 |
crit | 紧急,比较严重的 |
alert | 必须马上处理的 |
emerg/panic | 会导致系统不可用的 |
***** | *表示所有的日志级别 |
none | 跟*相反,表示啥也没有 |
- action(动作)日志记录的位置
系统上的绝对路径 | 普通文件,如:/var/log/xxx |
---|---|
| COMMAND | 管道,通过管道送给其他的命令处理 |
终端 | 终端,如:/dev/console |
@HOST | 远程主机(远程主机必须要监听在tcp或udp协议514端口上提供服务),如:@10.0.0.1 |
用户 | 系统用户,如:root |
***** | 登录到系统上的所有用户 |
4、格式定义的例子
- mail.info /var/log/maillog 表示将mail相关的,级别为info及info以上级别的信息同步记录到**/var/log/maillog**文件中
- mail.* -/var/log/maillog 表示将mail相关的所有日志信息异步记录到**/var/log/maillog**文件中,路径前的“-”表示异步模式
- auth.=info @10.0.0.1 表示将auth相关的,级别为info的信息记录到10.0.0.1主机上去。前提是10.0.0.1要能接收其他主机发来的日志信息
- user.!=error 表示记录user相关的,但不包括error级别的日志信息
- user.!error 与user.error相反
- .info 表示记录所有的日志信息的info*级别
- mail.* 表示记录mail相关的所有级别的信息
- *.* 表示 记录所有级别的所有日志信息
- cron.info;mail.info 多个日志来源可以用分号隔开
- cron,mail.info 与cron.info;mail.info是一个意思
- mail.*;mail.!=info 表示记录mail相关的所有级别的信息,但是不包括info级别的
5、文件记录(/var/log/message)的日志的格式:
- 事件产生的日期时间 主机 进程(pid):事件内容
- 有些日志记录为二进制格式:/var/log/wtmp,/var/log/btmp
- /var/log/wtmp:当前系统成功登录的日志,可使用last命令查看其内容
- /var/log/btmp:当前系统失败的登录尝试的日志,可使用lastb命令查看其内容
6、lastlog命令:显示当前系统每一个用户最近一次的登入时间
6.7 实例操作
//配置rsyslog服务器
//编辑配置文件(/etc/rsyslog.conf),将下列内容前面的注释去掉,然后重启rsyslog服务即可:
#$ModLoad imudp
#$UDPServerRun 514
#$ModLoad imtcp
#$InputTCPServerRun 514
[root@localhost ~]# vi /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
//配置使用基于mysql存储日志信息的rsyslog服务器:假定此处的mysql和rsyslog是两台不同的主机
注意:请关闭防火墙和SELINUX
1.确保mysql服务正常
2.在rsyslog服务器上安装rsyslog-mysql模块(yum -y install rsyslog-mysql)
[root@rsyslog ~]# yum -y install rsyslog-mysql
已加载插件:fastestmirror
Determining fastest mirrors
* base: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.tuna.tsinghua.edu.cn
base | 3.6 kB 00:00
extras | 2.9 kB 00:00
updates | 2.9 kB 00:00
(1/4): extras/7/x86_64/primary_db | 242 kB 00:00
(2/4): base/7/x86_64/group_gz | 153 kB 00:00
(3/4): base/7/x86_64/primary_db | 6.1 MB 00:01
(4/4): updates/7/x86_64/primary_db | 8.8 MB 00:02
正在解决依赖关系
--> 正在检查事务
---> 软件包 rsyslog-mysql.x86_64.0.8.24.0-57.el7_9.1 将被 安装
....
3.在mysql服务器上授权一个用户能够对Syslog数据库有写权限
mysql> GRANT ALL ON syslog.* TO 'syslog'@'192.168.%.%' IDENTIFIED BY
'syslogpassword';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>
4.配置mysql服务器,在主配置文件(/etc/my.cnf)中添加下面两行内容,并重启mysql服务
[root@mysql ~]# vi /etc/my.cnf
skip_name_resolve = on
innodb_file_per_table = on
5.在rsyslog服务器上执行sql语句
[root@rsyslog ~]# mysql -usyslog -h192.168.200.141 -psyslogpassword < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
6.配置rsyslog服务器能使用mysql存储日志。编辑/etc/rsyslog.conf文件并重启rsyslog服务
在### MODULES ###段下面添加如下内容:
$ModLoad ommysql
在### RULES ###段下面添加如下内容:
*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.200.141,Syslog,syslog,syslogpassword
ommysql:表示使用ommysql模块存储日志至mysql
Syslog:表示mysql中的Syslog数据库
syslog:表示连接mysql的用户
syslogpassword:表示连接mysql的密码
7.配置webserver,支持php
[root@mysql ~]# yum install httpd php php-mysql php-gd
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.nju.edu.cn
* updates: mirrors.nju.edu.cn
base | 3.6 kB 00:00
extras | 2.9 kB 00:00
mysql-connectors-community | 2.6 kB 00:00
mysql-tools-community | 2.6 kB 00:00
mysql57-community | 2.6 kB 00:00
updates | 2.9 kB 00:00
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-97.el7.centos 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-97.el7.centos,它被软件包 httpd-2.4.6-97.el7.centos.x86_64 需要
......
[root@mysql ~]# systemctl start httpd
8.配置前端展示界面(loganalyzer软件)
[root@mysql ~]# tar xf loganalyzer-3.6.5.tar.gz
[root@mysql ~]# mv loganalyzer-3.6.5/src /var/www/html/loganalyzer
[root@mysql ~]# cp -a loganalyzer-3.6.5/contrib/*.sh /var/www/html/loganalyzer/
[root@mysql ~]# cd /var/www/html/loganalyzer/
[root@mysql loganalyzer]#chmod +x *.sh
[root@mysql loganalyzer]#./configure.sh
[root@mysql loganalyzer]#./secure.sh
[root@mysql loganalyzer]#chmod 666 config.php
#如果没有此文件则手动touch一个即可
在浏览器上输入:http://IP/loganalyzer/install.php
7. httpd 编译安装 虚拟机配置
编译安装三步:
- ./configure --prefix=安装目录 --with
- make
- make install
//在官网拉取三个包
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.48.tar.gz
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.7.0.tar.gz
//解压
[root@localhost ~]# tar xf apr-1.7.0.tar.gz
[root@localhost ~]# tar xf apr-util-1.6.1.tar.gz
[root@localhost ~]# tar xf httpd-2.4.48.tar.gz
//进入到apr-1.7.0 删除或注释 $RM "$cfgfile"
[root@localhost apr-1.7.0]# vi configure
//开始编译安装
[root@localhost apr-1.7.0]# ./configure --prefix=/usr/local/apr 可能会报错需要安装 gcc
//安装gcc
[root@localhost apr-1.7.0]# yum -y install gcc gcc-c++
//再次编译
[root@localhost apr-1.7.0]# ./configure --prefix=/usr/local/apr
configure: creating ./config.status
config.status: creating Makefile
config.status: creating include/apr.h
config.status: creating build/apr_rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating apr-1-config
config.status: creating apr.pc
config.status: creating test/Makefile
config.status: creating test/internal/Makefile
config.status: creating include/arch/unix/apr_private.h
config.status: executing libtool commands
config.status: executing default commands
//开始make 编译
[root@localhost apr-1.7.0]#make && make install
[root@localhost apr-1.7.0]# make && make install
make[1]: 进入目录“/root/apr-1.7.0”
/bin/sh /root/apr-1.7.0/libtool --silent --mode=compile gcc -g -O2 -pthread -DHAVE_CONFIG_H -DLINUX -D_REENTRANT -D_GNU_SOURCE -I./include -I/root/apr-1.7.0/include/arch/unix -I./include/arch/unix -I/root/apr-1.7.0/include/arch/unix -I/root/apr-1.7.0/include -I/root/apr-1.7.0/include/private -I/root/apr-1.7.0/include/private -o strings/apr_strings.lo -c strings/apr_strings.c && touch strings/apr_strings.lo
/bin/sh /root/apr-1.7.0/libtool --silent --mode=compile gcc -g -O2 -pthread -DHAVE_CONFIG_H -DLINUX -D_REENTRANT -D_GNU_SOURCE -I./include -I/root/apr-1.7.0/include/arch/unix -I./include/arch/unix -I/root/apr-1.7.0/include/arch/unix -I/root/apr-1.7.0/include -I/root/apr-1.7.0/include/private -I/root/apr-1.7.0/include/private -o stri
......
//进入到apr-util 开始编译安装
[root@localhost ~]# cd apr-util-1.6.1
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking for working mkdir -p... yes
APR-util Version: 1.6.1
checking for chosen layout... apr-util
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
....
//make编译安装
[root@localhost apr-util-1.6.1]# make && make install
make[1]: 进入目录“/root/apr-util-1.6.1”
/bin/sh /usr/local/apr/build-1/libtool --silent --mode=compile gcc -g -O2 -pthread -DHAVE_CONFIG_H -DLINUX -D_REENTRANT -D_GNU_SOURCE -I/root/apr-util-1.6.1/include -I/root/apr-util-1.6.1/include/private -I/usr/local/apr/include/apr-1 -o buckets/apr_brigade.lo -c buckets/apr_brigade.c && touch buckets/apr_brigade.lo
/bin/sh /usr/local/apr/build-1/libtool --silent --mode=compile gcc -g -O2 -pthread -DHAVE_CONFIG_H -DLINUX -D_REENTRANT -D_GNU_SOURCE -I/root/apr-util-1.6.1/include -I/root/apr-util-1.6.1/include/private -I/usr/local/apr/include/apr-1 -o buckets/apr_buckets.lo -c buckets/apr_buckets.c && touch buckets/apr_buckets.lo
/bin/sh /usr/local/apr/build-1/libtool --silent --mode=compile gcc -g -O2 -pthread -DHAVE_CONFIG_H -DLINUX -D_REENTRANT -D_GNU_SOURCE -I/root/apr-util-1.6.1/include -I/root/apr-util-1.6.1/include/private -I/usr/local/apr/include/apr-1 -o buckets/apr_buckets_alloc.lo -c buckets/apr_buckets_alloc.c && touch buckets/apr_buckets_alloc.lo
/bin/sh /usr/local/apr/build-1/libtool --silent --mode=compile gcc -g -O2 -pthread -DHAVE_CONFIG_H -DLINUX -D_REENTRANT -D_GNU_SOURCE -I/root/apr-util-1.6.1/include -I/root/apr-util-1.6.1/include/private -I/usr/local/apr/include/apr-1 -o buckets/apr_buckets_eos.l
.....
//进入到httpd里开始编译安装
[root@localhost apr-util-1.6.1]# cd /root/httpd-2.4.48
[root@localhost httpd-2.4.48]# ./configure --prefix=/usr/local/httpd--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
configure:
configure: Configuring Apache Portable Runtime library...
configure:
checking for APR... yes
setting CC to "gcc"
setting CPP to "gcc -E"
setting CFLAGS to " -g -O2 -pthread"
setting CPPFLAGS to " -DLINUX -D_REENTRANT -D_GNU_SOURCE"
setting LDFLAGS to " "
configure:
configure: Configuring Apache Portable Runtime Utility library...
configure:
checking for APR-util... yes
checking for gcc... gcc
.....
//开始make
[root@localhost httpd-2.4.48]# make && make install
Making all in srclib
make[1]: 进入目录“/root/httpd-2.4.48/srclib”
make[1]: 离开目录“/root/httpd-2.4.48/srclib”
Making all in os
make[1]: 进入目录“/root/httpd-2.4.48/os”
Making all in unix
make[2]: 进入目录“/root/httpd-2.4.48/os/unix”
make[3]: 进入目录“/root/httpd-2.4.48/os/unix”
/usr/local/apr/build-1/libtool --silent --mode=compile gcc -std=gnu99 -g -O2 -pthread -DLINUX -D_REENTRANT -D_GNU_SOURCE -I. -I/root/httpd-2.4.48/os/unix -I/root/httpd-2.4.48/include -I/usr/local/apr/include/apr-1 -I/usr/local/apr-util/include/apr-1 -I/root/httpd-2.4.48/modules/aaa -I/root/httpd-2.4.48/modules/cache -I/root/httpd-2.4.48/modules/core -I/root/httpd-2.4.48/modules/database -I/root/httpd-2.4.48/modules/filters -I/root/httpd-2.4.48/modules/ldap -I/root/httpd-2.4.48/modules/loggers -I/root/httpd-2.4.48/modules/lua -I/root/httpd-2.4.48/modules/proxy -I/root/httpd-2.4.48/modules/http2 -I/root/httpd-2.4.48/modules/session -I/root/httpd-2.4.48/modules/ssl -I/root/httpd-2.4.48/modules/test -I/root/httpd-2.4.48/server -I/root/httpd-2.4.48/modules/md -I/root/httpd-2.4.48/modules/arch/unix -I/root/httpd-2.4.48/modules/dav/main -I/root/httpd-2.4.48/modules/generators -I/root/httpd-2.4.48/modules/mappers -prefer-non-pic -static -c unixd.c && touch unixd.lo
/usr/local/apr/build-1/libtool --silent --mode=link gcc -std=gnu99 -g -O2 -pthread -o libos.la -static unixd.lo
.....
//安装完毕启动
[root@localhost local]# cd httpd/
[root@localhost httpd]# ls
bin cgi-bin error icons logs manual
build conf htdocs include man modules
[root@localhost httpd]# /usr/local/httpd/bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
[root@localhost httpd]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::80 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
[root@localhost httpd]#
//关闭防火墙
[root@localhost httpd]# systemctl stop firewalld
[root@localhost httpd]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost httpd]# setenforce 0
[root@localhost httpd]#
//访问
host httpd]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :22 :
LISTEN 0 100 127.0.0.1:25 :
LISTEN 0 128 :::80 :::
LISTEN 0 128 :::22 ::