systemctl配置文件日志|如何在CentOS 7上安装ElasticsearchLogstash和Kibana

A. /var/log/message设置只能追加会不会导致文件持续增大

会增大的,解决步骤:

1、检查springboot的logback设置。

未找到将log写到 linux syslog的相关配置。

2、查看系统日志的配置。

打开 /etc/rsyslog.conf。

找到关于 messages的配置信息:

info;mail.none;authpriv.none;cron.none /var/log/messages

将其直接改为:

none /var/log/messages。

保存后,重启 rsyslog。

systemctl restart rsyslog。

使用tail -f /var/log/messages 查看日志实时的写入,发现已经停止,问题解决。

系统日志简介:

系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志。

B. 大佬们,请教有做过mysql数据库日志备份到远程服务器rsyslog日志服务器的吗帮忙指点指点

1、数据库服务器部署

yum install mariadb-server

systemctl start mariadb.service

mysql_secure_installation 运行安全脚本

2、日志服务器

yum install rsyslog-mysql

rpm -ql rsyslog-mysql

cat /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

3 在数据库服务器上创建日志用户

grant all on Syslog.* to [email protected]'192.168.8.%' identified by 'mage';

4 在日志服务器上通过MySQL创建日志数据库

mysql -uloguser -pmage -h192.168.8.107 < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

5 在日志服务器上配置日志服务配置文件,使其可以支持连接数据库模块,并将本机日志关联至远程日志数据库

vim /etc/rsyslog.conf

#### MODULES ####

$ModLoad ommysql

#### RULES ####

*.info;mail.none;authpriv.none;cron.none

*.* :ommysql:192.168.8.107,Syslog,loguser,mage

service rsyslog restart

6 logger 测试

此时logger触发日志时,日志服务器上的日志将会记录至远程数据库Syslog中

7、web服务器配置

yum install httpd php php-mysql php-gd

systemctl start httpd

tar xvf loganalyzer-4.1.5.tar.gz

cd loganalyzer-4.1.5/

mv src/ /var/www/html/log

cd /var/www/html/log

cat /root/loganalyzer-4.1.5/contrib/configure.sh

cat /root/loganalyzer-4.1.5/contrib/secure.sh

touch config.php

chmod 666 config.php

C. Systemctl 详解

Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。

systemctl 是 Systemd 的主命令,用于管理系统。

systemd-analyze 命令用于查看启动耗时。

hostnamectl 命令用于查看当前主机的信息。

localectl 命令用于查看本地化设置。

timedatectl 命令用于查看当前时区设置。

loginctl 命令用于查看当前登录的用户。

Systemd 可以管理所有系统资源。不同的资源统称为 Unit(单位)。

Unit 一共分成12种。

systemctl list-units 命令可以查看当前系统的所有 Unit 。

systemctl status 命令用于查看系统状态和单个 Unit 的状态。

除了 status 命令, systemctl 还提供了三个查询状态的简单方法,主要供脚本内部的判断语句使用。

对于用户来说,最常用的是下面这些命令,用于启动和停止 Unit(主要是 service)。

Unit 之间存在依赖关系:A 依赖于 B,就意味着 Systemd 在启动 A 的时候,同时会去启动 B。

systemctl list-dependencies 命令列出一个 Unit 的所有依赖。

上面命令的输出结果之中,有些依赖是 Target 类型(详见下文),默认不会展开显示。如果要展开 Target,就需要使用 –all 参数。

每一个 Unit 都有一个配置文件,告诉 Systemd 怎么启动这个 Unit 。

Systemd 默认从目录 /etc/systemd/system/ 读取配置文件。但是,里面存放的大部分文件都是符号链接,指向目录 /usr/lib/systemd/system/ ,真正的配置文件存放在那个目录。

systemctl enable 命令用于在上面两个目录之间,建立符号链接关系。

如果配置文件里面设置了开机启动, systemctl enable 命令相当于激活开机启动。

与之对应的, systemctl disable 命令用于在两个目录之间,撤销符号链接关系,相当于撤销开机启动。

配置文件的后缀名,就是该 Unit 的种类,比如 sshd.socket 。如果省略,Systemd 默认后缀名为 .service ,所以 sshd 会被理解成 sshd.service 。

systemctl list-unit-files 命令用于列出所有配置文件。

这个命令会输出一个列表。

这个列表显示每个配置文件的状态,一共有四种。

