chrony时钟同步服务

介绍

Chrony 是一个开源的自由软件,它能帮助你保持系统时钟与时钟服务器同步,因此让你的时间保持精确。Chrony既可以作为时钟同步服务端,也可以作为时钟同步客户端,它由两个程序组成,分别是 chronyd 和 chronyc。

端口

Chrony启动会监听两个端口udp 323、udp 123,udp 323监听本地服务,udp 123是我们熟知的NTP(Network Time Protocol)协议,server/client之间通过udp 123端口进行网络时钟同步,如果设置防火墙规则,放行udp 123端口就行

iptables -I INPUT -p udp -m udp -s 10.111.56.0/24 --dport 123 -j ACCEPT

配置文件

chrony配置
继续阅读“chrony时钟同步服务”

Linux下使用df与du命令磁盘容量不一致

起因

今天监控信息收到一个磁盘容量告警

磁盘监控告警

问题定位

根据监控告警信息去相应服务器检查磁盘空间情况

df与du命令查看结果

使用df与du命令显示的结果不一致,/data分区主要用于应用服务部署运行,应用服务部署的tomcat服务,每天日志量增长比较大。前段时间手动清理过tomcat的历史日志,其他应用服务不存在占用磁盘空间增长太大的情况。首先想到的是日志文件在被程序打开的时候被删除了,因为之前遇到过这种情况。但是tomcat日志都是按天切割的,删除的都不是当前程序打开的文件。

还是使用lsof检查看下有没有程序打开已经被删除的文件

继续阅读“Linux下使用df与du命令磁盘容量不一致”

MySQL数据库备份与还原

养成对数据经常做备份是平时运维中一种良好的习惯,良好的数据备份习惯或许可以成为你生产工作中紧急情况的救命稻草。记录下工作中收集整理的数据库备份与还原的操作,这里介绍两种针对mysql数据库的备份还原方法。

mysqldump

mysqldump是mysql数据库官方自带对数据库进行备份还原的工具。

优点

数据库自带不用单独找其他工具,另外因为是数据库自带工具,对数据库本身兼容性更好,特别在跨数据库版本迁移备份还原的时候推荐使用官方的mysqldump数据备份个工具。

缺点

说了优点也说下缺点,mysqldump在进行数据备份还原的时候会进行锁表操作,操作结束后又对表进行解锁。如果需要备份的数据库数据比较小还好,数据量比较大锁表时间太长对数据库的生产访问使用也存在影响。

mysqldump备份

[root@10 bin]# ./mysqldump -ugray -p -P 3308 --databases csm > /home/gray/dbbak/csm_20180118.sql

-u表示数据库用户名

-p表示数据库密码

-P表示数据库访问端口

–databases表示数据库,后面跟参数csm表示备份名叫csm的数据库

>表示输出备份数据到备份路径/home/gray/dbbak/csm_20180118.sql

继续阅读“MySQL数据库备份与还原”

LVM使用

生产工作环境中经常会遇到随着业务数据增长,原先磁盘分区挂载规划不能很好满足系统的长远发展,这就对前期系统磁盘规划有很高要求。但是即使你最初规划设计的在完美也无法改变磁盘空间满的那天。这时候就需要一种可动态可扩展的磁盘技术,于是就有了LVM(Logical Volume Manager)逻辑卷管理。如果你是运维linux服务器,LVM使用肯定是会接触到的。LVM的强大以及原理网上已经有很多文章介绍过,这里只做简单说明,主要记录下工作中实际的使用情况。

LVM组成基本概念

物理存储设备(Physical Media):指系统的存储设备文件,比如 /dev/sda、/dev/sdb 等。

物理卷PV (Physical Volume):一个可供存储LVM的块设备. 例如: 一块硬盘, 一个MBR或GPT分区, 一个回环文件, 一个被内核映射的设备 (例如 dm-crypt).它包含一个特殊的LVM头。

卷组 VG(Volume Group):物理卷的一个组,作为存放逻辑卷的容器。 PEs are allocated from a VG for a LV.

逻辑卷 LV(Logical Volume):”虚拟/逻辑卷”存放在一个卷组中并由物理块组成。是一个类似于物理设备的块设备,例如,你可以直接在它上面创建一个文件系统文件系统

