node

Centos 7搭建Zabbix 4.0监控系统

人走茶凉 提交于 2019-12-23 16:13:19
要想实时地了解服务器的运行状况并且能在出现问题时及时解决,利用监控软件是一个很好的途径。就目前而言,有服务器的地方必然少不了监控系统。现有的监控软件有很多,但是Zabbix可以灵活的监控服务器资源,并且集Cacti和Nagio两者的优点于一身且功能更加强大,实现企业级分布式监控,所以在市场应用更广。 一、Zabbix概述 Zabbix是一个基于Web界面的企业级开源监控套件,提供分布式系统监控与网络监视功能。具有主机的性能监控、网络设备性能监控、数据库性能监控、多种告警方式、详细报表、图表的绘制等功能。监测的对象可以是Linux或Windows服务器,也可以是路由器、交换机等网络设备,通过SNMP(简单网络管理协议)、Zabbix、Agent、PING、端口监视等方法提供对远程网络服务器等监控、数据收集等功能,并提供通知机制使系统管理员可以快速定位、解决系统中存在的各种问题。目前Zabbix最新版本为Zabbix 3.4.官方网站是 http://www.zabbix.com 。 Zabbix是免费的。Zabbix遵循GPL(通用公共许可证)版本2,这意味着它的源代码是可以自由分布的。Zabbix的商业版本是由Zabbix公司提供支持的。世界上很多大小不同的组织机构都依懒于Zabbix作为自己的一个主要的监控平台。尤其是现在很多互联网企业都在使用它。

centos 7搭建ELK日志分析系统

↘锁芯ラ 提交于 2019-12-23 16:08:12
一、ELK的组成 ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成,其官方网站为https://www.elastic.co/cn Elasticsearch:是个开源分布实时分析搜索引擎,建立在全文搜索引擎库Apache Lucens基础上,同时隐藏了Apache Luces的复杂性。Elasticsearch将所有的功能打包成一个独立的服务,并提供了一个简单的RESTful API接口,它具有分布式、零配置、自动发现、索引自动分片、索引副本机制、RESTful风格接口、多数据源、自动搜索负载等特点; Logstash:是一个完全开源的工具,主要用于日志收集,同时可以对数据处理,并输出给Elasticsearch; Kibana:也是一个开源和免费的工具,Kibana可以为Logstash和Elasticsearch提供图形化的日志分析Web界面,可以汇总、分析和搜索重要数据日志; 1、ELK的工作原理如下图: Logstash收集APPServer产生的Log,并存放到Elasticsearch群集中,而Kibana则从ES群集中查询数据生成图表,在返回给Browser。 简单来说,进行日志处理分析,一般需要经过以下几个步骤: 将日志进行集中化管理; 将日志格式化(Logstash)并输出到Elasticsearch;

node.js的npm详解

帅比萌擦擦* 提交于 2019-12-23 15:43:11
一、什么是npm呢 npm(Node Package Manager,node包管理器)是node的包管理器,他允许开发人员在node.js应用程序中创建,共享并重用模块。模块就是可以在不同的项目中重用的代码库。他也可以用来共享完整的node.js代码库。 npm安装 npm的安装非常简单,在linux下只要一条命令即可完成安装( 在windows下由于node.js本身就集成了npm的功能,所以安装了node.js,npm也就相应的安装完成了。 ),如下: apt-get install npm 安装完后,运行“npm”命令检查一下是否安装成功,出现如下提示说明安装成功: lee@mypc ~ $ npm Usage: npm <command> where <command> is one of: access, add-user, adduser, apihelp, author, bin, bugs, c, cache, completion, config, ddp, dedupe, deprecate, dist-tag, dist-tags, docs, edit, explore, faq, find, find-dupes, get, help, help-search, home, i, info, init, install, issues, la, link

docker Swarm集群配置