注意,从配置文件的状态无法看出,该 Unit 是否正在运行。这必须执行前面提到的 systemctl status 命令。

一旦修改配置文件,就要让 SystemD 重新加载配置文件,然后重新启动,否则修改不会生效。

配置文件就是普通的文本文件,可以用文本编辑器打开。

systemctl cat 命令可以查看配置文件的内容。

从上面的输出可以看到,配置文件分成几个区块。每个区块的第一行,是用方括号表示的区别名,比如 [Unit] 。注意,配置文件的区块名和字段名,都是大小写敏感的。

每个区块内部是一些等号连接的键值对。

注意,键值对的等号两侧不能有空格。

[Unit] 区块通常是配置文件的第一个区块,用来定义 Unit 的元数据,以及配置与其他 Unit 的关系。它的主要字段如下。

[Install] 通常是配置文件的最后一个区块,用来定义如何启动,以及是否开机启动。它的主要字段如下。

[Service] 区块用来 Service 的配置,只有 Service 类型的 Unit 才有这个区块。它的主要字段如下。

Unit 配置文件的完整字段清单,请参考 官方文档 。

启动计算机的时候,需要启动大量的 Unit。如果每一次启动,都要一一写明本次启动需要哪些 Unit,显然非常不方便。Systemd 的解决方案就是 Target。

简单说,Target 就是一个 Unit 组,包含许多相关的 Unit 。启动某个 Target 的时候,Systemd 就会启动里面所有的 Unit。从这个意义上说,Target 这个概念类似于”状态点”,启动某个 Target 就好比启动到某种状态。

传统的 init 启动模式里面,有 RunLevel 的概念,跟 Target 的作用很类似。不同的是,RunLevel 是互斥的,不可能多个 RunLevel 同时启动,但是多个 Target 可以同时启动。

Target 与 传统 RunLevel 的对应关系如下。

它与 init 进程的主要差别如下。

(1)默认的 RunLevel (在 /etc/inittab 文件设置)现在被默认的 Target 取代,位置是 /etc/systemd/system/default.target ,通常符号链接到 graphical.target (图形界面)或者 multi-user.target (多用户命令行)。

(2)启动脚本的位置 ,以前是 /etc/init.d 目录,符号链接到不同的 RunLevel 目录 (比如 /etc/rc3.d 、 /etc/rc5.d 等),现在则存放在 /lib/systemd/system 和 /etc/systemd/system 目录。

(3)配置文件的位置 ,以前 init 进程的配置文件是 /etc/inittab ,各种服务的配置文件存放在 /etc/sysconfig 目录。现在的配置文件主要存放在 /lib/systemd 目录,在 /etc/systemd 目录里面的修改可以覆盖原始设置。

Systemd 统一管理所有 Unit 的启动日志。带来的好处就是,可以只用 journalctl 一个命令,查看所有日志(内核日志和应用日志)。日志的配置文件是 /etc/systemd/journald.conf 。

journalctl 功能强大,用法非常多。

D. Apache 服务

