zabbix server端与agent端源码安装 自定义监控项

ZabbixServer的安装(只有源码装zabbix才能装支持java)

 

搭建自定义yum仓库并安装支持包

yum -y install createrepo        #下载依赖关系命令
createrepo rpm               #生成依赖关系
 
vim /etc/yum.repos.d/cccc.repo     #创建yum源指定安装包 
[rpm]
name=rpm
baseurl=file:///root/rpm/
gpgcheck=0
enabled=1

yum -y install pcre pcre-devel zlib-devel libaio libaio-devel libxml2 libxml2-devel bzip2-devel openssl openssl-devel net-snmp-devel net-snmp curl-devel gd gcc gcc-c++ make libjpeg-devel libpng-devel libcurl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker mysql-devel net-snmp-utils
#如果下一步出现问题,请注释掉yum配置文件里的本地光盘源
yum -y install libvpx-devel gd-devel     

编译安装LNMP环境 (编译过程看不懂 看前边博客各项安装)

安装nginx

useradd -s /sbin/nologin -M www            
tar xf nginx-1.10.2.tar.gz -C /usr/src/
cd /usr/src/nginx-1.10.2/
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module && make && make install
ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
cd /usr/local/nginx/conf/
egrep -v "^$|#" nginx.conf.default > nginx.conf

vim nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index index.php index.html index.htm;
        }
        location = /nginx-status {
        stub_status on;
        access_log off;
        }
    location ~ .php$ {
    fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;    
    }    
    }
}

nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

安装mysql

tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz -C /usr/local/
cd /usr/local/
mv mysql-5.5.32-linux2.6-x86_64 mysql
cd mysql/
/bin/cp support-files/my-small.cnf /etc/my.cnf 
useradd -s /sbin/nologin -M mysql
chown -R mysql.mysql data
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld 

/etc/init.d/mysqld start
Starting MySQL.. SUCCESS! 

安装libmcrypt

tar xf libmcrypt-2.5.8.tar.gz -C /usr/src/
cd /usr/src/libmcrypt-2.5.8/
./configure && make && make install

安装GD

tar xf GD-2.18.tar.gz -C /usr/src/
 yum install perl-ExtUtils-Embed -y
cd /usr/src/GD-2.18/ perl Makefile.PL make && make install

安装PHP

tar xf php-5.6.30.tar.gz -C /usr/src/
cd /usr/src/php-5.6.30/
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-bz2 --with-curl --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath
make && make install
cp php.ini-development /usr/local/php/etc/php.ini
vim /usr/local/php/etc/php.ini
  372  max_execution_time = 300
   382  max_input_time = 300
   393  memory_limit = 256M
   660  post_max_size = 32M
   702  always_populate_raw_post_data = -1
   820  upload_max_filesize = 16M
   936  date.timezone =Asia/Shanghai

cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
 149  user = www
 150  group = www

安装zabbix server端

编译安装zabbix服务器

