zabbix进程构成
@zabbix_get zabbix工具,单独使用的命令,通常在server或者proxy端执行。用户获取被监控端数据,通常用于排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排除。
@zabbix_sender zabbix工具,用于发送数据给server或者proxy。通常用于耗时比较长的check,并且与trapper配合使用。生存环境中,个别非常耗时间check经常导致zabbix超时。于是在脚本执行完毕之后,使用sender主动提交数据。
@zabbix_proxy 代理守护进程。功能类似于server,唯一不同的是他只是一个中转站,他需要把收集到的数据提交/被提交到server里。一般跨机房地区的环境需要使用proxy
@zabbix_java_gateway zabbix2.0之后引入的一个功能。顾名思义:Java网管,类似agend,但是只是于java方面。需要注意的是,她只能主动去获取数据,数据最终会给到server或者proxy。
@zabbix_agentd 客户端守护进程,收集客户端数据。例如cpu负载,内存,硬盘等使用情况。
@zabbix_server 服务端守护进程。zabbix_get zabbix_sender zabbix_proxy zabbix_java_getway zabbix_agentd的数据最后都要提交到server。ps:大多数情况是server主动去取数据。
安装
软件需求
数据库 MySQL 5.0.3及以上 推荐使用lnnodm引擎 oracle 10g及以上 postgresql 8.1及以上 sqlite3.3.5及以上 IBM db2 9.7及以上
web应用 Apache 1.3.12及以上 PHP 5.3.0及以上
本次是基于lnmp架构
前置需要时间同步 yum install ntp 修改/etc/ntp.conf 最后加入
server 127.127.1.0
fudge 127.127.1.0 stratum 8
其他被监控端安装 yum install ntpdatae 并同步时间 ntpdate serviceip
安装zabbix
tar -zxvf zabbix-3.0.4.tar && cd zabbix-3.0.4 && ./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 && make && make install
可能报错显示checking for mysql_config... no configure: error: MySQL library not found
只需要查找mysql_config文件 在编译时指向硬链接 --with-mysql=XXXXXXXXXX
报错:configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
配置:错误:无效的NET-SNMP目录 - 无法找到NET-SNMP-配置
find / -name net-snmpt-config 没有结果
解决方案:yum install net-snmp-devel,再重新配置
以此类推
zabbix server 一般充当两个角色:server ,angent 需要监控自己 所以上诉命令参数也同时加上了 --enable-agent
创建用户
useradd -g zabbix zabbix
groupadd zabbix
初始化数据库
zabbix server和proxy需要数据库 安根田不需要 尤其注意的是proxy只需要导入一个sql文件 而server要三个sql文件。
初始化proxy的数据库
#mysql -uroot -proot
mysql> create database zabbix default charset utf8;
mysql> grant all privileges on zabbix.* to zabbix@ip地址 identified by 'zabbix' with grant option ;
mysql> quit;
#mysql -uroot -proot zabbix <database/mysql/schema.sql
初始化server的数据库
除了上述一个相同的上去了文件 还要导入下面两个sql文件
#mysql -uroot -proot zabbix <database/mysql/images.sql
#mysql -uroot -proot zabbix <database/mysql/data.sql
配置zabbix
配置zabbix_server配置文件 zabbix源码目录如下
#mkdir /etc/zabbix
#cp config/zabbix_server.conf /etc/zabbix
#vim /etc/zabbiix/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
####
添加zabbix服务 开机启动
# cp zabbix-3.0.3/misc/init.d/fedora/core/zabbix_* /etc/init.d/
# vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix
# vim /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix
# chkconfig zabbix_server on
# chkconfig zabbix_agentd on
启动zabbix server
#/usr/local/zabbix/sbin/zabbix_server
默认端口10051
客户端
tar -zxvf zabbix-3.0.4.tar && cd zabbix-3.0.4 && ./configure --prefix=/usr/local/zabbix/ --enable-agent && make && make install
客户端zabbix配置
#vim /usr/local/zabbix/etc/zabbix-agentd.conf
Server=127.0.0.1
ServerActive=12.0.0.1
Hostname=Zabbix server
其中Server和ServerActive都是指定zabbixserver的IP地址,不同的是前者是被动后者是主动。也就是说server是允许127.0.0.1来读取数据。而ServerActive的127.0.0.1是,客户端主动提交数据给他
其他主机安装客户端要添加zabbix用户
zabbix客户端启动 /usr/local/zabbix/sbin/zabbix_agentd
默认端口10050
zabbix管理网站配置
拷贝前段文件
#mkdir /data/logs/nginx
#mkdir /data/site/monitor.ttlsa.com/zabbix
#cp -rp frontends/php/* /data/site/monitor.ttlsa.com/zabbix
根据自己的web服务配置问价 指向 写入
试验在
mkdir -p /home/wwwroot/default/zabbix
cp -rp frontends/php/* /home/wwwroot/default/zabbix
配置虚拟主机
示例:下列是web服务的配置文件 实验采用的一键安装lnmp 可直接使用
#vim /usr/local/nginx-1.5.8/conf/vhost/monitor.ttlsa.com.conf
server {
listen 80;
server_name monitor.ttlsa.com;
access_log /data/logs/nginx/monitor.ttlsa.com.access.log main;
index index.html index.php .index.html;
root /data/site/monitor.ttlsa.com;
location /
{
try_files $uri/ /index.php?$args;
}
location ~^(.+.php)(.*)${
fastcgi_split_path_info^(.+.php)(.*)$;
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_path_info
}
}
在线配置zabbix
打开web服务域名/zabbix
出现zabbix的安装界面 包括欢迎界面 六步
PHP需求检查
提示缺少什么就装什么 我的配置文件可能没生效 重新查看php.ini文件 并生效source
mysql数据信息
如果报错 the server does not match zabbix database
前段不匹配数据库 可重新导入源码包下的sql文件
#mysqk -uroot -proot zabbix <database/mysql/images.sql
#mysql -uroot -proot zabbix <database/mysql/data.sql
zabbix服务端详细信息
zabbix安装前信息核对列表
缺少一个配置文件 可以手动下载保存在提示的目录下 再次点击Finish 继续安装
如下 显示对用户zabbix@本机 的权限不足不允许使用空密码访问 需要在数据库对zabbix授权
mysql> GRANT ALL PRIVILEGES ON *.* TO zabbix@'%' identified BY 'zabbix'
-> ; grant 权限 on 数据库名.表名 to 用户@登录主机 identified by “用户密码”; 这个操作的结果是,如果已经存在这个用户,就修改其权限为所有,如果没有,就创建之。安装完成
登录zabbix 登陆zabbix,默认用户名:Admin,密码:zabbix
登录密码忘记可在数据库更改
进入数据库查看详细
进库
use zabbix;
查看用户zabbix的详细 密码为md5方式加密
更改密码
mysql> update users set passwd=md5("zabbix") where userid='1';
Query OK, 0 rows affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0登上web界面zabbix服务器端没有运行中 可能是授权问题 mysql写入
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
flush privileges;