一、介绍 二、Linux下apache的安装 三、apache的基础信息 四、配置apache服务 五、apache的虚拟主机 六、Apache httpd.conf配置详解 七、特殊使用场景        1. Linux Apache配置多个站点同时运行Apache HTTP  Server (简称Apache)是 Apache软件基金会 的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。 [2]  Apache  HTTP服务器 是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的 Web服务器 软件。 它可以运行在几乎所有广泛使用的 计算机平台 上。 Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的 Web服务器 软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是 自由软件 ,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做 代理服务器 来使用。 yum install httpd -y      #安装apache软件包 systemctl start httpd      #打开服务 systemctl enable httpd    #开机自启动 systemctl stop firewalld    #关闭防火墙 systemctl disable firewalld  #开机不启动防火墙 systemctl restart httpd#重新开启 firewalld-cmd –permanent –add-service=http  #在防火墙策略中添加http和https服务 firewalld-cmd –permanent –add-service=https firewall-cmd –permanent –add-port=8080/tcp firewalld-cmd –reload  #重新加载策略 firewall-cmd –list-all  #查看防火墙: apache还有一个使用手册:需要安装httpd-manual包 yum install httpd-manual -y 各个主要子目录的用途如下: bin:存放httpd服务的各种执行程序文件。包括主程序httpd、服务控制工具apachectl等。 cgi-bin:存放各种CGI程序文件。 logs:存放httpd服务的日志文件。 conf:存放httpd服务的各种配置文件,包括主配置文件httpd.conf、增强配置子目录extra等。 htdocs:存放网页文档,包括默认首页文件index.html等。 mole:存放httpd服务的各种模块文件。 1.在默认发布目录发布内容 主配置目录: /etc/httpd/conf 主配置文件:/etc/httpd/conf/httpd.conf 子配置目录:/etc/httpd/conf.d 子配置文件:/etc/httpd/conf.d/*.conf 默认发布目录:/var/www/html 默认发布文件:index.html 默认端口:80 默认安全上下文:httpd_sys_content_t 程序开启默认用户:apache apache日志:/etc/httpd/logs/* netstat -antlupe | grep httpd   ##查看当前http服务的网络接口 2.修改默认端口 vim /etc/httpd/conf/httpd.conf Listen 8080                      ##修改默认端口为8080 3.修改默认发布文件: 默认发布文件就是访问apache时没有指定文件名称时默认访问的文件。 这个文件可以指定多个,有访问顺序 vim /etc/httpd/conf/httpd.conf DirectoryIndex  westos.html  index.html ##当index.html不存在时,访问westos.html                                        ##如果将westos.html放到index.html前面, 在两个文件都存在的情况下会默认访问westos.html里面的内容 ##如果没编辑/etc/httpd/conf/httpd.conf(没添加加westos.html), 要想看到westos的页面,则在浏览器中输入:http端IP/westos.html 即可 # systemctl restart httpd.service  修改完配置文件记得一定要重启服务生效 4.修改默认发布目录 vim /etc/httpd/conf/httpd.conf DocumentRoot "/www/html" <Directory "/www/html">         Require all granted </Directory> index.html:apache默认发布文件 news.conf 或 music.conf:apache子配置文件 恢复默认发布目录,并创建默认文件index.html cd /etc/httpd/conf.d/                      #进入apache服务子配置目录 vim adefault.conf                          #建立默认发布目录配置文件 <VirtualHost _default_:80>       DocumentRoot /var/www/html            #发布文件路径       CustomLog "logs/adefault.log" combined  #日志路径,这里写相对路径,内容在/etc/httpd/logs/*.log里面 </VirtualHost> https://www.cnblogs.com/mzhaox/p/11216635.html 1. Linux Apache配置多个站点同时运行       这样一种场景;我们有一台服务器;但是想挂多个网站;那么Apache下配置虚拟主机可以满足这个需求; 1). 比较简单的是基于主机名的配置步骤如下: step0:示例环境:       ip:115.28.17.191       域名:junyao.com                 thinkbjy.com       目录:  /var/www/html/junyao                    /var/www/html/thinkbjy step1:修改hosts文件     [[email protected] /]# ifconfig;              //查看ip并记录自己的ip地址        [[email protected] /]# vim /etc/hosts;                    //修改hosts文件 添加如下两行内容         115.28.17.191 junyao.com         115.28.17.191 anlianma.com step2:修改httpd.conf文件     [[email protected] /]# vim /etc/httpd/conf/httpd.conf;     //修改httpd.conf文件 删除990行 NameVirtualHost *:80前的#注释    step3:修改httpd-vhosts.conf文件     [[email protected]Z28qa8jt4uZ /]# vim /etc/httpd/conf.d/virtual.conf;            //设置httpd-vhosts.conf如下 如没有则新建          <VirtualHost *:80>                 DocumentRoot /var/www/html/junyao                 ServerName junyao.com         </VirtualHost>         <VirtualHost *:80>                 DocumentRoot /var/www/html/anlianma                 ServerName anlianma.com         </VirtualHost>     虚拟主机配置到此结束;在对应的目录下新建html页面测试即可;2). 另一种方式是           实际应用中,一个使用自己独有的配置文件,另一个使用默认Apache配置           Apache默认配置不表述。下面仅仅介绍独立配置文件,以zabbix为例

E. Linux系统日志怎么查看

1. 前言

在Linux日常管理中,我们肯定有查看某些服务的日志需求,或者是系统本身的日志。本文主要介绍如何查看Linux的系统日志,包括文件的路径、工具的使用等等。会看Linux日志是非常重要的,不仅在日常操作中可以迅速排错,也可以快速的定位。

2. 如何查看Linux日志

Linux日志文件的路径一般位于,/var/log/,比如ngix的日志路径为/var/log/nginx/,如果要查看某服务的日志,还可以使用systemctl status xxx,比如查看ssh服务的壮态,systemctl status sshd

