当前位置:   article > 正文

ELK(Elasticsearch+Logstash+Kibana )_kibana二次开发实例

kibana二次开发实例

1、ELK简介


1.1、ELK是什么


    Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。


    Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。


    Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
 

1.2、ELK应用


    电商体系架构
 

    问题
1、API不一样,我们如何去整合?--》dubbo    定义统一的api规范
2、各子系统之间会产生操作痕迹(用户行为轨迹)---》日志
3、各个子系统都会生成各自的日志---日志整合--》logstash
4、AOP埋点,异步日志输出

    具体场景1
通过第三方进行移动话费充值

日志输出:每次调用都会打印异步日志

 

分布式负载均衡:

很多太机器都可以充值(动态的去选择一台目前比较空闲的机器去执行这个任务)

 

问题:

A:兄弟,帮忙查一下今天手机号码138001380000充值日志记录(是否成功)

B:稍等

5分钟后

 

A:怎么样了

B:稍等,还剩下3台机器没查完

 

结论:如果能把所有的日志整理在一起,就不会出现一台一台去查的问题

 

解决方案:

  1. 可不可以把日志放在数据库中。

数据量太大,且日志没有规范日志格式,数据库方案不太建议,且压力过大

  1. 采用大数据日志处理方案

成本太高,且分布式环境每个系统的日志规则不一样。

    具体业务实践

日志收集:Logstash
日志存储:ElasticSearch
日志展示:Kibana
针对对台服务器日志不统一的问题,提供多种检索规则,方便可视化展示

    案例总结

分布式带来的问题:多节点、负载均衡、日志分散、运维成本高(需要人为跟踪)


1.3、集中式日志管理系统


当前主流的一些集中日志管理系统


1、简单的:Rsyslog


2、商业化:Splunk


3、开源的:Scribe(FaceBook),Chukwa(Apache)


4、ELK最广泛的(Elastic Stack)(java语言编写)


www.elastic.co/cn


1.4、ELK

ElasticSearch

Java

实时的分布式搜索和分析引擎,他可以用于全文检索,结构化搜索以及分析,lucene。Solr

Logstash

JRuby

具有实时渠道能力的数据收集引擎,包含输入、过滤、输出模块,一般在过滤模块中做日志格式化的解析工作

Kibana

JavaScript

为ElasticSerach提供分析平台和可视化的Web平台。他可以ElasticSerach的索引中查找,呼唤数据,并生成各种维度的表图

1.5、日志


日志:记录程序的运行轨迹---
级别:ERROR、INFO、DEBUG、WARN
目的:方便定位和查找信息,记录除去业务外的附加的信息,链路

Filebeat简介
当您要面对成百上千、甚至成千上万的服务器、虚拟机和容器生成的日志时,请告别 SSH 吧。Filebeat 将为您提供一种轻量型方法,用于转发和汇总日志与文件,让简单的事情不再繁杂。
当将数据发送到 Logstash 或 Elasticsearch 时,Filebeat 使用背压敏感协议,以考虑更多的数据量。如果 Logstash 正在忙于处理数据,则可以让 Filebeat 知道减慢读取速度。一旦拥堵得到解决,Filebeat 就会恢复到原来的步伐并继续运行。
无论在任何环境中,随时都潜伏着应用程序中断的风险。Filebeat 能够读取并转发日志行,如果出现中断,还会在一切恢复正常后,从中断前停止的位置继续开始。
 

2、准备工作

2.1、安装Centos7

建议内存2G以上

2.2、基本配置

 设置IP地址

vi /etc/sysconfig/network-scripts/ifcfg-eno33

service network restart

    添加用户并授权

  1. [root@localhost ~]# adduser elk1
  2. [root@localhost ~]# passwd elk1
  3. [root@localhost ~]# whereis sudoers
  4. [root@localhost ~]# ls -l /etc/sudoers
  5. [root@localhost ~]# chmod -v u+w /etc/sudoers
  6. [root@localhost ~]# vi /etc/sudoers
  7. ## Allow root to run any commands anywher
  8. root ALL=(ALL) ALL
  9. linuxidc ALL=(ALL) ALL #这个是新增的用户
  10. [root@localhost ~]# chmod -v u-w /etc/sudoers
  11. [root@localhost ~]# su elk1

