使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一

1、准备开发环境

    基于zabbix-4.0.3搭建的源码开发系统环境:
    操作系统:CentOS Linux 7
    开发工具:Eclipse IDE for C/C++ Developers ,Version: Oxygen Release (4.7.0)
    Mysql:MySQL Community Server 5.7.25
    PHP:7.3.1
    Nginx:1.10.1
    Java:1.8.0_201


2、安装开发工具环境

    1、安装mysql

    参考网络教程。

    2、安装nginx

    参考网络教程。

    3、安装java

    参考网络教程。

    4、安装PHP

    获取源码包

wget -O /root/work/php-7.3.1.tar.gz http://cn2.php.net/get/php-7.3.1.tar.gz/from/this/mirror
cd wget -O /root/work/
tar zxf php-7.3.1.tar.gz
cd php-7.3.1

    编译安装

./configure \ --prefix=/usr/local/php7 \ --with-pdo-mysql=/opt/mysql \ --enable-mysqlnd \ --with-pdo-mysql=mysqlnd \ -with-mysqli=mysqlnd \ --with-mysql-sock=/tmp/mysql.sock \ --with-config-file-path=/usr/local/php7 \ --enable-fpm \ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ --enable-soap \ --with-libxml-dir \ --with-xmlrpc \ --with-openssl \ --with-mhash \ --with-pcre-regex \ --with-sqlite3 \ --with-zlib \ --enable-bcmath \ --with-iconv \ --with-bz2 \ --enable-calendar \ --with-curl \ --with-cdb \ --enable-dom \ --enable-exif \ --enable-fileinfo \ --enable-filter \ --with-pcre-dir \ --enable-ftp \ --with-gd \ --with-openssl-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib-dir \ --with-freetype-dir \ --enable-gd-jis-conv \ --with-gettext \ --with-gmp \ --with-mhash \ --enable-json \ --enable-mbstring \ --enable-mbregex \ --enable-mbregex-backtrack \ --with-onig \ --enable-pdo \ --with-zlib-dir \ --with-pdo-sqlite \ --with-readline \ --enable-session \ --enable-shmop \ --enable-simplexml \ --enable-sockets \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-wddx \ --with-libxml-dir \ --with-xsl \ --enable-zip \ --with-pear \ --enable-opcache  
make  
make install 

    安装过程可能会遇到很多缺少依赖包的问题,百度基本都能解决的。

    以下是安装PHP常见问题解决方案:

    PHP编译安装时常见错误解决办法,php编译常见错误


3、安装zabbix调试环境

3.1、创建zabbix用户账户

    groupadd zabbix
    useradd -g zabbix zabbix

3.2、创建zabbix数据库

   create database zabbix character set utf8 collate utf8_bin;
    grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
    GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
    FLUSH PRIVILEGES;
    quit

3.3、导入zabbix数据库

在zabbix源码包下找到要导入的数据库脚本:schema.sql、images.sql、data.sql

cd /root/work/zabbix-4.0.3/database

mysql -uroot -p zabbix < schema.sql
mysql -uroot -p zabbix < images.sql
mysql -uroot -p zabbix < data.sql

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第1张图片

3.4、配置PHP 

vi /usr/local/php7/php.ini

修改以下配置参数值:

    post_max_size = 16M
    max_execution_time = 300
    max_input_time = 300
    date.timezone = Asia/Shanghai
    always_populate_raw_post_data = -1

3.5、配置unixODBC

ln -s /usr/lib64/libmyodbc8.so -> /usr/lib64/libmyodbc8w.so

ln -s /usr/lib64/libmysqlclient.so.18 -> /usr/lib64/mysql/libmysqlclient.so.18

创建ODBC数据源配置文件:

vi /etc/odbc.ini

[localhost]
Description = MySQL Localhost Database
Driver = MySQL
Server = 127.0.0.1
User = zabbix
Password = zabbix
Port = 3306
Database = zabbix

测试ODBC数据源配置:

isql -v localhost

如果配置成功,我们就可以操作mysql了。执行上面的命令后,控制台输出如下

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第2张图片

输入quit退出sql命令行。

3.6、安装zabbix前端界面

mkdir -p /home/www/zabbix