查看Linux某服务的日志

Liunx的配置文件在/etc/rsyslog.d里,可以看到如下信息

在linux系统当中,有三个主要的日志子系统:

1、连接时间日志:由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,

login等程序会更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。

2、进程统计:由系统内核执行,当一个进程终止时,为每个进程往进程统计文件中写一个记录。进程统计的目的是为系统中的基本服务提供命令使用统计

3、错误日志:由rsyslogd守护程序执行,各种系统守护进程、用户程序和内核通过rsyslogd守护程序向文件/var/log/messages报告值得注意的时间。另外有许多linux程序创建日志,像HTTP和FTP这样提供的服务器也保持详细的日志。

4、其他日志……

查看Linux日志默认路径

可以看到在/var/log目录下存在很多的日志文件,接下来就对里面的一些常用日志文件进行分析

主要日志文件介绍:

内核及公共消息日志:/var/log/messages

计划任务日志:/var/log/cron

系统引导日志:/var/log/dmesg

邮件系统日志:/var/log/maillog

用户登录日志:/var/log/lastlog

/var/log/boot.log(记录系统在引导过程中发生的时间)

/var/log/secure (用户验证相关的安全性事件)

/var/log/wtmp(当前登录用户详细信息)

/var/log/btmp(记录失败的的记录)

/var/run/utmp(用户登录、注销及系统开、关等事件)

日志文件详细介绍:

/var/log/secure

Linux系统安全日志,记录用户和工作组的情况、用户登陆认证情况

例子:我创建了一个zcwyou的用户,然后改变了该用户的密码,于是该信息就被记录到该日志下

Linux系统安全日志默认路径

该日志就详细的记录了我操作的过程。

内核及公共信息日志,是许多进程日志文件的汇总,从该文件中可以看出系统任何变化

查看Linux内核及公共信息日志

系统引导日志

该日志使用dmesg命令快速查看最后一次系统引导的引导日志

查看Linux系统系统引导日志

最近的用户登录事件,一般记录最后一次的登录事件

该日志不能用诸如cat、tail等查看,因为该日志里面是二进制文件,可以用lastlog命令查看,它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示 Never logged。

该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。该日志为二进制文件,不能用诸如tail/cat/等命令,使用last命令查看。

记录邮件的收发

此文件是记录错误登录的日志,可以记录有人使用暴力破解ssh服务的日志。该文件用lastb打开

该日志记录当前用户登录的情况,不会永久保存记录。可以用who/w命令来查看

3. 常用的日志分析工具与使用方法

3.1 统计一个文本中包含字符个数

3.2 查看当天访问排行前10的url

3.3 查看apache的进程数

3.4 访问量前10的IP

cut部分表示取第1列即IP列,取第4列则为URL的访问量

3.5 查看最耗时的页面

按第2列响应时间逆序排序

3.6 使用grep查找文件中指定字符出现的次数

-o 指示grep显示所有匹配的地方,并且每一个匹配单独一行输出。这样只要统计输出的行数就可以知道这个字符出现的次数了。

4. 总结

查看Linux日志需求了解和熟悉使用一些常用的工具方能提升我们的查找和定位效率。比如使用 Grep 搜索,使用Tail命令,使用Cut,使用AWK 和 Grok 解析日志和使用 Rsyslog 和 AWK 过滤等等,只要能掌握这些工具。我们才能高效地处理和定位故障点。

Linux系统日志怎么查看

F. 如何修改MySQL日志文件位置

都知道MySQL日志文件一般在:/var/log/mysqld.log,下面就教您如何修改MySQL日志文件位置的方法。方法/步骤首先打开CMD,连接上数据库然后,我们会发现MySQL日志位是指定的,在/etc/my.cnf中怎么也改不了chkconfig –list发现是chkconfig on指定的,天是vim /etc/init.d/mysqld得知这里的已经配置更改到这里就可以了~

G. mariadb 二进制日志在哪