useradd zabbix -s /sbin/nologin -M
tar xf zabbix-3.2.4.tar.gz -C /usr/src/
cd /usr/src/zabbix-3.2.4/
./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --with-libxml2
make && make install
#由于zabbix启动脚本路径默认指向的是/usr/local/sbin路径,因此,需要提前建立软连接:
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
ln -s /usr/local/zabbix/bin/* /usr/local/bin/

配置zabbix的mysql环境

Zabbix服务器和mysql安装到一台服务器上,首先需要手动创建zabbix数据库,操作如下:
mysqladmin -uroot password '123456'
mysql -uroot -p123456 -e 'create database zabbix character set utf8;'
mysql -uroot -p123456 -e "grant all privileges on zabbix.* to zabbix@'localhost' identified by '123456';"
mysql -uroot -p123456 -e 'flush privileges;'
#如下数据的导入顺序不可以错
mysql -uzabbix -p123456 zabbix < /usr/src/zabbix-3.2.4/database/mysql/schema.sql 
mysql -uzabbix -p123456 zabbix < /usr/src/zabbix-3.2.4/database/mysql/images.sql 
mysql -uzabbix -p123456 zabbix < /usr/src/zabbix-3.2.4/database/mysql/data.sql 

安装Zabbix web GUI

  • Zabbix web是php代码编写的,因此需要有php环境,前面已经安装好了lnmp,因此可以直接使用。
  • 默认的nginx安装的根目录为/ usr / local / nginx / html,因此,只需要Zabbix web的代码放到此目录即可。
  • Zabbix web的代码在Zabbix源码包中的frontends / php目录下,将这个php目录拷贝到/ usr / local / nginx / html /目录下并改名zabbix即可完成Zabbix web端的安装。
  • 在浏览器输入http:// IP / zabbix,然后会检查zabbix web运行环境是否满足,并提供连接数据库的相关信息即可,最后将连接数据库相关信息都存入文件zabbix / conf / zabbix.conf。 PHP中,这样就可以登录ZABBIX的网络平台了。
  • 默认的ZABBIX平台登录用户名为管理员,密码为ZABBIX。

复制zabbix web目录到nginx web根目录下

cp -rp /usr/src/zabbix-3.2.4/frontends/php /usr/local/nginx/html/zabbix
cd /usr/local/nginx/html/
chown -R www.www zabbix
ll -d zabbix/
drwxr-xr-x. 13 www www 4096 Feb 27  2017 zabbix/

启动nginx服务及php-fpm

/usr/local/nginx/sbin/nginx 
netstat -antup | grep nginx
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      8439/nginx  
/usr/local/php/sbin/php-fpm 
netstat -antup | grep php-fpm
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      8522/php-fpm 

登录web根据提示生成zabbix.conf.php配置文件

在浏览器输入:IP/zabbix

 

 

 

zabbix server的配置

 zabbix_server.conf配置

通过源码安装方式将zabbix安装到/ usr / local / zabbix下面,zabbix server的配置文件为/usr/local/zabbix/etc/zabbix_server.conf

#将zabbix_server.conf文件内容修改成如下所示:
vim /usr/local/zabbix/etc/zabbix_server.conf
   12  ListenPort=10051           #zabbix server监听端口
    38  LogFile=/tmp/zabbix_server.log  #zabbix server日志路径
    87  DBName=zabbix             #zabbix server连接MySQL数据库的数据库名
   103  DBUser=zabbix             #zabbix server连接MySQL数据库的用户名
   111  DBPassword=123123           #zabbix server连接MySQL数据库的密码
   118  DBSocket=/tmp/mysql.sock       #MySQL的实例文件位置
   136  StartPollers=5            #用于设置zabbix server服务启动时启动Pollers(主动收集数据进程)的数量,数量越多,则服务端吞吐能力越强,同时对系统资源消耗越大
   165  StartTrappers=10            #用于设置zabbix server服务启动时启动Trappers(负责处理Agentd推送过来的数据的进程)的数量。Agentd为主动模式时,zabbix server需要设置这个值大一些。
   181  StartDiscoverers=10         #用于设置zabbix server服务启动时启动Discoverers进程的数量,如果zabbix监控报Discoverers进程忙时,需要提高该值。
   297  ListenIP=0.0.0.0            #zabbix server启动的监听端口对哪些ip开放,Agentd为主动模式时,这个值建议设置为0.0.0.0
   447  AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts 
                        #zabbix server运行脚本存放目录,一些供zabbix server使用的脚本,都可以放在这里。

添加相关服务和端口到系统配置文件

编辑/ etc / services中文件,在最后添加以下代码:

vim /etc/services 
zabbix-agent    10050/tcp       # Zabbix Agent
zabbix-agent    10050/udp       # Zabbix Agent
zabbix-trapper  10051/tcp       # Zabbix Trapper
zabbix-trapper  10051/udp       # Zabbix Trapper

其中,10051是zabbix server的监听端口,10050是zabbix agent的监听端口。

添加管理维护脚本

 从ZABBIX源码包杂项/ init.d /的fedora的/ CORA /目录中找到zabbix_server和zabbix_agentd,然后复制到的/etc/init.d目录下,由于我们的zabbix_agnetd采用转的安装方式,会自动添加启动脚本,所以在此处,我们不进行zabbix_agentd的启动脚本的复制。

cp /usr/src/zabbix-3.2.4/misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_server
chmod +x /etc/init.d/zabbix_server 
chkconfig zabbix_server on

启动zabbix_server端进程

/etc/init.d/zabbix_server start
netstat -antup | grep zabbix_server
tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      9319/zabbix_server 

zabbix_agent的安装与配置

 zabbix agent端的安装建议采用rpm包方式安装,可从http://repo.zabbix.com/zabbix/3.2/下载zabbix的agent端rpm包,版本与zabbix server端保持一致,安装如下:

wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-agent-3.2.4-1.el6.x86_64.rpm
rpm -ivh zabbix-agent-3.2.4-1.el6.x86_64.rpm

安装完成后,zabbix agent端已经安装完成了,zabbix agent端的配置目录位于/ etc / zabbix下,可在此目录进行配置文件的修改。

特别提示:

  • zabbix server的源码包本身就包含了zabbix server端和zabbix agent端,因此,zabbix服务器端无需再安装zabbix agent的rpm包。
  • 然而zabbix agent的rpm包是为了方便在服务器上进行快速安装而设计的快捷安装包。
  • 因此为了统一,监控端和被监控端的zabbix agent我们都用rpm的安装方式

 修改zabbix agent端的配置文件

#将内容修改为如下所示:
vim /etc/zabbix/zabbix_agentd.conf
   13  PidFile=/var/run/zabbix/zabbix_agentd.pid     #进程pid存放路径
    32  LogFile=/var/log/zabbix/zabbix_agentd.log     #zabbix agent日志存放路径
    95  Server=127.0.0.1,192.168.0.220            #指定zabbix server端IP地址
   103  ListenPort=10050                     #指定agentd的监听端口
   120  StartAgents=3                        #指定启动agentd进程数量。设置0表示关闭
   136  ServerActive=192.168.0.220:10051           #启用agnetd主动模式,启动主动模式后,agentd将主动将收集到的数据发送到zabbix server端,Server Active后面指定的IP就是zabbix server端IP
   147  Hostname=192.168.0.220                #需要监控的主机名或者IP地址,agent装在哪写哪的IP
   265  Include=/etc/zabbix/zabbix_agentd.d/            #相关配置都可以放到此目录下,自动生效
   284  UnsafeUserParameters=1                 #启用agent端自定义item功能,设置此参数为1后,就可以使用UserParameter指令了。UserParameter用于自定义item

启动zabbix_agent端进程

/etc/init.d/zabbix-agent start
netstat -antup | grep zabbix_agent
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      1322/zabbix_agentd  
tcp        0      0 :::10050                    :::*                        LISTEN      1322/zabbix_agentd  
chkconfig zabbix-agent on

设置开机自启动

chkconfig mysqld on
chkconfig zabbix_server on

vim
/etc/rc.local
mkdir /var/run/zabbix
chown root:zabbix /var/run/zabbix
chmod 0775 /var/run/zabbix
/usr/local/sbin/nginx
/usr/local/php/sbin/php-fpm
/etc/init.d/zabbix-agent stop

解决zabbix-agent重启无法创建PID问题

mkdir /var/run/zabbix
chown root:zabbix /var/run/zabbix
chmod 0775 /var/run/zabbix

测试zabbix server监控

如何知道zabbix server监控已经生效呢,可通过zabbix server上的zabbix_get命令来完成,在zabbix服务器上执行如下命令即可进行测试:

/usr/local/zabbix/bin/zabbix_get -s 192.168.50.166 -p 10050 -k "system.uptime"
-s 是指定zabbix agent端的IP地址
-p 是指定zabbix agent端的监听端口
-k 是监控项,即item
如果有输出结果,表面zabbix server可以从zabbix agent获取数据,配置成功。

具体操作如下:

#在监控端zabbix_server端进行如下操作
/usr/local/zabbix/bin/zabbix_get -s 192.168.50.166 -p 10050 -k "system.uptime"
1953                   #有数据显示就代表监控正常

自定义一个监控项

在zabbix agent配置文件里定义这个监控项

vim /etc/zabbix/zabbix_agentd.conf 
264 Include=/etc/zabbix/zabbix_agentd.d/       #我们发现zabbix_agentd.d目录已经默认被include进入了主配置文件。

由于zabbix_agentd.conf配置文件默认导入了所有zabbix_agentd.d目录下的内容,因此我们可以将监控项定义到zabbix_agentd.d目录下。

参考模版,自己定义监控项的获取命令

vim /etc/zabbix/zabbix_agentd.d/监控名.conf
UserParameter=MEM,free |awk 'NR==2{print $NF}'
 固定格式  自定义监控key键,  监控命令(查看总内存)
/etc/init.d/zabbix-agent restart

在zabbix server端测试获取自定义的监控项信息

/usr/local/zabbix/bin/zabbix_get -s 192.168.50.166 -p 10050 -k "MEM"
1801368

 

原文地址:https://www.cnblogs.com/ywrj/p/9551324.html