Zabbix是一个企业级的、开源的、分布式的监控套件。
Zabbix可以监控网络和服务的监控状况.Zabbix利用灵活的告警机制,允许用户对事件发送基于Email的告警. 这样可以保证快速的对问题作出相应. Zabbix可以利用存储数据提供杰出的报告及图形化方式. 这一特性将帮助用户完成容量规划。
Zabbix支持polling和trapping两种方式. 所有的Zabbix报告都可以通过配置参数在WEB前端进行访问. Web前端将帮助你在任何区域都能够迅速获得你的网络及服务状况. Zabbix可以通过尽可能的配置来扮演监控你的IT基础框架的角色,而不管你是来自于小型组织还是大规模的公司。
进程介绍
默认情况下zabbix包含5个程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,另外一个zabbix_java_gateway是可选,这个需要另外安装。下面来分别介绍下他们各自的作用。
zabbix_agentd
客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等
zabbix_get
zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。
zabbix_sender
zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。
zabbix_server
zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server
备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。
zabbix_proxy
zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。为什么要用代理?代理是做什么的?卖个关子,请继续关注运维生存时间zabbix教程系列。
zabbix_java_gateway
zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy。
安装:
zabbix需要LNMP或者LAMP环境
Linux+Nginx(Apache)+Mysql+Php
1、安装nginx
安装需要的软件包:
安装pcre
为了支持rewrite功能,我们需要安装pcre
[root@slave1 ~]# yum install pcre*
Loaded plugins: aliases, changelog, downloadonly, fastestmirror, kabi, presto, refresh-packagekit, security, tmprepo, verify,
: versionlock
Loading support for CentOS kernel ABI
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* epel: mirrors.aliyun.com
* extras: mirrors.163.com
* updates: mirrors.aliyun.com
安装openssl
需要ssl的支持,如果不需要ssl支持,请跳过这一步
yum install openssl*
安装zlib
cd /usr/local/src
mkdir /usr/local/zlib
tar zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure --prefix=/usr/local/zlib
make
make install
安装nginx
执行如下命令:
./configure --prefix=/usr/local/nginx-1.5.1 \
--with-http_ssl_module --with-http_spdy_module \
--with-http_stub_status_module --with-pcre
--with-zlib
--with-http_stub_status_module:支持nginx状态查询
--with-http_ssl_module:支持https
--with-http_spdy_module:支持google的spdy,想了解请百度spdy,这个必须有ssl的支持
--with-pcre:为了支持rewrite重写功能,必须制定pcre
make && make install
启动nginx:
/usr/local/nginx/sbin/nginx
停止nginx:
/usr/local/nginx/sbin/nginx -s stop
当你有修改配置文件的时候,只需要reload以下即可
/usr/local/nginx/sbin/nginx -s reload
2、安装PHP:
php-5.5.38.tar.gz
安装依赖包
yum install gcc makegd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel –y
编译安装:
cd php-5.5.38
./configure --prefix=/usr/local/php-5.5.0--with-config-file-path=/usr/local/php-5.5.0/etc --with-bz2 --with-curl--enable-ftp --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
make
make instal
配置php:
cpphp.ini-production /usr/local/php-5.5.7/php.ini
cp/usr/local/php-5.5.7/etc/php-fpm.conf.default/usr/local/php-5.5.7/etc/php-fpm.conf
ln -s/usr/local/php/etc/php.ini /etc/php.ini
ln -s/usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf
编辑php-fpm.conf
vi/usr/local/php/etc/php-fpm.conf
user= www #设置php-fpm运行账号为www
group= www #设置php-fpm运行组为www
request_terminate_timeout= 30
pid =run/php-fpm.pid #取消前面的分号
编辑php.ini
vi/usr/local/php/etc/php.ini
post_max_size =16M
max_execution_time =300
max_input_time =300
date.timezone = PRC
启动php-fpm
/usr/local/php-5.5.7/sbin/php-fpm
配置nginx支持php:
vi/usr/local/nginx/conf/nginx.conf
user www www; #首行user去掉注释,修改Nginx运行组为wwwwww;必须与/usr/local/php/etc/php-fpm.conf中的user,group配置相同,否则php运行出错
index index.html index.htmindex.php; #添加index.php
# pass the PHP scriptsto FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; includefastcgi_params;
}
#取消FastCGIserver部分location的注释,注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径
安装mysql:
由于我机器上已经安装了mysql5.6,这里不再安装,直接使用
mysql -u root -p
create database zabbixcharacter set utf8;
grant all on zabbix.*to 'zabbix'@'127.0.0.1' identified by '123456' with grant option;
grant all on zabbix.*to 'zabbix'@'localhost' identified by '123456' with grant option;
flush privileges;
安装zabbix:
zabbix-3.4.1.tar.gz
cd /root/mysql/zabbix/zabbix-3.4.1/database
mysql -u root -p
use zabbix
source /usr/local/src/zabbix-2.2.6/database/mysql/schema.sql#导入脚本文件到zabbix数据库
source /usr/local/src/zabbix-2.2.6/database/mysql/images.sql#导入脚本文件到zabbix数据库
source /usr/local/src/zabbix-2.2.6/database/mysql/data.sql#导入脚本文件到zabbix数据库
cd /usr/lib64/mysql
ln -s libmysqlclient.so.16.0.0libmysqlclient.so #添加软连接
ln -s libmysqlclient_r.so.16.0.0libmysqlclient_r.so #添加软连接
添加用户:
groupadd zabbix
useradd –G zabbix –g zabbix zabbix
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
/sbin/ldconfig
cd /root/mysql/zabbix/zabbix-3.4.1
./configure --prefix=/usr/local/zabbix --enable-server--enable-agent --with-net-snmp --with-libcurl --enable-proxy--with-mysql=/usr/bin/mysql_config
make #编译
make install #安装
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/ #添加系统软连接
ln -s /usr/local/zabbix/bin/* /usr/local/bin/ #添加系统软连接
(这个软连接一定要做,不然会报连接不上mysql的错误)
配置zabbixf服务端:
1、添加zabbix服务对应的端口
vi /etc/services #编辑,在最后添加以下代码
# Zabbix
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
2、修改zabbix服务端配置文件
cd /usr/local/zabbix/etc
vi /usr/local/zabbix/etc/zabbix_server.conf
DBName=zabbix #数据库名称
DBUser=zabbix #数据库用户名
DBPassword=123456 #数据库密码
ListenIP=127.0.0.1 #数据库ip地址
AlertScriptsPath=/usr/local/zabbix/share/zabbix/scripts#zabbix运行脚本存放目录
3、修改代理端配置文件:
vi /usr/local/zabbix/etc/zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
Server=127.0.0.1,192.168.174.133
ServerActive=127.0.0.1,192.168.174.133
Hostname=slave1
UnsafeUserParameters=1 #启用自定义key
4、添加开机启动脚本
cp /usr/local/src/zabbix/misc/init.d/fedora/core/zabbix_server/etc/init.d/zabbix_server #服务端
cp /usr/local/src/zabbix/misc/init.d/fedora/core/zabbix_agentd/etc/init.d/zabbix_agentd #客户端
chmod +x /etc/init.d/zabbix_server #添加脚本执行权限
chmod +x /etc/init.d/zabbix_agentd #添加脚本执行权限
chkconfig zabbix_server on #添加开机启动
chkconfig zabbix_agentd on #添加开机启动
5、修改zabbix开机启动脚本中的zabbix安装目录
vi /etc/init.d/zabbix_server #编辑服务端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安装目录
vi /etc/rc.d/init.d/zabbix_agentd #编辑客户端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安装目录
6、配置web站点
cd /root/mysql/zabbix/zabbix-3.4.1
cp -r /root/mysql/zabbix/zabbix-3.4.1/frontends/php/usr/local/nginx/html/zabbix
chown www.www -R /usr/local/nginx/html/zabbix
备注:/usr/local/nginx/html为Nginx默认站点目录 www为Nginx运行账户
service zabbix_server start #启动zabbix服务端
service zabbix_agentd start #启动zabbix客户端
确定相关服务是否在运行 :
Mysql :
[root@slave1 ~]# mysqladmin -u root -p status
Enter password:
Uptime: 252980 Threads: 24 Questions: 211099 Slow queries: 0 Opens: 261 Flush tables: 2 Open tables: 85 Queries per second avg: 0.834
[root@slave1 ~]# ps -ef|grep nginx
root 2244 1 0 10:07 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
www 2247 2244 0 10:07 ? 00:00:06 nginx: worker process
root 36038 35429 0 17:27 pts/2 00:00:00 grep nginx
[root@slave1 ~]# ps aux|grep php
root 1873 0.0 0.0 202580 536 ? Ss 10:07 0:02 php-fpm: master process (/usr/local/php-5.5.7/etc/php-fpm.conf)
www 34814 0.3 5.1 225848 29908 ? S 17:13 0:03 php-fpm: pool www
www 34896 0.2 5.1 225848 29908 ? S 17:14 0:02 php-fpm: pool www
www 34900 0.2 5.1 225848 29888 ? S 17:14 0:01 php-fpm: pool www
root 36121 0.0 0.1 103276 900 pts/2 S+ 17:28 0:00 grep php
[root@slave1 ~]# ps aux |grep zabbix
zabbix 2258 0.0 0.1 145588 692 ? S 10:07 0:00 zabbix_server -c /etc/zabbix/zabbix_server.conf
zabbix 2271 0.0 0.0 81288 228 ? S 10:07 0:00 zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 2274 0.0 0.0 81288 468 ? S 10:07 0:18 zabbix_agentd: collector [idle 1 sec]
zabbix 2275 0.0 0.1 81288 820 ? S 10:07 0:12 zabbix_agentd: listener #1 [waiting for connection]
zabbix 2276 0.0 0.1 81288 816 ? S 10:07 0:11 zabbix_agentd: listener #2 [waiting for connection]
zabbix 2277 0.0 0.1 81288 920 ? S 10:07 0:11 zabbix_agentd: listener #3 [waiting for connection]
zabbix 2278 0.0 0.0 81296 580 ? S 10:07 0:02 zabbix_agentd: active checks #1 [idle 1 sec]
zabbix 2279 0.0 0.1 81296 600 ? S 10:07 0:02 zabbix_agentd: active checks #2 [idle 1 sec]
zabbix 3865 0.0 0.2 145584 1172 ? S 11:06 0:04 zabbix_server: configuration syncer [synced configuration in 0.030263 sec, idle 60 sec]
zabbix 3866 0.0 0.0 145588 400 ? S 11:06 0:00 zabbix_server: alerter #1 started
zabbix 3867 0.0 0.0 145588 428 ? S 11:06 0:00 zabbix_server: alerter #2 started
zabbix 3868 0.0 0.0 145588 400 ? S 11:06 0:00 zabbix_server: alerter #3 started
zabbix 3869 0.0 0.1 145836 1016 ? S 11:06 0:01 zabbix_server: housekeeper [deleted 0 hist/trends, 0 items, 5 events, 0 sessions, 0 alarms, 0 audit items in 0.070399 sec, idle for 1 hour(s)]
zabbix 3870 0.0 0.1 145716 1084 ? S 11:06 0:01 zabbix_server: timer #1 [processed 3 triggers, 0 events in 0.001423 sec, 0 maintenances in 0.002248 sec, idle 30 sec]
zabbix 3871 0.0 0.1 145580 668 ? S 11:06 0:03 zabbix_server: http poller #1 [got 0 values in 0.001134 sec, idle 5 sec]
zabbix 3872 0.0 0.1 243100 812 ? S 11:06 0:01 zabbix_server: discoverer #1 [processed 0 rules in 0.001855 sec, idle 60 sec]
zabbix 3873 0.0 0.2 145588 1568 ? S 11:06 0:07 zabbix_server: history syncer #1 [synced 0 items in 0.000011 sec, idle 1 sec]
zabbix 3874 0.0 0.2 145588 1564 ? S 11:06 0:07 zabbix_server: history syncer #2 [synced 0 items in 0.000002 sec, idle 1 sec]
zabbix 3875 0.0 0.2 145588 1564 ? S 11:06 0:07 zabbix_server: history syncer #3 [synced 0 items in 0.000012 sec, syncing history]
zabbix 3876 0.0 0.3 145996 1936 ? S 11:06 0:07 zabbix_server: history syncer #4 [synced 0 items in 0.000012 sec, idle 1 sec]
zabbix 3877 0.0 0.1 145580 656 ? S 11:06 0:06 zabbix_server: escalator #1 [processed 0 escalations in 0.002058 sec, idle 3 sec]
zabbix 3878 0.0 0.0 145588 536 ? S 11:06 0:01 zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000007 sec, idle 5 sec]
zabbix 3879 0.0 0.0 145588 476 ? S 11:06 0:02 zabbix_server: self-monitoring [processed data in 0.000011 sec, idle 1 sec]
zabbix 3880 0.0 0.1 145580 676 ? S 11:06 0:02 zabbix_server: task manager [processed 0 task(s) in 0.000786 sec, idle 5 sec]
zabbix 3881 0.0 0.2 244656 1616 ? S 11:06 0:06 zabbix_server: poller #1 [got 1 values in 0.040863 sec, idle 1 sec]
zabbix 3882 0.0 0.2 244704 1640 ? S 11:06 0:06 zabbix_server: poller #2 [got 0 values in 0.000014 sec, idle 1 sec]
zabbix 3883 0.0 0.2 244704 1604 ? S 11:06 0:06 zabbix_server: poller #3 [got 0 values in 0.000018 sec, idle 1 sec]
zabbix 3884 0.0 0.2 244704 1396 ? S 11:06 0:06 zabbix_server: poller #4 [got 0 values in 0.000014 sec, idle 1 sec]
zabbix 3885 0.0 0.2 244564 1200 ? S 11:06 0:06 zabbix_server: poller #5 [got 0 values in 0.000025 sec, idle 1 sec]
zabbix 3886 0.0 0.2 244612 1252 ? S 11:06 0:02 zabbix_server: unreachable poller #1 [got 0 values in 0.000014 sec, idle 5 sec]
zabbix 3887 0.0 0.1 145616 796 ? S 11:06 0:00 zabbix_server: trapper #1 [processed data in 0.005566 sec, waiting for connection]
zabbix 3888 0.0 0.1 145616 792 ? S 11:06 0:00 zabbix_server: trapper #2 [processed data in 0.002962 sec, waiting for connection]
zabbix 3889 0.0 0.1 145616 800 ? S 11:06 0:00 zabbix_server: trapper #3 [processed data in 0.002406 sec, waiting for connection]
zabbix 3890 0.0 0.1 145616 980 ? S 11:06 0:00 zabbix_server: trapper #4 [processed data in 0.006011 sec, waiting for connection]
zabbix 3891 0.0 0.1 145616 800 ? S 11:06 0:00 zabbix_server: trapper #5 [processed data in 0.003363 sec, waiting for connection]
zabbix 3892 0.0 0.0 147024 508 ? S 11:06 0:01 zabbix_server: icmp pinger #1 [got 0 values in 0.000009 sec, idle 5 sec]
zabbix 3893 0.0 0.1 145588 772 ? S 11:06 0:09 zabbix_server: alert manager #1 [sent 0, failed 0 alerts, idle 5.014333 sec during 5.014336 sec]
zabbix 3894 0.0 0.2 146268 1652 ? S 11:06 0:05 zabbix_server: preprocessing manager #1 [queued 0, processed 5 values, idle 5.076348 sec during 5.077080 sec]
zabbix 3895 0.0 0.0 145548 516 ? S 11:06 0:00 zabbix_server: preprocessing worker #1 started
zabbix 3896 0.0 0.0 145588 396 ? S 11:06 0:00 zabbix_server: preprocessing worker #2 started
zabbix 3897 0.0 0.0 145548 512 ? S 11:06 0:00 zabbix_server: preprocessing worker #3 started
root 36192 0.0 0.1 103276 896 pts/2 S+ 17:29 0:00 grep zabbix
登录web配置zabbix :
http://192.168.174.133zabbix/setup.php