这是一个创建数据库重复版本的过程。复制过程不仅仅是复制一个数据库,同时也包括从主节点到一个从节点的更改同步。但这并不意味着从数据库就是和主数据库完全相同的副本,因为复制可以配置为只复制表结构、行或者列,这叫做局部复制。复制保证了特定的配置对象在不同的数据库之间保持一致。Mariadb 复制概念备份 :复制可以用来进行数据库备份。例如,当你做了主->从复制。如果主节点数据丢失(比如硬盘损坏),你可以从从节点中恢复你的数据库。扩展 :你可以使用主->从复制作为扩展解决方案。例如,如果你有一些大的数据库以及SQL查询,使用复制你可以将这些查询分离到每个复制节点。写入操作的SQL应该只在主节点进行,而只读查询可以在从节点上进行。分发解决方案 :你可以用复制来进行分发。例如,你可以将不同的销售数据分发到不同的数据库。故障解决方案 : 假如你建立有主节点->从节点1->从节点2->从节点3的复制结构。你可以为主节点写脚本监控,如果主节点出故障了,脚本可以快速的将从节点1切换为新的主节点,这样复制结构变成了主节点->从节点1->从节点2,你的应用可以继续工作而不会停机。复制的简单图解示范mysql 复制原理开始之前,你应该知道什么是二进制日志文件以及 Ibdata1。二进制日志文件中包括关于数据库,数据和结构的所有更改的记录,以及每条语句的执行了多长时间。二进制日志文件包括一系列日志文件和一个索引文件。这意味着主要的SQL语句,例如CREATE, ALTER, INSERT, UPDATE 和 DELETE 会放到这个日志文件中;而例如SELECT这样的语句就不会被记录,它们可以被记录到普通的query.log文件中。而 Ibdata1 简单的说据是一个包括所有表和所有数据库信息的文件。主服务器配置首先升级服务器sudo yum install update -y && sudo yum install upgrade -y我们工作在centos7 服务器上sudo cat /etc/redhat-releaseCentOS Linux release 7.0.1406 (Core)安装 MariaDBsudo yum install mariadb-server -y启动 MariaDB 并启用随服务器启动sudo systemctl start mariadb.servicesudo systemctl enable mariadb.service输出如下:ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service'检查 MariaDB 状态sudo service mariadb status或者使用sudo systemctl is-active mariadb.service输出如下:Redirecting to /bin/systemctl status mariadb.servicemariadb.service – MariaDB database serverLoaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled)设置 MariaDB 密码mysql -u rootmysql> use mysql;mysql> update user set password=PASSWORD("SOME_ROOT_PASSWORD") where User='root';mysql> flush privileges;mysql> exit这里 SOME_ROOT_PASSWORD 是你的 root 密码。 例如我用"q"作为密码,然后尝试登录:sudo mysql -u root -pSOME_ROOT_PASSWORD输出如下:Welcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 5Server version: 5.5.41-MariaDB MariaDB ServerCopyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.输入 'help;' 或 '\h' 查看帮助信息。 输入 '\c' 清空当前输入语句。让我们创建包括一些数据的表的数据库创建数据库/模式sudo mysql -u root -pSOME_ROOT_PASSWORDmysql> create database test_repl;其中:test_repl – 将要被复制的模式的名字输出:如下Query OK, 1 row affected (0.00 sec)创建 Persons 表mysql> use test_repl;CREATE TABLE Persons (PersonID int,LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(255));输出如下:mysql> MariaDB [test_repl]> CREATE TABLE Persons (-> PersonID int,-> LastName varchar(255),-> FirstName varchar(255),-> Address varchar(255),-> City varchar(255)-> );Query OK, 0 rows affected (0.01 sec)插入一些数据mysql> INSERT INTO Persons VALUES (1, "LastName1", "FirstName1", "Address1", "City1");mysql> INSERT INTO Persons VALUES (2, "LastName2", "FirstName2", "Address2", "City2");mysql> INSERT INTO Persons VALUES (3, "LastName3", "FirstName3", "Address3", "City3");mysql> INSERT INTO Persons VALUES (4, "LastName4", "FirstName4", "Address4", "City4");mysql> INSERT INTO Persons VALUES (5, "LastName5", "FirstName5", "Address5", "City5");输出如下:Query OK, 5 row affected (0.00 sec)检查数据mysql> select * from Persons;输出如下:+———-+———–+————+———-+——-+ PersonID LastName FirstName Address City +———-+———–+————+———-+——-+ 1 LastName1 FirstName1 Address1 City1 1 LastName1 FirstName1 Address1 City1 2 LastName2 FirstName2 Address2 City2 3 LastName3 FirstName3 Address3 City3 4 LastName4 FirstName4 Address4 City4 5 LastName5 FirstName5 Address5 City5 +———-+———–+————+———-+——-+

H. 如何在Debian上使用systemd管理系统