物理块 PE(Physical Extent):一个卷组中最小的连续区域(默认为4 MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。

逻辑块LE(Logical Extent):LV(逻辑卷)中可以分配的最小存储单元称为 LE,在同一个卷组中,LE 的大小和 PE 的大小是一样的,并且一一对应。

字面上可以简单理解是从物理存储设备上抽象出一层逻辑卷进行磁盘管理,这样做的好处是不用对磁盘进行直接的重新分区,从逻辑划分的层面便可动态管理磁盘。默认情况,以下操作都是在root账号权限下操作。

继续阅读“LVM使用”

VMware虚拟机快照对MySQL数据库备份性能的影响

今天在整理之前系统异常事故问题时想记录下当时事故发生的情况跟解决思路。
先介绍下生产环境情况:

  • 服务器:VMware虚拟机(平台在管理,版本没具体问)
  • 操作系统:RHEL 6.3 x86_64
  • 数据库:MySQL V5.7.26(主主同步)
  • 数据库备份工具:Percona XtraBackup (服务器已关机,版本不记得)

问题现象:

早上来上班是用户登录使用系统的高峰期,上班后不久就接到用户报问题反馈聊天消息发送后窗口显示空白

思路:

根据用户反馈在本地验证复现问题,验证问题确实存在查看监控系统告警信息,根据监控告警信息去检查具体服务运行情况。当检查服务运行情况时发现所有服务均运行正常,再查看监控系统告警开始解除,多人客户端发送消息验证也恢复正常。当时监控看到的告警是来自数据库服务器,为什么去检查数据库服务的时候看着运行也正常呢?又查看数据库服务器负载情况,相比平时上班高峰期负载明显更高,数据库服务器只部署了一个数据库服务,那就是找出引起数据库负载升高的原因。

继续阅读“VMware虚拟机快照对MySQL数据库备份性能的影响”

CentOS 6升级OpenSSH

最近服务器做了一次安全漏扫,扫描报告显示存在多处安全漏洞,其中一项是openssh版本漏洞。服务器操作系统用的红帽RHEL6.5,默认软件源openssh版本都很低存在安全风险。由于服务器运行环境不能访问外网,软件升级下载到本地手动编译安装。听同事说手动编译安装openssh比较麻烦,外网服务器使用yum方式安装没注意手动编译安装软件的困难性,因为ssh这类工具的特殊性也记录下自己的升级安装过程,本次计划openssh版本升至OpenSSH 8.0。

查看当前版本

[root@test1 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.5 (Santiago)
[root@test1 ~]# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
[root@test1 ~]# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
[root@test1 ~]#

查看当前版本OpenSSH_5.3p1,OpenSSL 1.0.1e-fips

继续阅读“CentOS 6升级OpenSSH”

MySQL主从复制错误处理

最近服务器出现点异常,MySQL主数据库卡死导致业务受到影响,切换至从数据库后很快业务恢复正常。接着出现复制线程告警Slave_SQL_Running: No ,之前数据库服务器异常也出现过主从复制相同问题,记录下其中处理办法。

mysql> STOP SLAVE;

mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;

mysql> START SLAVE;

思路就是停止复制,跳过当前错误点再启动复制。

mysql> show slave status\G;
Slave_SQL_Running: Yes
Slave_IO_Running: Yes

查看复制状态,两个都显示为Yes后正常。有时候多次跳过当前错误点后还是显示 Slave_SQL_Running: No ,那就需要考虑重建主从复制关系了。

MySQL数据库版本升级

生产环境数据库使用过程中出现过几次事故,查看日志因为版本缺陷引起,最近打算升级数据库版本,由于动到数据库的东西,升级失败影响会很大,先在测试环境做升级测试。

环境

系统:Red Hat Enterprise Linux Server release 6.5 (Santiago)

数据库:MySQL-5.7.14

由于下载的二进制压缩包方式安装,自己用的Ubuntu一直apt-get方式安装升级,一直没试过二进制压缩包版本升级,网上搜了一通升级步骤,小版本可以采取本地直接升级方式。

官网下载安装包mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

继续阅读“MySQL数据库版本升级”

CentOS6下安装Java+Tomcat优化并自启动

CentOS作为服务器系统,稳定的状态成为良好的口碑。现在模拟服务器环境安装配置Java、Tomcat并对Tomcat做优化自启动。

系统:CentOS 6.9
Java:jdk-8u121-linux-i586.rpm
Tomcat:apache-tomcat-8.5.13.tar.gz

安装Java

#查看系统自带的Java并对应删除

[root@localhost ~]# rpm -qa | grep java
java_cup-0.10k-5.el6.i686
tzdata-java-2017b-1.el6.noarch
java-1.5.0-gcj-1.5.0.0-29.1.el6.i686
[root@localhost ~]# rpm -e --nodeps java-1.5.0-gcj-1.5.0.0-29.1.el6.i686

#下载好JDK文件,查看rpm包详细信息

[root@localhost 下载]# rpm -qip jdk-8u121-linux-i586.rpm 
Name        : jdk1.8.0_121                 Relocations: /usr/java 
Version     : 1.8.0_121                         Vendor: Oracle Corporation
Release     : fcs                           Build Date: 2016年12月13日 星期二 08时28分49秒
Install Date: (not installed)               Build Host: sca00boj.us.oracle.com
Group       : Development/Tools             Source RPM: jdk1.8.0_121-1.8.0_121-fcs.src.rpm
Size        : 279013566                        License: http://java.com/license
Signature   : (none)
Packager    : Java Software <jre-comments@java.sun.com>
URL         : URL_REF
Summary     : Java Platform Standard Edition Development Kit
Description :
The Java Platform Standard Edition Development Kit (JDK) includes both
the runtime environment (Java virtual machine, the Java platform classes
and supporting files) and development tools (compilers, debuggers,
tool libraries and other tools).

The JDK is a development environment for building applications, applets
and components that can be deployed with the Java Platform Standard
Edition Runtime Environment.

#看到默认安装目录是Relocations: /usr/java
继续阅读“CentOS6下安装Java+Tomcat优化并自启动”

抓到VirtualBox一个bug

今天日常更新软件时发现VirtualBox有更新,没多想就都更新了,版本号为:VirtualBox5.1.24r117012。更新完成后正常启动虚拟机,这台虚拟机分给了同事远程使用,按照惯例进到虚拟机把扩展文件也更新了,突然问题来了……点了几下死机了,再查看虚拟机状态已经没有在运行!这就悲剧了,难道是我打开姿势不对?又仔细检查一遍,没发现有什么不对。作为一个认真执着的人:D,再启动一次看看,重复多次还是同样结果,我在怀疑是不是机子过热或者硬件出了问题,关机让它休息一段时间开机再试,结果还是一样。我把注意力又转移到系统平台上,我虚拟机是在Linux系统下运行,试一下Windows平台是否正常,Windows系统下启动VirtualBox,找了其他电脑远程登录还是死机了!这么说真相只有一个——VirtualBox软件程序有BUG!现在没办法又降回到上一版。

Linux系统下VirtualBox死机卡了一下就好了,Windows系统下VirtualBox死机了直接跳出Windows经典界面——蓝屏!