cp -rf /root/work/zabbix-4.0.3/frontends/php/* /home/www/zabbix/

chown -R nginx.nginx /home/www/zabbix

3.7、配置zabbix server配置文件

    mkdir -p /usr/local/Zabbix/etc/
    cp -rf /root/work/zabbix-4.0.3//conf/zabbix_agentd.conf /usr/local/Zabbix/etc/
    cp -rf /root/work/zabbix-4.0.3//conf/zabbix_server.conf /usr/local/Zabbix/etc/

 vi /usr/local/Zabbix/etc/zabbix_server.conf

DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

3.8、
Eclipse导入zabbix server源代码

解压Eclipse IDE for C/C++ Developers包,放在/root/eclipse下,如果需要创建桌面快捷方式,把eclipse文件(菱形的图标)复制到桌面,启动直接双击eclipse文件。

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第3张图片
首次启动eclipse时要配置源代码工作区间,可以自定义路径,我放在:/root/work/eclipse-workspace

3.9、导入zabbix server源代码

将源代码移至工作区间

cp -rf /root/work/zabbix-4.0.3/   /root/work/eclipse-workspace/

点击Eclipse左上角的File → Import菜单,打开导入源代码工程窗口,选择C/C++ → Existing code as Autotools project,如下图所示:

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第4张图片

点击图中的Next按钮,进入“Import Exiting code”窗口,点击Browse按钮,找到zabbix-4.0.3源码目录的路径,然后再选择C project language选项:

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第5张图片

点击Next按钮,进入编译和调试配置窗口,如图勾选项

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第6张图片

最后点击Finish按钮,完成源代码导入。

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第7张图片

3.10、配置编译参数

右键单击zabbix-4.0.3工程,在右键菜单中选择Properties,打开工程属性窗口,并打开Autotools → Configure Settings:

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第8张图片

在configure 找到Directory specifiers配置项,给安装的目录前缀赋值为/usr/local/Zabbix:

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第9张图片

 

在configure 下找到 Advanced配置项,勾选“Debug (-g)”选项,在附加命令行选项添加编译参数:

--prefix=/usr/local/Zabbix CFLAGS="-g" CXXFLAGS="-g" --enable-server --enable-agent --enable-ipv6 --with-mysql --with-jabber --with-libxml2 --with-unixodbc --with-net-snmp --with-ssh2 --with-openipmi --with-ldap --with-libcurl --with-iconv --with-iconv-include --with-iconv-lib

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第10张图片

点击configure节点,可以看到全部的编译配置:

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第11张图片

配置到这里,最后点击“Apply and Close”按钮保存并结束配置。

右键单击zabbix-4.0.3源码工程,选择Reconfigure Project进行构建项目,构建过程如果提示缺少依赖包,使用yum安装:

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第12张图片

构建成功控制台文末输出“Operation successful”,结果如图:

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第13张图片

右键单击zabbix-4.0.3源码工程,选择Build Project进行编译

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第14张图片

编译成功,控制台文末输出“Build Finished”,在工程的Binaries目录中看到编译得到的二进制文件:zabbix_agentd、zabbix_get、zabbix_sender、zabbix_server

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第15张图片

3.11、启动服务

在Eclipse的菜单栏中访问Run—>Run Configurations...,打开运行配置窗口,在左侧会看到四个zabbix的C/C++ Application:

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第16张图片

在右侧选择Argcuments,然后在Program Argcuments输入框输入配置文件参数值:-c /usr/local/Zabbix/etc/zabbix_server.conf

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第17张图片

配置完成之后,点击窗口中的Run按钮,便可以运行Zabbix Server的后台服务了。在命令行输入:

 pstree zabbix -ap

就能看到server后台的进程

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第18张图片

zabbix agentd启动方法基本一致,要注意在Program Argcuments输入框输入配置文件参数值:-c /usr/local/Zabbix/etc/zabbix_agentd.conf

3.12、安装debuginfo

debuginfo-install OpenIPMI-libs cyrus-sasl-lib glibc gnutls iksemel keyutils krb5-libs libcom_err libcurl libgcc libgcrypt libgpg-error libselinux libssh2 libstdc++ libtasn1 libxml2-2.7.6 net-snmp-libs nspr nss nss-softokn-freebl nss-util openldap openssl unixODBC zlib

yum install ncurses-debuginfo gdbm-debuginfo

3.13、创建GDB初始化脚本

vi /root/work/eclipse-workspace/zabbix-4.0.3/.gdbinit

内容如下:

set schedule-multiple on
set detach-on-fork off
set print thread-events on
handle SIGPIPE nostop

set schedule-multiple on:表示所有进程的所有线程都允许运行。这个选项是必须设置的。
set detach-on-fork off:表示可以同时调试父进程和子进程。
set print thread-events on:表示当GDB发现新的线程启动或退出时,输出调试信息至控制台。
handle SIGPIPE nostop:表示当发生SIGPIPE信号时,当前进程不会停止运行。

.gdbinit文件会在Eclipse的调试器配置时使用。

3.14、调试zabbix_server

如下图所示,打开调试配置窗口:

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第19张图片

调试配置如下图:

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第20张图片

去掉“Stop on startup at main”选项的勾:在main函数的首行不要暂停执行;
GDB debuger:使用gdb命令作为调试器;
GDB command file:使用/root/work/eclipse-workspace/zabbix-4.0.3/.gdbinit文件作为GDB的启动命令文件;
勾选Automatically debug ...:启用多进程GDB,自动调试创建的子进程。

配置完成,点击窗口右下角的Debug按钮,即可调试Zabbix Server,在程序里打断点。

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第21张图片

3.15、调试zabbix_agentd

调试zabbix_agentd与zabbix_server的步骤基本一致。

 

下一篇文章将补充描述对zabbix_get、zabbix_sender的调试方法。(搭建过程如有问题留言没有及时回复的,可加本人微信交流<备注:zabbix>:mooscow)

使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一_第22张图片

转载于:https://my.oschina.net/u/4104428/blog/3027681

你可能感兴趣的:(使用Eclipse搭建zabbix4.0.3 server端C源码开发调试环境之一)