现在就让我们来看看 systemd 是怎么改变你管理系统的习惯的。在使用 systemd 之前,你得先把 sysvinit 保存起来,以便在 systemd 出错的时候还能用 sysvinit 启动系统。这种方法只有在没安装 systemd-sysv 的情况下才能生效,具体操作方法如下:1.# cp -av /sbin/init /sbin/init.sysvinit 在紧急情况下,可以把下面的文本:1.init=/sbin/init.sysvinit添加到内核启动参数项那里。systemctl 的基本用法systemctl 的功能是替代“/etc/init.d/foo start/stop”这类命令,另外,其实它还能做其他的事情,这点你可以参考 man 文档。一些基本用法:•systemctl – 列出所有单元(UNIT)以及它们的状态(这里的 UNIT 指的就是系统上的 job 和 service)•systemctl list-units – 列出所有 UNIT•systemctl start [NAME…] – 启动一项或多项 UNIT•systemctl stop [NAME…] – 停止一项或多项 UNIT•systemctl disable [NAME…] – 将 UNIT 设置为开机不启动•systemctl list-unit-files – 列出所有已安装的 UNIT,以及它们的状态•systemctl –failed – 列出开机启动失败的 UNIT•systemctl –type=mount – 列出某种类型的 UNIT,类型包含:service, mount, device, socket, target•systemctl enable debug-shell.service – 将一个 shell 脚本设置为开机启动,用于调试为了更方便处理这些 UNIT,你可以使用 systemd-ui 软件包,你只要输入 systemadm 命令就可以使用这个软件。你同样可以使用 systemctl 实现转换运行级别、重启系统和关闭系统的功能:•systemctl isolate graphical.target – 切换到运行级别5,就是有桌面的运行级别•systemctl isolate multi-user.target – 切换到运行级别3,没有桌面的运行级别•systemctl reboot – 重启系统•systemctl poweroff – 关机所有命令,包括切换到其他运行级别的命令,都可以在普通用户的权限下执行。journalctl 的基本用法systemd 不仅提供了比 sysvinit 更快的启动速度,还让日志系统在更早的时候启动起来,可以记录内核初始化阶段、内存初始化阶段、前期启动步骤以及主要的系统执行过程的日志。所以,以前那种需要通过对显示屏拍照或者暂停系统来调试程序的日子已经一去不复返啦。systemd 的日志文件都被放在 /var/log 目录。如果你想使用它的日志功能,需要执行一些命令,因为 Debian 没有打开日志功能。命令如下:1.# addgroup –system systemd-journal2.# mkdir -p /var/log/journal3.# chown root:systemd-journal /var/log/journal4.# gpasswd -a $user systemd-journal 通过上面的设置,你就可以以普通用户权限使用 journal 软件查看日志。使用 journalctl 查询日志可以获得一些比 syslog 软件更方便的玩法:•journalctl –all – 显示系统上所有日志,以及它的用户•journalctl -f – 监视系统日志的变化(类似 tail -f /var/log/messages 的效果)•journalctl -b – 显示系统启动以后的日志•journalctl -k -b -1 – 显示上一次(-b -1)系统启动前产生的内核日志•journalctl -b -p err – 显示系统启动后产生的“ERROR”日志•journalctl –since=yesterday – 当系统不会经常重启的时候,这条命令能提供比 -b 更短的日志记录•journalctl -u cron.service –since='2014-07-06 07:00' –until='2014-07-06 08:23' – 显示 cron 服务在某个时间段内打印出来的日志•journalctl -p 2 –since=today – 显示优先级别为2以内的日志,包含 emerg、alert、crit三个级别。所有日志级别有: emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), info (6), debug (7)•journalctl > yourlog.log – 将二进制日志文件复制成文本文件并保存到当前目录Journal 和 syslog 可以很好的共存。而另一方面,一旦你习惯了操作 journal,你也可以卸载掉所有 syslog 的软件,比如 rsyslog 或 syslog-ng。如果想要得到更详细的日志信息,你可以在内核启动参数上添加“systemd.log_level=debug”,然后运行下面的命令:1.# journalctl -alb 你也可以编辑 /etc/systemd/system.conf 文件来修改日志级别。利用 systemd 分析系统启动过程systemd 可以让你能更有效地分析和优化你的系统启动过程:•systemd-analyze – 显示本次启动系统过程中用户态和内核态所花的时间•systemd-analyze blame – 显示每个启动项所花费的时间明细•systemd-analyze critical-chain – 按时间顺序打印 UNIT 树•systemd-analyze dot | dot -Tsvg > systemd.svg – 为开机启动过程生成向量图(需要安装 graphviz 软件包)•systemd-analyze plot > bootplot.svg – 产生开机启动过程的时间图表systemd 虽然是个年轻的项目,但已有大量文档。首先要介绍给你的是Lennart Poettering 的 0pointer 系列。这个系列非常详细,非常有技术含量。另外一个是免费桌面信息文档,它包含了最详细的关于 systemd 的链接:发行版特性文件、bug 跟踪系统和说明文档。你可以使用下面的命令来查询 systemd 都提供了哪些文档:1.# man systemd.index 不同发行版之间的 systemd 提供的命令基本一样,最大的不同之处就是打包方式。

