菜单

Zabbix/安装

2019年2月4日 - 金沙编程资讯

互连网通讯过程中,可能会现身分包和合包的情形。具体意况如

前言:

Memcached与Memcache的区别

至于Memcached和Memcache的界别,其实很容易,一个是服务端,一个是客户端,如同mysql一样,大家在命令行里输入种种sql语句就能查询到必要的结果,那就是客户端,客户端接收大家输入的授命从服务端查询,mysqld就是服务端,就是响应客户端的额后台进程,在此地也如出一辙Memcached是服务端,而Memcache就是客户端。

因此大家要利用Memcached,首先在服务端安装好Memcached,并运行Memcached,然后安装Memcache就能动用了。

安装MySQL:
即使没有安装MySQL,则需要先安装。
Centos7之前:

事先我们曾经简单的通晓了刹那间『远程调用PRC』
1.Socket学习 –
撕开长途调用的逼万分衣(上)
2.Socket学习 –
撕开长途调用的逼非凡衣(下)超简单仿制一个RPC客户端
图片 1

1.解包封装的艺术 

安装表达:

需安装

  1. 服务端(memcached)
  2. 客户端(libmemcached)
  3. php的memcache扩展

安装服务端
brew install memcached

测试memcached安装是或不是中标
ls -al /usr/local/bin/mem*

启动memcached服务(有关各参数可见详见表明)
memcached -d