3、ElasticSerach


3.1、Java环境安装
 

    解压安装包

[root@localhost jdk1.8]# tar -zxvf jdk-8u171-linux-x64.tar.gz

    设置Java环境变量

[root@localhost jdk1.8.0_171]# vi /etc/profile

在文件最后添加

  1. export JAVA_HOME=/home/elk1/jdk1.8/jdk1.8.0_171
  2. export JRE_HOME=$JAVA_HOME/jre
  3. export CLASSPATH=.:$JAVA_HOME/LIB:$JRE_HOME/LIB:$CLASSPATH
  4. export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
  1. [root@localhost jdk1.8.0_171]# source /etc/profile
  2. [root@localhost jdk1.8.0_171]# java -version
  3. java version "1.8.0_171"
  4. Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
  5. Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

3.2、ElasticSerach单机安装

  1. [root@localhost elasticserach]# tar -zxvf elasticsearch-6.3.1.tar.gz
  2. [root@localhost elasticserach]# cd elasticsearch-6.3.1/bin
  3. [root@localhost bin]# ./elasticsearch

  1. [root@localhost bin]# su elk1
  2. [elk1@localhost bin]$ ./elasticsearch

  1. [root@localhost bin]# chown -R elk1:elk1 /home/elk1/elasticsearch
  2. [elk1@localhost bin]$ ./elasticsearch
  3. [elk1@localhost config]$ vi jvm.options

[elk1@localhost bin]$ ./elasticsearch

[root@localhost jdk1.8.0_171]# curl 127.0.0.1:9200

  1. #后台启动
  2. [elk1@localhost bin]$ ./elasticsearch -d
  3. #关闭程序
  4. [elk1@localhost bin]$ ps -ef|grep elastic

  1. [elk1@localhost bin]$ kill 10097
  2. #设置浏览器访问
  3. [root@localhost bin]systemctl stop firewalld
  4. [root@localhost bin]vi config/elasticsearch.yml

安装问题:

[1]    [2]解决方案

[root@localhost bin]# vi /etc/security/limits.conf

[3]    解决方案

  1. [root@localhost bin]# vi /etc/sysctl.conf
  2. [root@localhost bin]# sysctl -p

3.3、ElasticSerach集群安装

 修改配置文件elasticserach.yml

vim /elasticsearch.yml
  1. cluster.name: aubin-cluster#必须相同
  2. # 集群名称(不能重复)
  3. node.name: els1(必须不同)
  4. # 节点名称,仅仅是描述名称,用于在日志中区分(自定义)
  5. #指定了该节点可能成为 master 节点,还可以是数据节点
  6. node.master: true
  7. node.data: true
  8. path.data: /var/lib/elasticsearch
  9. # 数据的默认存放路径(自定义)
  10. path.logs: /var/log/elasticsearch
  11. # 日志的默认存放路径
  12. network.host: 192.168.0.1
  13. # 当前节点的IP地址
  14. http.port: 9200
  15. # 对外提供服务的端口
  16. transport.tcp.port: 9300
  17. #9300为集群服务的端口
  18. discovery.zen.ping.unicast.hosts: ["172.18.68.11", "172.18.68.12","172.18.68.13"]
  19. # 集群个节点IP地址,也可以使用域名,需要各节点能够解析
  20. discovery.zen.minimum_master_nodes: 2
  21. # 为了避免脑裂,集群节点数最少为 半数+1

注意:清空data和logs数据

192.168.14.12:9200/_cat/nodes?v

3.4、安装head插件


    下载head插件

wget https://github.com/mobz/elasticsearch-head/archive/elasticsearch-head-master.zip

也可以用git下载,前提yum install git

unzip elasticsearch-head-master.zip

    安装node.js

wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz
tar -zxvf     node-v9.9.0-linux-x64.tar.gz

    添加node.js到环境变量

source /etc/profile

    测试

  1. node -v 
  2. npm -v

    安装grunt(grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作)

