进入之后,选择6.1.0版本,如下图:

6.替换zabbix3启动脚本以及配置文件
cd zabbix-3.0.7
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix3_agentd
cp misc/init.d/tru64/zabbix_server /etc/init.d/zabbix3_server
sed -i
‘s/\(DAEMON=\/usr\/local\/\)\(sbin\/zabbix_server\)/\1zabbix\/\2/g’
/etc/init.d/zabbix3_server

五、网络通信(TCP)

面向连接的网络通信,在通信过程中时刻保持连接,这种通信方式类似与打电话,能保证安全可靠、数据不丢失,但与UDP相比传输速度略低。

进程A:创建socket->准备地址->绑定->监听(设置队列长度)->等待连接->通信->关闭。
进程B;创建socket->准备地址->连接->通信->关闭

    int listen(int sockfd, int backlog);
    //功能:设置socket对象最大的排队数量

    int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);     
    //功能:等待其他主机与当前socket建立连接关系。    
    //返回值:建立连接的描述符,此后通信都用此描述符    

    int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
    //功能:连接通信目标
    //socketaddr:目标地址

    ssize_t recv(int sockfd, void *buf, size_t len, int flags);
    //功能:网络通信专用的数据接收    
    //flag: 0  阻塞
    //      1  不阻塞
    //返回值:-1 时,说明连接断开,此时应该结束循环

    ssize_t send(int sockfd, const void *buf, size_t len, int flags);
    //功能:网络通信专用的数据发送
    //返回值:-1 时,说明连接断开    ,此时应该结束循环

 

3 在你的工程的pro文件添加 LIBS +=
-L/usr/local/qwt6.1.0/lib -lqwt(添加库文件,
-l前面的空格不能少啊);

3.安装依赖包
yum -y install net-snmp-devel libxml2-devel libcurl-devel php-gd
mysql-devel gcc net-snmp-devel curl-devel perl-DBI php-mysql php-bcmath
php-mbstring php-xml

 

1.将/usr/local/qwt6.1.0/lib下的所有文件拷贝至/usr/lib/arm-linux-aneauhbf/qtcreator/,将/usr/local/qwt6.1.0/plugins/designer的文件拷贝至/usr/lib/arm-linux-aneauhbf/qt5/plugins/designer(没有则新建一个)(两个必须同时做之后才能在ui编辑器中看到Qwt插件)

2.物理备份数据库
cd /var/lib/mysql/
tar -zcvf /tmp/data_zabbix2_20170306.tar.gz *

二、套接字socket

它是一种可以进行网络通信的内核对象,它有一个唯一的标识符,一般称它为socket描述符,跟文件描述符类似,也可以用read/wrote/close操作。

        int socket(int domain, int type, int protocol);/*    
        功能:创建socket对象
        domain:通信地址类型
            AF_UNIX    / AF_LOCAL :本地进程间通信
            AF_INET    :使用ipv4地址通信    
            AF_INET6:使用ipv6地址通信
        type:
            SOCK_STREAM :数据流协议,TCP面向连接的通信协议
                优点:安全可靠,数据不丢失,但速度慢。
                一般常用于安全性较高的场景
            SOCK_DGRAM    :数据报协议,UDP面向无连接的通信协议
                优点:速度快,数据可能会丢失,安全性和可靠性于TCP相比不高
                一般用于安全性要求不高,但对速度有要求的场景。
        protocol:特殊协议一般不使用,直接写 0*/

准备通信地址:
基本通信地址
struct sockaddr
{
  sa_family_t sa_family;
  char sa_data[14];
}

本地通信地址
struct sockaddr_un
{
  // 通信地址类型
  sun_family_t sun_family;
  // socket文件的路径
  char sun_path[100];
}
网络通信地址
struct sockaddr_in
{
  //通信地址类型
  short int sin_family;
  //端口号
  in_port_t sin_port;
  //ip地址
  struct in_addr sin_addr;
}

准备好的通信地址通常要将其强制转换成基本通信地址才能传给函数使用。

    int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
    //功能:把socket对象与通信地址建立联系


    int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
    //功能:连接通信目标
    //socketaddr:目标地址

澳门微尼斯人手机版 1

7.拷贝前端文件
\cp /root/zabbix-3.0.7/frontends/php/* /var/www/html/zabbix3/ -rp

 

移植(补充):

9.启动mysql

 

之后进入编译生成目录,build-qwt6.1.0-gcc之类的,命令行运行make
install,将编译好的东西安装,会自动在/usr/local/生成一个qwt6.1.0目录,里面就是我们需要的东西,到此为止,编译安装就算通过了

10.启动zabbix3
/etc/init.d/zabbix3_server start
/etc/init.d/zabbix3_agentd start

四、网络通信(UDP)

进程A:创建socket对象->准备地址->绑定->接收数据和来时的地址->原路返回数据->关闭socket
进程B:创建socket对象->准备地址->向目标发送数据->接收数据->关闭socket

当socket对象被全部关闭后,会在内核中停留一段时间(给一个重新连接的机会),如果再使用同样的ip地址和端口号时就会失败(延时关闭)

    ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen);
    //功能:接收数据并获取发送端的地址
    //addrlen:是参数,要得到的src_addr的长度

    ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);    
    //功能:发送数据到指定的目标

下载完成之后解压文件,进入压缩包所在目录,运行命令:tar
-xvf
qwt-6.1.0.tar.bz2,应该就可以解压了,或者直接傻瓜式的鼠标操作,完成之后,使用QtCreator打开工程,构建工程,

5.解压并安装
tar -xf zabbix-3.0.7.tar.gz
cd zabbix-3.0.7
mkdir -p /usr/local/zabbix/
./configure –prefix=/usr/local/zabbix/ –enable-server –enable-agent
–with-mysql –with-net-snmp –with-libcurl –with-libxml2

三、网络通信的数据存储方式

个人计算机系统数据的存储方式可能是大端,也可能是小端,网络通信时需要的是大端数据,必须把数据转换成大端。

        uint32_t htonl(uint32_t hostlong);
        //功能:把32位的主机字节序转换成32位的网络字节序

           uint16_t htons(uint16_t hostshort);
        //功能:把16位的主机字节序转换成16位的网络字节序

           uint32_t ntohl(uint32_t netlong);
        //功能:把32为网络字节序转换成32位的主机字节序

           uint16_t ntohs(uint16_t netshort);
        //功能:把16为网络字节序转换成16位的主机字节序

生成端口号
  端口号就是一个16为的无符号整数

uint16_t htons(uint16_t hostshort);

生成ip地址

        in_addr_t inet_addr(const char *cp);
        //功能:把点分十进制的字符串ip地址转换成32位的无符号整数

        char *inet_ntoa(struct in_addr in);
        //功能:把32位的网络字节序的ip地址转换成点分十进制的字符串ip地址

澳门微尼斯人手机版 2

11.查看zabbix_server日志中数据库的自动升级进度

一、网络协议

国际标准化组织(ISO)定义了网络协议的基本框架,被称为OSI模型。OSI模型包括应用层、表示层、会话层、传输层、网络层、数据链路层及物理层。而OSI模型过于复杂至今没有得到实际的应用。

TCP/IP协议模型将OSI的7层协议模型简化为4层,从而更有利于实现和使用。TCP/IP协议模型包括应用层、传输层、网络层、网络接口层。

TCP/IP协议与OSI模型的对应关系如下图:

澳门微尼斯人手机版 3

 

发表评论

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