I. 如何在CentOS 7上安装Elasticsearch,Logstash和Kibana

您的ELK服务器将需要的CPU,RAM和存储量取决于您要收集的日志的卷。在本教程中,我们将使用具有以下规格的VPS用于我们的ELK服务器:OS: CentOS 7RAM: 4GBCPU: 2注:根据自己的服务器资源分配各个节点的资源安装 java 8Elasticsearch和Logstash需要Java,所以我们现在就安装它。我们将安装最新版本的Oracle Java 8,因为这是Elasticsearch推荐的版本。注:建议本地下载完最新版的JDK,然后上传到服务器的/usr/local/src目录# JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads123123然后使用此yum命令安装RPM(如果您下载了不同的版本,请在此处替换文件名):yum -y localinstall jdk-8u111-linux-x64.rpm# orrpm -ivh jdk-8u111-linux-x64.rpm123123现在Java应该安装在/usr/java/jdk1.8.0_111/jre/bin/java,并从/usr/bin/java 链接。安装 ElasticsearchElasticsearch可以通过添加Elastic的软件包仓库与软件包管理器一起安装。运行以下命令将Elasticsearch公共GPG密钥导入rpm:# https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.htmlrpm –import https://artifacts.elastic.co/GPG-KEY-elasticsearch123123在基于RedHat的发行版的/etc/yum.repos.d/目录中创建一个名为elasticsearch.repo的文件,其中包括:echo '[elasticsearch-5.x]name=Elasticsearch repository for 5.x packagesbaseurl=https://artifacts.elastic.co/packages/5.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md' | sudo tee /etc/yum.repos.d/elasticsearch.repo123456789123456789Elasticsearch 源创建完成之后,通过makecache查看源是否可用,然后通过yum安装Elasticsearch :yum makecacheyum install elasticsearch -y1212要将Elasticsearch配置为在系统引导时自动启动,请运行以下命令:sudo /bin/systemctl daemon-reloadsudo /bin/systemctl enable elasticsearch.service1212Elasticsearch可以按如下方式启动和停止:sudo systemctl start elasticsearch.servicesudo systemctl stop elasticsearch.service1212这些命令不会提供有关Elasticsearch是否已成功启动的反馈。相反,此信息将写入位于/ var / log / elasticsearch /中的日志文件中。默认情况下,Elasticsearch服务不会记录systemd日志中的信息。要启用journalctl日志记录,必须从elasticsearch中的ExecStart命令行中删除–quiet选项。服务文件。# 注释24行的 –quiet \vim /etc/systemd/system/multi-user.target.wants/elasticsearch.service1212当启用systemd日志记录时,使用journalctl命令可以获得日志记录信息:使用tail查看journal:sudo journalctl -f11要列出elasticsearch服务的日记帐分录:sudo journalctl –unit elasticsearch11要从给定时间开始列出elasticsearch服务的日记帐分录:sudo journalctl –unit elasticsearch –since "2017-1-4 10:17:16"# since 表示指定时间之前的记录123123使用man journalctl 查看journalctl 更多使用方法检查Elasticsearch是否正在运行您可以通过向localhost上的端口9200发送HTTP请求来测试Elasticsearch节点是否正在运行:curl -XGET 'localhost:9200/?pretty'1212我们能得到下面这样的回显:{"name" : "De-LRNO","cluster_name" : "elasticsearch","cluster_uuid" : "DeJzplWhQQK5uGitXr8jjA","version" : {"number" : "5.1.1","build_hash" : "5395e21","build_date" : "2016-12-06T12:36:15.409Z","build_snapshot" : false,"lucene_version" : "6.3.0"},"tagline" : "You Know, for Search"}配置 ElasticsearchElasticsearch 从默认的/etc/elasticsearch/elasticsearch.yml加载配置文件, 配置文件的格式考: https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html[[email protected] ~]# egrep -v "^#|^$" /etc/elasticsearch/elasticsearch.yml [[email protected] ~]# egrep -v "^#|^$" /etc/elasticsearch/elasticsearch.ymlnode.name: node-1path.data: /var/lib/elasticsearchpath.logs: /var/log/elasticsearchnetwork.host: 10.1.1.53 # 默认localhost,自定义为iphttp.port: 920012345671234567RPM还具有系统配置文件(/etc/sysconfig/elasticsearch),允许您设置以下参数:[[email protected] elasticsearch]# egrep -v "^#|^$" /etc/sysconfig/elasticsearch ES_HOME=/usr/share/elasticsearchJAVA_HOME=/usr/java/jdk1.8.0_111CONF_DIR=/etc/elasticsearchDATA_DIR=/var/lib/elasticsearchLOG_DIR=/var/log/elasticsearchPID_DIR=/var/run/elasticsearch12345671234567日志配置Elasticsearch使用Log4j 2进行日志记录。 Log4j 2可以使用log4j2配置。属性文件。 Elasticsearch公开单个属性$ {sys:es。日志},可以在配置文件中引用以确定日志文件的位置;这将在运行时解析为Elasticsearch日志文件的前缀。例如,如果您的日志目录是/var/log/elasticsearch并且您的集群名为proction,那么$ {sys:es。 logs}将解析为/var/log/elasticsearch/proction。默认日志配置存在:/etc/elasticsearch/log4j2.properties安装 KibanaKibana的RPM可以从ELK官网或从RPM存储库下载。它可用于在任何基于RPM的系统(如OpenSuSE,SLES,Centos,Red Hat和Oracle Enterprise)上安装Kibana。导入Elastic PGP Key我们使用弹性签名密钥(PGP密钥D88E42B4,可从https://pgp.mit.e)签名所有的包,指纹:rpm –import https://artifacts.elastic.co/GPG-KEY-elasticsearch11创建kibana源echo '[kibana-5.x]name=Kibana repository for 5.x packagesbaseurl=https://artifacts.elastic.co/packages/5.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md' | sudo tee /etc/yum.repos.d/kibana.repo123456789123456789kibana源创建成功之后,makecache后使用yum安装kibana:yum makecache && yum install kibana -y11使用systemd运行Kibana要将Kibana配置为在系统引导时自动启动,请运行以下命令:sudo /bin/systemctl daemon-reloadsudo /bin/systemctl enable kibana.service1212Kibana可以如下启动和停止sudo systemctl start kibana.servicesudo systemctl stop kibana.service1212配置KibanaKibana默认从/etc/kibana/kibana.yml文件加载其配置。 参考:https://www.elastic.co/guide/en/kibana/current/settings.html注意:本实验教程把localhost都改成服务器IP,如果不更改localhost,需要设置反向代理才能访问到kibana。在同一服务器上安装一个Nginx反向代理,以允许外部访问。安装nginx配置Kibana在localhost上监听,必须设置一个反向代理,允许外部访问它。本文使用Nginx来实现发向代理。创建nginx官方源来安装nginx# https://www.nginx.com/resources/wiki/start/topics/tutorials/install/echo '[nginx]name=nginx repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=0enabled=1' | sudo tee /etc/yum.repos.d/nginx.repo1234567812345678使用yum安装nginx和httpd-toolsyum install nginx httpd-tools -y11使用htpasswd创建一个名为“kibanaadmin”的管理员用户(可以使用其他名称),该用户可以访问Kibana Web界面:[[email protected] ~]# htpasswd -c /etc/nginx/htpasswd.users kibanaadminNew password: # 自定义Re-type new password: Adding password for user kibanaadmin12341234使用vim配置nginx配置文件[[email protected] ~]# egrep -v "#|^$" /etc/nginx/conf.d/kibana.conf server {listen 80;server_name kibana.aniu.co;access_log /var/log/nginx/kibana.aniu.co.access.log main;error_log /var/log/nginx/kibana.aniu.co.access.log;auth_basic "Restricted Access";auth_basic_user_file /etc/nginx/htpasswd.users;location / {proxy_pass http://localhost:5601;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection 'upgrade';proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;}}


赞 (0)