进入到elasticsearch-head-master

  1. npm install -g grunt-cli
  2. npm install
  3. (npm install -g cnpm --registry=https://registry.npm.taobao.org)

    修改Elasticsearch配置文件
编辑elasticsearch-6.3.1/config/elasticsearch.yml,加入以下内容:

  1. http.cors.enabled: true
  2. http.cors.allow-origin: "*"

    修改Gruntfile.js(注意’,’)
打开elasticsearch-head-master/Gruntfile.js,找到下面connect属性,新增hostname:’*’:

  1. connect: {
  2.         server: {
  3.             options: {
  4.                 hostname: '*',
  5.                 port: 9100,
  6.                 base: '.',
  7.                 keepalive: true
  8.             }
  9.         }
  10. }   

    启动elasticsearch-head

进入elasticsearch-head目录,执行命令:grunt server

    后台启动elasticsearch-head

nohup grunt server &exit

    关闭head插件

  1. ps -aux|grep head
  2. kill 进程号

3.5、ElasticSerach API

    elasticsearch rest api遵循的格式为:

curl -X<REST Verb> <Node>:<Port>/<Index>/<Type>/<ID>

    检查es版本信息

curl IP:9200

    查看集群是否健康

http://IP:9200/_cat/health?v

    查看节点列表

http://IP:9200/_cat/nodes?v

    列出所有索引及存储大小

http://IP:9200/_cat/indices?v

    创建索引

curl -XPUT 'IP:9200/XX?pretty'

    添加一个类型

  1. curl -XPUT 'IP:9200/XX/external/2?pretty' -d '
  2. {
  3.    "gwyy": "John"
  4. }'

    更新一个类型

  1. curl -XPOST 'IP:9200/XX/external/1/_update?pretty' -d '
  2. {
  3.    "doc": {"name": "Jaf"}
  4. }'

    删除指定索引

curl -XDELETE 'IP:9200/_index?pretty'

3.6、配置详情

    ElasticSearch.yml
ES的相关配置
 

  1. # 集群的名字,以此作为是否同一集群的判断条件
  2. cluster.name: elasticsearch
  3. # 节点名字,以此作为集群中不同节点的区分条件
  4. node.name: node-1
  5. #设置当前节点既可以为主节点也可以为数据节点
  6. node.master: true
  7. node.data: true
  8. # 索引分片个数,默认为5
  9. #index.number_of_shards: 5
  10. # 索引副本个数,默认为1个副本
  11. #index.number_of_replicas: 1
  12. # 数据存储目录(多个路径用逗号分隔)
  13. discovery.zen.ping.unicast.hosts: ["192.168.14.14","192.168.14.15"]
  14. discovery.zen.minimum_master_nodes: 2
  15. #数据目录
  16. path.data: /home/elk1/elasticserach/data
  17. # 日志目录
  18. path.logs: /home/elk1/elasticserach/logs
  19. # 修改一下ES的监听地址,这样别的机器才可以访问
  20. network.host: 192.168.14.13
  21. # 设置节点间交互的tcp端口(集群),默认是9300
  22. transport.tcp.port: 9300
  23. # 监听端口(默认的就好)
  24. http.port: 9200
  25. # 增加新的参数,这样head插件才可以访问es
  26. http.cors.enabled: true
  27. http.cors.allow-origin: "*"

    Jvm.options
JVM的相关配置

    Log4j2.properties
日志相关配置
 

3.7、Elasticserach模式

    分为Development和Production两种模式
    区分方式

  1. 以transport的地址是否绑定在localhost为标准(实际地址)
  2. 即:elasticserach.yml文件中的network.host配置

    模式区别
(1)Development模式下启动时会以warning的方式提示配置检查异常
(2)Production模式下在启动时会以error的方式提示配置检查异常并推出
 

3.8、elasticserach操作

    基本概念
    Document:文档对象
    Index:索引(库)
    Type:索引中的数据类型(表)
    Field:字段,文档的属性(字段)
    Query DSL:查询语法(sql)
    CRUD操作
    创建文档
请求:

  1. POST /newbies/student/1
  2. {
  3. "name":"zhangsan",
  4. "clazz":"0115bigdata",
  5. "description":"we are family"
  6. }

返回:

  1. {
  2.   "_index": "newbies",
  3.   "_type": "student",
  4.   "_id": "1",
  5.   "_version": 1,
  6.   "result": "created",
  7.   "_shards": {
  8.     "total": 2,
  9.     "successful": 2,
  10.     "failed": 0
  11.   },
  12.   "_seq_no": 0,
  13.   "_primary_term": 1
  14. }

    获取文档
请求:

GET newbies/student/1

返回:

  1. {
  2.   "_index": "newbies",
  3.   "_type": "student",
  4.   "_id": "1",
  5.   "_version": 1,
  6.   "found": true,
  7.   "_source": {
  8.     "name": "zhangsan",
  9.     "clazz": "0115bigdata",
  10.     "description": "we are family"
  11.   }
  12. }

    更新文档
请求:

  1. POST /newbies/student/1/_update
  2. {
  3. "doc":{
  4. "description":"hello world"
  5. }
  6. }

返回:

  1. {
  2.   "_index": "newbies",
  3.   "_type": "student",
  4.   "_id": "1",
  5.   "_version": 2,
  6.   "result": "updated",
  7.   "_shards": {
  8.     "total": 2,
  9.     "successful": 2,
  10.     "failed": 0
  11.   },
  12.   "_seq_no": 1,
  13.   "_primary_term": 1
  14. }

    删除文档
请求:

DELETE newbies/student/1

查询结果:

  1. {
  2.   "_index": "newbies",
  3.   "_type": "student",
  4.   "_id": "1",
  5.   "found": false
  6. }

    Elasticserach Query
    Query String

GET /newbies/student/_sea'rch?q=关键字

返回:

  1. {
  2.   "took": 8,
  3.   "timed_out": false,
  4.   "_shards": {
  5.     "total": 5,
  6.     "successful": 5,
  7.     "skipped": 0,
  8.     "failed": 0
  9.   },
  10.   "hits": {
  11.     "total": 1,
  12.     "max_score": 0.2876821,
  13.     "hits": [
  14.       {
  15.         "_index": "newbies",
  16.         "_type": "student",
  17.         "_id": "1",
  18.         "_score": 0.2876821,
  19.         "_source": {
  20.           "name": "zhangsan",
  21.           "clazz": "0115bigdata",
  22.           "description": "we are family"
  23.         }
  24.       }
  25.     ]
  26.   }
  27. }

    Query DSL

  1. GET newbies/student/_search
  2. {
  3.   "query":{
  4.     "term":{
  5.       "name":{
  6.           "value":"zhangsan"
  7.         
  8.       }
  9.     } 
  10.   }
  11. }

4、Logstash

4.1、安装logstash

  1. [root@localhost logstash]# tar -zxvf logstash-6.3.1.tar.gz
  2. [root@localhost logstash-6.3.1]# cd config
  3. [root@localhost config]# vi log4j_to_es.conf

  1. input {
  2. file {
  3. path=>[""]
  4. type=>""
  5. start_position=>"beginning"
  6. }
  7. }
  8. output {
  9. stdout {
  10. codec=>rubydebug
  11. }
  12. }
[root@localhost logstash-6.3.1]# ./bin/logstash -f config/log4j_to_es.conf

4.2、输入、输出、过滤

    输入

input{file{path=>/tomcat/logs/abc.log”}}

    输出

output{stdout{codec=>rubydebug}} 

    过滤插件
    Grok
1、基于正则表达式提供了丰富可重用的模式(pattern)
2、基于此可以将非结构化数据作结构化处理
    Date
将字符串类型的时间字段转换为时间戳类型,方便后续数据处理
    Mutate
进行增加、修改、删除、替换等字段相关处理
 

4.3、logstash格式化nginx日志内容

    创建nginx_logstash.conf文件

  1. input {
  2. stdin { }
  3. }
  4. filter {
  5. grok {
  6. match => {
  7. "message" => '%{IPORHOST:remote_ip} - %{DATA:user_name} \[%{HTTPDATE:time}\] "%{WORD:request_action} %{DATA:request} HTTP/%{NUMBER:http_version}" %{NUMBER:response} %{NUMBER:bytes} "%{DATA:referrer}" "%{DATA:agent}"'
  8. }
  9. }
  10. date {
  11. match => [ "time", "dd/MMM/YYYY:HH:mm:ss Z" ]
  12. locale => en
  13. }
  14. geoip {
  15. source => "remote_ip"
  16. target => "geoip"
  17. }
  18. useragent {
  19. source => "agent"
  20. target => "user_agent"
  21. }
  22. }
  23. output {
  24. stdout {
  25. codec => rubydebug
  26. }
  27. }

    Logstash启动解析nginx文件
head -n 2 /home/elk1/nginx_logs|./logstash -f ../config/nginx_logstash.conf
    结果
 

  1. {
  2. "user_name" => "-",
  3. "referrer" => "-",
  4. "@timestamp" => 2015-05-17T08:05:32.000Z,
  5. "request" => "/downloads/product_1",
  6. "time" => "17/May/2015:08:05:32 +0000",
  7. "geoip" => {
  8. "country_code3" => "NL",
  9. "longitude" => 4.8995,
  10. "continent_code" => "EU",
  11. "latitude" => 52.3824,
  12. "timezone" => "Europe/Amsterdam",
  13. "country_code2" => "NL",
  14. "ip" => "93.180.71.3",
  15. "country_name" => "Netherlands",
  16. "location" => {
  17. "lat" => 52.3824,
  18. "lon" => 4.8995
  19. }
  20. },
  21. "@version" => "1",
  22. "http_version" => "1.1",
  23. "remote_ip" => "93.180.71.3",
  24. "message" => "93.180.71.3 - - [17/May/2015:08:05:32 +0000] \"GET /downloads/product_1 HTTP/1.1\" 304 0 \"-\" \"Debian APT-HTTP/1.3 (0.8.16~exp12ubuntu10.21)\"",
  25. "bytes" => "0",
  26. "user_agent" => {
  27. "minor" => "3",
  28. "os" => "Debian",
  29. "name" => "Debian APT-HTTP",
  30. "os_name" => "Debian",
  31. "build" => "",
  32. "major" => "1",
  33. "device" => "Other"
  34. },
  35. "agent" => "Debian APT-HTTP/1.3 (0.8.16~exp12ubuntu10.21)",
  36. "host" => "localhost.localdomain",
  37. "response" => "304",
  38. "request_action" => "GET"
  39. }

5、Kibana
5.1、Kibana安装
 

  1. [root@localhost kibana]# tar -zxvf kibana-6.3.1-linux-x86_64.tar.gz
  2. [root@localhost kibana]# cd kibana-6.3.1-linux-x86_64/config
  3. [root@localhost config]# vi kibana.yml

[root@localhost bin]# ./kibana

5.2、kibana配置


    配置文件在config文件夹下
    Kibana.yml常用配置说明
 

  1. Server.host/server.port:访问的端口号和地址(地址设置后才能被外网访问)
  2. Elasticsearch.url:访问elasticserach的地址

5.3、kibana功能简介

  1. Discover:数据搜索查看
  2. Visualize:图标制作
  3. Dashboard:仪表盘制作
  4. Timeline:时序数据的高级可视化分析
  5. DevTools:开发者工具
  6. Management:kibana相关配置

6、Filebeat和packetbeat
6.1、Filebeat


    下载Filebeat
https://www.elastic.co/cn/downloads/beats/filebeat 
查看系统位数:getconf LONG_BIT

2.2、Packetbeat


    Packetbeat简介
(1)实时抓取网络包
(2)自动解析应用层协议(抓包)
DNS、Http、Redis、Mysql等
    Packetbeat抓取elasticserach请求数据
(1)进入packetbeat目录,创建es.yml文件
(2)编辑es.yml文件
 

  1. packetbeat.interfaces.device: ens33#网卡
  2. packetbeat.protocols.http:
  3. ports: [9200]#es端口
  4. send_request: true#抓取请求信息
  5. include_body_for: ["application/json", "x-www-form-urlencoded"]#包含内容
  6. output.console:
  7. pretty: true#控制台输出

(3)启动packetbeat

sudo ./packetbeat -e -c es.yml -strict.perms=false

7、Nginx

  1.     安装nginx
  2. #安装依赖环境
  3. yum install gcc-c++
  4. yum install pcre-devel
  5. yum install zlib zlib-devel
  6. yum install openssl openssl-deve
  7. #//一键安装上面四个依赖
  8. #yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
  9. #解压
  10. tar -xvf nginx-1.13.7.tar.gz
  11. #进入nginx目录
  12. cd /usr/local/nginx  #执行命令
  13. ./configure
  14. #执行make命令make//执行make install命令
  15. make
  16. make install
  17. //启动命令
  18. nginx/sbin/nginx
  19. //停止命令
  20. nginx/sbin/nginx -s stop或者 : nginx -s quit
  21.     //重启命令
  22.     nginx -s reload

8、数据可视化演示实战

8.1、实战说明

需求:

收集Elasticserach集群的查询语句

分析查询语句的常用语句、响应时长等

 

方案

数据收集:Packetbeat+logstash

数据分析:Kibana+Elasticsearch

 

8.2、前期准备

  1.  Production Cluster(生产环境)
  2. 1、Elasticsearch 192.168.14.13:9200
  3. 2、Kibana 192.168.14.15:5601
  4.  Monitoring Cluster(监控环境)
  5. 1、Elasticsearch 192.168.14.16:8200
  6. 2、Kibana 192.168.14.16:8601
  7.  Logstash\packetbeat

8.3、实战

      启动数据采集集群

启动ES:

./elasticsearch

修改kibana配置

./kibana    #启动

    启动数据分析集群
(1)启动ES
同上
(2)启动logstash
 

  1. input {
  2. beats {
  3. port => 5044
  4. }
  5. }
  6. filter {
  7. if "search" in [request]{
  8. grok {
  9. match => { "request" => ".*\n\{(?<query_body>.*)"}
  10. }
  11. grok {
  12. match => { "path" => "\/(?<index>.*)\/_search"}
  13. }
  14. if [index] {
  15. } else {
  16. mutate {
  17. add_field => { "index" => "All" }
  18. }
  19. }
  20. mutate {
  21. update => { "query_body" => "{%{query_body}"}}
  22. }
  23. # mutate {
  24. # remove_field => [ "[http][response][body]" ]
  25. # }
  26. }
  27. output {
  28. #stdout{codec=>rubydebug}
  29. if "search" in [request]{
  30. elasticsearch {
  31. hosts => "127.0.0.1:9200"
  32. }
  33. }
  34. }

(3)启动

./bin/logstash -f config/log4j_to_es.conf
  1. 附录:防火墙配置
  2. 1、firewalld的基本使用
  3. 启动: systemctl start firewalld
  4. 关闭: systemctl stop firewalld
  5. 查看状态: systemctl status firewalld
  6. 开机禁用 : systemctl disable firewalld
  7. 开机启用 : systemctl enable firewalld
  8. 2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
  9. 启动一个服务:systemctl start firewalld.service
  10. 关闭一个服务:systemctl stop firewalld.service
  11. 重启一个服务:systemctl restart firewalld.service
  12. 显示一个服务的状态:systemctl status firewalld.service
  13. 在开机时启用一个服务:systemctl enable firewalld.service
  14. 在开机时禁用一个服务:systemctl disable firewalld.service
  15. 查看服务是否开机启动:systemctl is-enabled firewalld.service
  16. 查看已启动的服务列表:systemctl list-unit-files|grep enabled
  17. 查看启动失败的服务列表:systemctl --failed
  18. 3.配置firewalld-cmd
  19. 查看版本: firewall-cmd --version
  20. 查看帮助: firewall-cmd --help
  21. 显示状态: firewall-cmd --state
  22. 查看所有打开的端口: firewall-cmd --zone=public --list-ports
  23. 更新防火墙规则: firewall-cmd --reload
  24. 查看区域信息: firewall-cmd --get-active-zones
  25. 查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
  26. 拒绝所有包:firewall-cmd --panic-on
  27. 取消拒绝状态: firewall-cmd --panic-off
  28. 查看是否拒绝: firewall-cmd --query-panic
  29. 4.那怎么开启一个端口呢
  30. 添加
  31. firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
  32. 重新载入
  33. firewall-cmd --reload
  34. 查看
  35. firewall-cmd --zone= public --query-port=80/tcp
  36. 删除
  37. firewall-cmd --zone= public --remove-port=80/tcp --permanent

 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号