做~自己de王妃 提交于 2019-12-23 15:38:41
前言: Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。 从 Docker 1.12.0 版本开始,Docker Swarm 已经包含在 Docker 引擎中(docker swarm),并且已经内置了服务发现工具,我们就不需要像之前一样,再配置 Etcd 或者 Consul 来进行服务发现配置了。 Docker Swarm集群中有三个角色:manager(管理者);worker(实际工作者)以及service(服务)。 在上面的三个角色中,其本质上与我们公司的组织架构类似,有领导(manager),有搬砖的(worker),而领导下发给搬砖者的任务,就是Docker Swarm中的service(服务)。 需要注意的是,在一个Docker Swarm群集中,每台docker服务器的角色可以都是manager,但是,不可以都是worker,也就是说,不可以群龙无首,并且,参与群集的所有主机名,千万不可以冲突。 Docker Swarm规划 Docker安装 [root@k8s-master01 ~]#

安装 node.js npm,cnpm

丶灬走出姿态 提交于 2019-12-23 13:01:10
参考:https://blog.csdn.net/suiyuehuimou/article/details/74143436 https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450141843488beddae2a1044cab5acb5125baf0882000 node.js 版本号V8.11.2 npm 版本号 V5.6.0 安装node.js 由于Node.js平台是在后端运行JavaScript代码,所以,必须首先在本机安装Node环境。 1.首先我们要到nodejs官网( https://nodejs.org )上下载node,我们选择使用人数最多的版本 2.下载完成后,直接运行安装程序,可以修改下安装路径(建议别安装在系统盘),我安装到了D:\\Program Files\,剩下的就一直点下一步; 3.安装完成后,win+R打开cmd,输入node -v,如果可以看到版本号,恭喜你安装成功了! C:\WINDOWS\system32>node -v v8.11.2 安装npm 在正式开始Node.js学习之前,我们先认识一下npm。 npm是什么东东?npm其实是Node.js的包管理工具(package manager)。

nodeJS之进程process对象

不羁岁月 提交于 2019-12-23 12:52:38
前面的话   process对象是一个全局对象,在任何地方都能访问到它,通过这个对象提供的属性和方法,使我们可以对当前运行的程序的进程进行访问和控制。本文将详细介绍process对象 概述   process是一个全局对象,即global对象的属性,可以在任何地方直接访问到它而无需引入额外模块 console.log(process === global.process);//true console.log(process); 属性 【process.argv】   包含命令行参数的数组。第一个元素会是'node',第二个元素将是.js文件的名称,接下来的参数依次是命令行参数 console.log(process.argv);//[ 'D:\\nodejs\\node.exe', 'D:\\project\\main.js' ] 【process.execArgv】   启动进程所需的 node 命令行参数。这些参数不会在 process.argv 里出现,并且不包含 node 执行文件的名字,或者任何在名字之后的参数。这些用来生成子进程,使之拥有和父进程有相同的参数 console.log(process.execArgv); 【process.execPath】   开启当前进程的执行文件的绝对路径 console.log(process.execPath);//D:

npm install时出现npm ERR!

拟墨画扇 提交于 2019-12-23 10:59:16
可能是网络的问题 1. 如何使用镜像 npm npm全称Node Package Manager,是node.js的模块依赖管理工具。由于npm的源在国外,所以国内用户使用起来各种不方便,在使用时故会导致环境配置失败。 解决办法是翻墙或者使用淘宝镜像cnpm下载; 下面整理出了一部分国内优秀的npm镜像资源,国内用户可以选择使用。 以阿里npm镜像举例: 在项目终端 或 cmd 输入: npm --registry https://registry.npm.taobao.org install express npm config set registry https://registry.npm.taobao.org 配置后可通过下面方式来验证是否成功 npm config get registry 或者是 npm info express 安装好 npm 后,在继续安装 cnpm cnpm安装配置方法 同理在项目终端 或 cmd 输入: npm install -g cnpm --registry=https://registry.npm.taobao.org 使用 cnpm install express 2. node-sass安装失败 nodejs – node-sass安装失败 安装 node-sass 的时候总是会各种不成功,nodejs – node

