当前位置: 首页 > news >正文

免费源码资源站数据服务网站开发

免费源码资源站,数据服务网站开发,删除自豪地采用wordpress,外贸公司怎么运作preface 我们每天都要查看服务器的日志#xff0c;一方面是为了开发的同事翻找日志#xff0c;另一方面是巡检服务器查看日志#xff0c;而随着服务器数量以及越来越多的业务上线#xff0c;日志越来越多#xff0c;人肉运维相当痛苦了#xff0c;此时#xff0c;参考现…preface 我们每天都要查看服务器的日志一方面是为了开发的同事翻找日志另一方面是巡检服务器查看日志而随着服务器数量以及越来越多的业务上线日志越来越多人肉运维相当痛苦了此时参考现在非常流行的日志分析工具搭建了一套ELK日志分析系统。下面就说说ELKELK安装过程以及如何使用。 了解它 ELK全称其实三个软件组合而成的ElasticSearch Logstash Kibana。 logstash负责收集日志的。elasticsearch用来存储和搜索日志的。kibana用来web界面显示日志的。 所以ELK指定就是上面三个软件的缩写。企业通用的架构图如下我们这套架构讲究了松耦合关系和缓冲关系logstash与elasticsearch中间加了个redis避免当elasticsearch宕机后logstash的日志便会无法写入日志容易导致日志丢失。同时也起到一个缓冲的作用避免日志量过大导致elasticsearch服务器扛不住。 废话不多说我们现在就开始开工吧。 安装它 我们采用简单的yum形式安装由于elasticsearch和logstash是java开发的所以需要安装java的环境。 iphostname角色192.168.141.3linux-node1esklog192.168.141.4linux-node2eslog以上系统都是CentOs6.6系统。hostname和hosts文件解析必须一一对应。max_open_file必须改掉改为65535。各个服务器关闭selinuxiptables以及NTP同步。安装java环境 node1和node2同时操作安装java [rootlinux-node1 ~]# yum -y install java [rootlinux-node1 ~]# java -version openjdk version 1.8.0_111 安装elasticsearch 可以参考官网的安装手册https://www.elastic.co/guide/en/elasticsearch/reference/2.4/_installation.html [rootlinux-node1 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch # 首先安装yum源的公钥。 [rootlinux-node1 ~]# cat /etc/yum.repos.d/elasticsearch.repo [elasticsearch] nameElasticsearch baseurlhttp://packages.elastic.co/elasticsearch/2.x/centos gpgcheck1 gpgkeyhttp://packages.elastic.co/GPG-KEY-elasticsearch enabled1[rootlinux-node1 ~]# yum -y install -y elasticsearch安装logstash [rootlinux-node1 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch [rootlinux-node1 ~]# cat /etc/yum.repos.d/logstash.repo [logstash-2.3] nameLogstash repository for 2.3.x packages baseurlhttps://packages.elastic.co/logstash/2.3/centos gpgcheck1 gpgkeyhttps://packages.elastic.co/GPG-KEY-elasticsearch enabled1[rootlinux-node1 ~]# yum -y install logstash安装kibana Kibana 是为 Elasticsearch 设计的开源分析和可视化平台。可以使用 Kibana 来搜索查看存储在 Elasticsearch 索引中的数据并与之交互。可以很容易实现高级的数据分析和可视化以图表的形式展现出来。 [rootlinux-node1 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch [rootlinux-node1 ~]# cat /etc/yum.repos.d/kibana.repo [kibana-4.5] nameKibana repository for 4.5.x packages baseurlhttp://packages.elastic.co/kibana/4.5/centos gpgcheck1 gpgkeyhttp://packages.elastic.co/GPG-KEY-elasticsearch enabled1[rootlinux-node1 ~]# yum -y install kibana 配置他们 我们通过yum安装了elk下面就开始配置他们。 配置elasticsearch 先看看配置文件 [rootlinux-node1 ~]# rpm -ql elasticsearch /etc/elasticsearch /etc/elasticsearch/elasticsearch.yml # 主配置文件 .....[rootlinux-node1 ~]# cd /etc/elasticsearch/ [rootlinux-node1 elasticsearch]# ls elasticsearch.yml logging.yml scripts [rootlinux-node1 bin]# grep -v ^# /etc/elasticsearch/elasticsearch.yml cluster.name: myes # 集群名字 node.name: linux-node1 # 节点名字 path.data: /data/es-data/ path.logs: /var/log/elasticsearch bootstrap.memory_lock: true # 是否锁定内存 network.host: 192.168.141.3 http.port: 9200 discovery.zen.ping.unicast.hosts: [192.168.141.3, 192.168.141.4] #广播方式用来发现同一个集群下的节点这里写的是单播 加上去这样方便双方互相认识。[rootlinux-node1 ~]# grep elas /etc/passwd elasticsearch:x:496:491:elasticsearch user:/home/elasticsearch:/sbin/nologin [rootlinux-node1 ~]# mkdir /data/es-data/ -p [rootlinux-node1 ~]# chown -R elasticsearch. /data/es-data/ # 因为使用elkstaticsearch用户启动的所以必须为这个用户授权给data目录 [rootlinux-node1 ~]# /etc/init.d/elasticsearch start 正在启动 elasticsearch [确定]这里说下elasticsearch的加入集群的模式。我们发现在配置文件里有这2行组播和单播模式 # Pass an initial list of hosts to perform discovery when new node is started: discovery.zen.ping.unicast.hosts: [host1, host2] # 单播的形式 # Prevent the split brain by configuring the majority of nodes (total number of nodes / 2 1): discovery.zen.minimum_master_nodes: 3 # 组播形式数量是总数量除以2后加1 elkstaticsearch 模块的使用 [rootlinux-node1 ~]# curl -i XGET http://192.168.141.3:9200/_count? #统计当前的信息 HTTP/1.1 200 OK Content-Type: application/json; charsetUTF-8 Content-Length: 59{count:0,_shards:{total:0,successful:0,failed:0}} 安装其他模块 [rootlinux-node1 elasticsearch]# /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head [rootlinux-node1 elasticsearch]# /usr/share/elasticsearch/bin/plugin install --verbose lmenezes/elasticsearch-kopf # 安装这个模块 然后我们访问这个模块 在浏览器输入http://192.168.141.3:9200/_plugin/head/就可以看到这个主节点的信息了。 当一台主分片服务器宕机后主节点认定为故障后那么这宕机的服务器信息分片就丢失了此时主节点先去判断这个宕机节点丢失了哪些信息然后从剩余的副节点服务器中选举一个当作主分片服务器再把这台刚选举出来的主分片服务器复制给信息其他的副分片节点。比如副本节点3台服务器那么选举一台为主分片服务器后就copy 2份到其他副本节点服务器。 当进行数据查询的时候比如我们当前连接到192.168.141.4上我们查询的数据不在192.168.141.4上而是在192.168.141.3上那么192.168.141.4服务器就会去从其他服务器获取信息后汇总到自身然后返回给你。In short,就是你连接上了哪台服务器就会对你负责。 在访问head模块首页的时候我们发发现概览里面的节点信息字体是黑粗体那就是主分片,细的为备份分片在一般情况下主副分片不在同一台服务器上。我们再看节点名称的右边的颜色黄色表示警告绿色表示健康红色表示不健康可能有分片丢失。 我们还可以使用刚才安装的kopf模块浏览器输入http://192.168.141.137:9200/_plugin/kopf/#!/rest 添加elasticsearch集群 所有节点通过集群名字来判断是否同一个集群的所有集群中都会进行选取一个主节点那就是master节点主节点负责管理集群的状态那什么是负责管理 集群的状态呢比如说数据块分片分片的数量以及主副分片都是由主节点决定的。 从用户的角度来看我们不需要关心哪个是主节点只需要连接就可以了因为所有操作都是由elasticsearch完成的。我们需要查询数据不需要经过主节点进行转发写入数据也一样直接写入node2上然后node2再copy到其他节点上。 我们在开启一台虚拟机然后安装上elasticsearch配置文件从我们第一台elasticsearch复制过去然后修改部分内容 确保node2节点也有java环境 [rootlinux-node2 elasticsearch]# chown -R elasticsearch.elasticsearch /data/es-data/ [rootlinux-node2 elasticsearch]# mkdir -p /data/es-data [rootlinux-node2 ~]# grep -v ^# /etc/elasticsearch/elasticsearch.yml cluster.name: myes # 集群名字 node.name: linux-node2 # 节点名字 path.data: /data/es-data/ path.logs: /var/log/elasticsearch bootstrap.memory_lock: true # 是否锁定内存 network.host: 192.168.141.4 http.port: 9200 discovery.zen.ping.unicast.hosts: [192.168.141.3, 192.168.141.4] # 把同一集群的服务器IP写到这里方便他们互相认识。 启动服务: [rootlocalhost elasticsearch]# service elasticsearch start 正在启动 elasticsearch [确定]然后我们再次访问head模块 http://192.168.141.3:9200/_plugin/head/ 发现有2个node。 获取集群监控状态 关于集群监控状态的我们可以查看官网的集群APIhttps://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-health.html#request-params [rootsql1 elasticsearch]# curl -XGET http://192.168.141.3:9200/_cluster/health?prettytrue {cluster_name : myes,status : green,timed_out : false,number_of_nodes : 2,number_of_data_nodes : 2,active_primary_shards : 5,active_shards : 10,relocating_shards : 0,initializing_shards : 0,unassigned_shards : 0,delayed_unassigned_shards : 0,number_of_pending_tasks : 0,number_of_in_flight_fetch : 0,task_max_waiting_in_queue_millis : 0,active_shards_percent_as_number : 100.0 } 更多模块请参考 https://www.elastic.co/guide/en/elasticsearch/guide/current/_cat_api.html 接下来介绍logstash logstash有input和output从input进入的数据然后从output出来同时可对这个数据流进行filter。如下图所示 更多资料参考官网https://www.elastic.co/guide/en/logstash/2.3/advanced-pipeline.html 拿个命令简单说下 采用yum安装默认的路径在/opt/logstash/。logstash命令就在/opt/logstash/bin/logstash [rootlinux-node1 bin]# ./logstash -e input { stdin{} } output { stdout{} } # 这个命令执行毕竟长因为在等待jvm的启动。Settings: Default pipeline workers: 2 Pipeline main started 2016-09-04T11:51:40.968Z sql1.com hello # 输入什么回复什么同时加上时间戳 how are you 2016-09-04T11:51:49.579Z sql1.com how are you 来一个rbuby格式的内容先说下在logstash里面表示等号。 [rootlinux-node1 bin]# ./logstash -e input { stdin{} } output { stdout{ codec rubydebug} } Settings: Default pipeline workers: 2 Pipeline main started hello {message hello,version 1,timestamp 2016-09-04T11:53:21.030Z,host sql1.com } how are you {message how are you,version 1,timestamp 2016-09-04T11:53:25.710Z,host sql1.comlogstash写入elasticsearch 首先参考官网质料https://www.elastic.co/guide/en/logstash/2.3/plugins-outputs-elasticsearch.html 我们通过命令行模式把logstash的内容输入到elasticsearch中。 [rootlinux-node1 bin]# ./logstash -e input { stdin{} } output { elasticsearch { hosts [192.168.141.3:9200] index logstash-%{YYYY.MM.DD}} } Settings: Default pipeline workers: 2 Pipeline main started hello goodnight i dont know 然后访问web流量器访问head模块 我们简单看看logstash的配置文件配置文件放在/etc/logstash/下面 output{elasticsearch { # 表示使用elasticsearch来作为outputhosts [192.168.141.4:9200] #hosts表示elasticsearch的主机因为是列表所以使用[]号主机要双引号括起来因为是要字符串类型。index logstash-%{YYYY.MM.dd} #索引表示使用时间戳作为索引值。}stdout{codec rubydebug } }需要说明的是这个每一行是事件为什么要叫做事件因为我们可以把配置写成一行。 这个配置的流程是这样的 事件 - input - codec - filter - codec - output codec的意思是编码的意思可以指定数据格式比如可以指定为json。 通过logstash配置文件来配置日志的输入与输出以及filter 我们先看看官网的资料https://www.elastic.co/guide/en/logstash/2.3/plugins-inputs-file.html 我们需要注意两个参数 参数名作用type指定类型自定义方便后边output进行 if[type] 匹配start_position表示从哪里开始读取文件默认是从文件结尾开始sincedb_path数据库文件用来记录当前监控下的文件的位置这样知道上回读在哪里了。这个必须是文件路径而不是目录路径。默认是写在$HOME/.sincedb*path指定日志文件路径可以是数组表示同时写入多个文件。类似于这样的格式kibana kibana是专门为elasticsearch设计的可视化平台。logstash和kibana两者没有任何关系。我们在192.168.141.3上安装它。 下面就配置下它 [rootlinux-node1 ~]# grep -v ^# /opt/kibana/config/kibana.yml server.port: 5601 # 监听的端口 elasticsearch.url: http://192.168.141.3:9200 # 访问elasticsearch的地址。 kibana.index: .kibana # 存储索引是在elasticsearch里面把elasticsearch作为它的数据存储介质。 下面就启动它 [rootlinux-node1 ~]# service kibana start kibana started 查看端口是否真正存在 [rootlinux-node1 ~]# netstat -lnpt |grep 5601 tcp 0 0 0.0.0.0:5601 0.0.0.0:* LISTEN 31759/node #5601已经在 接下来访问kibana访问地址是http://192.168.141.3:5601接下来简单的配置它 如果没有问题kibana匹配成功了那么就点击 create 这个按钮然后我们去搜索下日志 下面这个图右上角有个时间匹配选项我们可以根据自己的需求来选择。 再说下怎么去控制自己想要显示的列或者隐藏不想显示的列 logstash 用if对output进行条件匹配 我们在使用logstash-input的时候会有多个输入源不同的输入源对应不同的输出那么如何保证输入源和输出是一一对应的这个时候我们就需要使用if条件去做判断了。 从配置logstash的文件入手 [rootlinux-node1 logstash]# vim /etc/logstash/conf.d/file.conf input{file {path [/var/log/messages,/var/log/secure]type system-log #定义type类型方便下面通过if去匹配判断start_position beginning}file {path /var/log/elasticsearch/myes.logtype es-log} }filter{ }output{if [type] system-log{ #通过if[type]来对input 的type类型来判断匹配才走下面的内容elasticsearch {hosts [192.168.141.4:9200] # elasticsearch服务器地址index system-log-%{YYYY.MM.dd} # 索引}}if [type] es-log {elasticsearch {hosts [192.168.141.4:9200]index es-log-%{YYYY.MM.dd}}} } [rootlinux-node1 conf.d]# /opt/logstash/bin/logstash -f /etc/logstash/conf.d/file.conf [rootlinux-node1 logstash]# service elasticsearch restart # 最好重启elasticsearch不然的话访问head模块显示不了我们刚刚配置的数据我就因为没有重启所以看不到。 Stopping elasticsearch: [ OK ] Starting elasticsearch: [ OK ] 此时我们查看http://192.168.141.3:9200/_plugin/head/就可以看到多出一个日志了。名字为es-log。然后再在kibana里面添加这个日志。具体操作如下图所示 这里说说kibana日志搜索的语法如下图所示 由于网页太小了麻烦亲们放大网页看图中我手敲的内容。 转载于:https://www.cnblogs.com/liaojiafa/p/6139752.html
http://www.pierceye.com/news/83168/

