Linux服务管理 - systemd

关于Linux服务管理 Linux系统从启动到提供服务的过程是这样,先是机器加电,然后通过MBR或者UEFI加载GRUB,再启动内核,内核启动服务,然后开始对外服务。 SysV init UpStart systemd主要是解决服务引导管理的问题。 CentOS 5:SysV init CentOS 6:Upstart CentOS 7:Systemd http://www.linuxidc.com/Linux/2015-04/115937.htm 1.1 SysV init的优缺点 SysV init是最早的解决方案,依靠划分不同的运行级别,启动不同的服务集,服务依靠脚本控制,并且是顺序执行的。 SysV init方案的优点: 1.原理简单,易于理解; 2.依靠shell脚本控制,编写服务脚本门槛比较低。 缺点是: 1.服务顺序启动,启动过程比较慢。 2.不能做到根据需要来启动服务,比如通常希望插入U盘的时候,再启动USB控制的服务,这样可以更好的节省系统资源。 1.2 UpStart的改进 为了解决系统服务的即插即用,UpStart应运而生,在CentOS6系统中,SysV init和UpStart是并存的,UpStart主要解决了服务的即插即用。服务顺序启动慢的问题,UpStart的解决办法是把相关的服务分组,组内的服务是顺序启动,组之间是并行启动。 1.3 systemd的诞生 SysV init服务启动慢,在以前并不是一个问题,尤其是Linux系统以前主要是在服务器系统上,常年也难得重启一次。有的服务器光硬件检测都需要5分钟以上,相对来说系统启动已经很快了。 但是随着移动互联网的到来,SysV init服务启动慢的问题显得越来越突出,许多移动设备都是基于Linux内核,比如安卓。移动设备启动比较频繁,每次启动都要等待服务顺序启动,显然难以接受,systemd就是为了解决这个问题诞生的。 systemd的设计思路是: 尽可能的快速启动服务。 尽可能的减少系统资源占用。 1.4 为什么systemd能做到启动很快 systemd使用并行的方法启动服务,不像SysV init是顺序执行的,所以大大节省了系统启动时间。 使用并行启动,最大的难点是要解决服务之间的依赖性,systemd的解决办法是使用类似缓冲池的办法。比如对TCP有依赖的服务,在启动的时候会检查依赖服务的TCP端口,systemd会把对TCP端口的请求先缓存起来,当依赖的服务器启动之后,在将请求传递给服务,使两个服务通讯。同样的进程间通讯的D-BUS也是这样的原理,目录挂载则是先让服务以为目录被挂载了,到真正访问目录的时候,才去真正操作。 systemd的特性 systemd解决了那些问题? 按需启动服务,减少系统资源消耗; 尽可能并行启动进程,减少系统启动等待时间; 提供一个一致的配置环境,不光是服务配置; 提供服务状态快照,可以恢复特定点的服务状态。 CentOS 7的systemd特性 3.1 套接字服务保持激活功能 在系统启动的时候,systemd为所有支持套接字激活功能的服务创建监听端口,当服务启动后,就将套接字传给这些服务。这种方式不仅可以允许服务在启动的时候平行启动,也可以保证在服务重启期间,试图连接服务的请求,不会丢失。对服务端口的请求被保留,并且存放到队列中。 3.2 进程间通讯保持激活功能 当有客户端应用第一次通过D-Bus方式请求进程间通讯时,systemd会立即启动对应的服务。systemd依据D-Bus的配置文件使用进程间通讯保持激活功能。 3.3 设备保持激活功能 当特定的硬件插入时,systemd启动对应的硬件服务支持。systemd依据硬件服务单元配置文件保持硬件随时被激活。 3.4 文件路径保持激活功能 当特定的文件或者路径状态发生改变的时候,systemd会激活对应的服务。systemd依据路径服务单元配置文件保证服务被激活。 3.5 系统状态快照 systemd可以临时保存当前所有的单元配置文件,或者从前一个快照中恢复单元配置文件。为了保存当前系统服务状态,systemd可以动态的生成单元文件快照。 3.6 挂载和自动挂载点管理 systemd监控和管理挂载和自动挂载点,并根据挂载点的单元配置文件进行挂载。...

 ·  · 

Linux日志管理 - syslog

rsyslog介绍 syslog守护进程,内部有两个进程,syslogd主要负责用户空间的用户进程记录日志;klog负责内核所发生的各种时间记录日志。两者合并后形成syslog。 rsyslog是syslog下一代升级产品,依然有syslogd klogd提供服务。 rsyslog可以开通远程机制监听在某个套接字上,其他任何主机所产生的日志信息由本机的rsyslog收集起来,收集完后不负责记录,而是建立一个tcp或udp连接发送给专门的日志服务器,由专门的日志服务器负责记录。默认情况下是明文的。 rsyslog特性 多线程。 支持UDP,TCP协议,基于ssl tls加密完成远程日志传输。支持RELP协议 实现将日志存储到MySQL PGSQL等关系型数据库中。 强大的过滤器,可实现过滤日志信息中任何部分,支持自定义输出格式。 日志格式 事件产生的事件 主机 进程pid 事件 bash 1 2 3 Jun 6 23:36:58 Lamp-02 NET[1838]: /etc/sysconfig/network-scripts/ifup-post: updated /etc/resolv.conf Jun 6 23:46:15 Lamp-02 yum[1963]: Updated: mysql-libs-5.1.73-8.el6_8.x86_64 Jun 6 23:46:16 Lamp-02 yum[1963]: Installed: mysql-5.1.73-8.el6_8.x86_64 有些日志记录二进制日志 /var/log/wtmp /var/log/btmp last:/var/log/wtmp 当前系统中成功登陆的日志 lastb:/var/log/btmp 当前系统中失败的登陆尝试 lastlog:显示当前系统每一个用户最近一次登陆时间 日志等级 日志级别:事件的关键性程度 lev |说明 lev 说明 none 不记录 debug 调试信息 info 正常信息,仅是一些基本信息说明 notice 比info还需要注意的一些信息内容 warning,warn 警告信息,可能有些问题,但是还不至于影响到某个服务运作的信息 err,error 一些重大的错误信息 crit 临界状态,比error还要严重的错误信息,橙色警报 alert 红色警报,已经很有问题的等级,比crit还要严重 emerg,panic 疼痛等级,意指系统已经要宕机的状态!很严重的错误信息 设施类型 facility:把某一类具有相同特性的由各个应用程序所产生的日志数据流归类到用一个数据收集管道中,这个收集管道称之为facility。...

 ·  ·