【转】Nodejs:摆脱黑工坊发展出一款基础企业级框架

断了今生、忘了曾经 提交于 2019-12-23 10:31:18
原文链接: https://zhuanlan.zhihu.com/p/33143058 参考链接: https://www.jianshu.com/p/0e0cb495901f 说着也是奇怪,nodejs发展那么多年了,基础框架依旧横行霸道,当你提到nodejs的时候肯定会有人说koa/express 云云,然后随便搜索一下教程,就是教你如何制作一款博客。 诚然,nodejs强大的能力可不是给大家单单用来制作一款博客的... 无论是express还是koa,都是属于 基础框架 。我认为基础框架和企业级框架有两点是不同的: 基础框架没有任何的 限制和约束 ,开发者可以以 任意风格 书写自己的代码,业务逻辑 企业级框架特别繁琐 没有任何约束的框架在一开始的时候会非常的爽快,开发几个demo,手到擒来,但是一旦代码真正上去的时候(而且一定会),你就会发现,大量重复的操作,重复的逻辑,以及无法做单元测试。导致项目的复杂度越来越高,代码越来越丑,非常的难以维护。 为框架添加一些约束,就会增加其难用程度,学习成本变高,很多新手就会觉得: 哎哟,我这样写逻辑也是可以的嘛,为什么要搞那么复杂? 编程就是这样,如果你真正接触过一个从零到有的项目,你就会知道,很多东西你刚开始逃避的,到最后你就得全部加回来,一个不少!话虽如此,跑题有甚,今天我们就来看看,如何将基础框架koa变成一 款低端的企业级框架

C++ STL priority_queue

大憨熊 提交于 2019-12-23 10:26:23
C++ STL priority_queue 标签: c++ vector 2012-10-02 18:29 17801人阅读 评论 (3) 收藏 举报 分类: ACM(9) priority_queue 对于基本类型的使用方法相对简单。他的模板声明带有三个参数,priority_queue<Type, Container, Functional> Type 为数据类型, Container 为保存数据的容器,Functional 为元素比较方式。 Container 必须是用数组实现的容器,比如 vector, deque 但不能用 list. STL里面容器默认用的是 vector. 比较方式默认用 operator< , 所以如果你把后面俩个参数 缺省的话,优先队列就是大顶堆,队头元素最大。 看例子 [cpp] view plain copy #include <iostream> #include <queue> using namespace std; int main(){ priority_queue< int ,vector< int >,less< int > >q; //使用priority_queue<int> q1;一样 for ( int i=0;i<10;i++) q1.push(i); while (!q1.empty()){ cout<<q1.top

13. 在O(1)时间删除链表节点

谁说胖子不能爱 提交于 2019-12-23 09:49:39
对于删除链表节点需要考虑的问题 链表为空时? 删除头节点时? 删除尾节点时? 要在 O ( 1 ) {O(1)} O ( 1 ) 的时间复杂度内删除节点,那只能采用特殊办法了 对于头节点,很容易完成,因为它没有前驱 对于中间节点,只能是把待删除节点改造成其后继节点,然后删除后继节点了,这样值是相等的,但是确实不是同一个节点 对于尾节点,可能就需要从头遍历了 /** * @Classname Solution * @Description TODO * @Date 2019/12/23 8:21 * @Author Cheng */ public class Solution { public static void main ( String [ ] args ) { ArrayList < ListNode > nodes = new ArrayList < > ( ) ; for ( int i = 0 ; i < 10 ; i ++ ) { ListNode node = new ListNode ( i ) ; if ( i > 0 ) { nodes . get ( i - 1 ) . next = node ; } nodes . add ( node ) ; } ListNode head = nodes . get ( 0 ) ; ListNode node =