相关文章:

  • 阜阳公司做网站长沙网络推广平台
  • 福州做网站哪家最好建设公司网站价格
  • 游戏云电脑广州seo优化外包公司
  • 泉州网站建设方案策划汕头哪里建网站
  • 免费制作企业网站平台网站设计目的怎么写
  • 网站建设职业描述单肩包自定义页面设计模板
  • 网站编辑的工作内容优化网站图片
  • 企业网站管理系统演示平台微信 网站应用开发
  • 做品牌 需要做网站吗企业营销咨询
  • 建设手机网站多少钱ps里怎么做网站
  • 上海网站建设app北京 企业展厅设计公司
  • 有什么网站可以接活做设计搜索公众号
  • 青羊区建设网站手机网站横竖屏
  • 记事本做网站怎么调整图片间距wordpress 边框线
  • 婚庆网站建设策划案网站怎样做淘宝客
  • 网站建设培训公司平台seo
  • 优秀金融网站设计php和mysql做租车网站
  • dnf怎么做钓鱼网站wordpress首页js怎么添加
  • 做动画上传网站赚钱么河南省建设厅历任厅长
  • 郑州市做网站的公司做网站网站怎么赚钱
  • 大学生兼职网站设计论文ps做网站尺寸
  • 做网站赚钱但又不想开公司网络营销八大职能
  • 网站建设记什么科目杭州比较好的互联网公司
  • 垂直电商网站建设线上阿类电商平台
  • 大画册设计网站用wordpress如何添加关键字
  • 昆明网站服务国家建设部网站倪虹
  • 厦门做网站维护的公司网站架构基本知识
  • 东风地区网站建设价格网站建设实习小结
  • 各国网站建设排名wordpress 插件选项
  • 深圳东门步行街地铁站云南云桥建设股份有限公司官方网站