一经必要开机自启动,输入以下命令
ln -sfv /usr/local/opt/memcached/*.plist ~/Library/LaunchAgents


安装客户端
brew install libmemcached


php的memcache扩展

$ cd memcache-2.2.7  
$ phpize  
$ ./configure --enable-memcache --with-php-config=/usr/local/opt/php54/bin/php-config --with-zlib-dir  
$ sudo make & make install  

注:假设有爆发以下的标题(php7环境)

fatal error: 'ext/standard/php_smart_str.h' file not found

git clone
https://github.com/php-memcached-dev/php-memcached.git
cd php-memcached/
git checkout php7
phpize
./configure –disable-memcached-sasl
–with-libmemcached-die=/usr/local/libmemcached
make && make instal

可参考:http://www.cnblogs.com/zqifa/p/linux-php-2.html

安装完结未来

将路径设置在php.ini文件的extension_dir参数 (我这边默许的so文件是在
/usr/lib/php/extensions/no-debug-non-zts-20121212/)

图片 2

image.png

php.ini(我那边地址是 /usr/local/etc/php/7.0/php.ini )添加参数:

extension_dir="/usr/local/Cellar/php70/7.0.14_7/lib/php/extensions/no-debug-non-zts-20151012/"
extension=memcached.so

$ killall php-fpm  
$ /usr/local/opt/php54/sbin/php-fpm -D

重启nginx

$ nginx -s reload  
sudo yum install mysql-server
sudo service mysqld start

二、

今日来学学一下workerman那几个框架上的其余使用『Json Rpc远程调用框架』,
下载地址:
介绍:

JSON (JavaScript Object
Notation)是一种用于在组件间互为音讯的数据互换格式,其是以JavaScript
为根基的数据表示语言。既有益于人的读写习惯,又便宜总括机的剖析和转移。
RPC(Remote Procedure
Call)是长距离调用,既客户端通过某种协议向服务器发起呼吁并赢得结果。RPC使得开发分布式网络程序非凡便宜,并且能大幅度限度的将互连网系列的顺序部分解耦,方便后续开发、维护。
workerman-json-rpc是一个以workerman作为服务器容器,使用Json作为协商不难飞速的RPC远程调用框架。

图片 3
下载解压之后目录结构如下图,大家把JsonRpcStatistics
那2个目录的方方面面拷贝到 大家温馨的项目中。
图片 4
拷贝到jsonrpc 文件夹中,workerman
目录照旧我们最原始是workerman大旨包。

1.新建allserver.php 来作为大家的服务端:

<?php

//引入Workerman核心包
require_once 'workerman/Autoloader.php';
//引入jsonRpc
require_once 'jsonrpc/JsonRpc/start.php';

启动:

php allserver.php  start

图片 5

2.客户端
大家在其余一个网站(客户端)来调用大家服务端。
因为大家服务端使用的是『workerman-json-rpc』这几个插件,其中也卷入了客户端的代码。
我们把JsonRpc/Clients/PrcClient.php文本拷贝到大家的客户端项目,然后新建一个test.php文件来测试
图片 6
test.php:

<?php

require_once 'RpcClient.php';

 // 服务端列表
$address_array = array(
    'tcp://10.211.55.13:2015', //我们只有一个服务
);
// 配置服务端列表
RpcClient::config($address_array);

$uid = 567;
$user_client = RpcClient::instance('User'); 
//这个User是服务端的类,在JsonRpc/Services/User.php

//调用User类中的方法
var_dump($user_client->getEmail(123));

图片 7

3.赶回服务端,新建新闻服务News.php
图片 8
能够看看,默认有Blog类和User类(前边大家早已在客户端调用过)。

在服务端新建了一个News 服务后,不须求重启服务(不必要再度实施 php
allserver.php start)。

来到客户端测试:

<?php

require_once 'RpcClient.php';

 // 服务端列表
$address_array = array(
    'tcp://10.211.55.13:2015', //我们只有一个服务
);
// 配置服务端列表
RpcClient::config($address_array);

//客户端调用新闻服务
$client = RpcClient::instance('News');
var_dump($client->getTodayNews());

图片 9

communicationPack.php

<?php
//对数据信息封装
function packData($sendData,$packModel){
    return pack($packModel, strlen($sendData)).$sendData;
}

//解包
function unpackData($rcvData,$packModel){
    $length = $packModel=='N'?4:2;
    return substr($rcvData,$length);
}

Centos7应用了玛丽亚DB替代,完全包容MySQL:

2.服务端 tcpServer.php

sudo yum install mariadb-server
sudo systemctl enable mariadb
sudo systemctl start mariadb
<?php
require_once 'communicationPack.php';
$packModel = 'N';
//创建Server对象,监听 127.0.0.1:9501端口
$serv = new swoole_server("127.0.0.1", 9501);
$serv->set(array(
    'open_length_check' => true,
    'package_max_length' => 2000000,
    'package_length_type' => $packModel, //see php pack()
    'package_length_offset' => 0,
    'package_body_offset' => $packModel=='N'?4:2,
));
//监听连接进入事件
$serv->on('connect', function ($serv, $fd) {
    echo "Client: Connect.\n";
});

//监听数据接收事件
$serv->on('receive', function ($serv, $fd, $from_id, $data) use($packModel){
    echo "#{$serv->worker_id}>> received length=" . strlen($data) ."data=".$data. "}\n";
    $data = unpackData($data,$packModel);
    $returnStr = "Server: ".$data;
    $serv->send($fd, packData($returnStr,$packModel));
});

//监听连接关闭事件
$serv->on('close', function ($serv, $fd) {
    echo "Client: Close.\n";
});

//启动服务器
$serv->start();

若果如故想行使MySQL:

开行服务端

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
sudo yum install mysql-server
sudo systemctl start mysqld

图片 10

服务端:
安装源:
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
查看源:
ll /etc/yum.repos.d/
安装:
yum install zabbix-server-mysql zabbix-web-mysql
在MySQL中新建名为zabbix的库:
mysql -uroot
create database zabbix character set utf8 collate utf8_bin;
quit;
往名为zabbix的库中导入数据:
cd /usr/share/doc/zabbix-server-mysql-3.2.0
zcat create.sql.gz | mysql -uroot zabbix
编辑zabbix服务端配置文件:

 

# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=root

3 客户端 tcpClient.php

修改php.ini:

<?php
require_once 'communicationPack.php';
$packModel = 'N';
$client = new swoole_client(SWOOLE_SOCK_TCP);
$client->set(array(
    'open_length_check'     => true,
    'package_length_type'   => $packModel,
    'package_length_offset' => 0,       //第N个字节是包长度的值
    'package_body_offset'   => $packModel=='N'?4:2,       //第几个字节开始计算长度
    'package_max_length'    => 2000000,  //协议最大长度
));
//连接到服务器
if (!$client->connect('127.0.0.1', 9501, 0.5))
{
    die("connect failed.");
}
//向服务器发送数据
//数据协议
$sendData = "test123";
$sendData = packData($sendData,$packModel);
if (!$client->send($sendData))
{
    die("send failed.");
}
//从服务器接收数据
$data = $client->recv();
if (!$data)
{

    die("recv failed.");
}
echo unpackData($data,$packModel);
//关闭连接
$client->close();
vi /etc/php.ini
date.timezone=Europe/Riga

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图