Linux下常用的系统监控软件有Nagios、Cacti、Zabbix、Monit等,这些开源的软件,可以帮助我们更好的管理机器,在第一时间内发现,并警告系统维护人员。
今天开始研究下Zabbix,使用Zabbix的目的,是为了能够更好的监控mysql数据库服务器,并且能够生成图形报表,虽然Nagios也能够生成图形报表,但没有Zabbix这么强大。
首先,我们先来介绍下Zabblx:
一.Zabbix简介
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix由zabbix server与可选组件zabbix agent两部门组成。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。
zabbix的主要特点:
- 学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
等等
Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
官方也提供了安装资料:https://www.zabbix.com/documentation/
搭建ZABBIX准备资源
1、需要服务器是LAMP环境 LNMP
2、主机名和IP要写在HOST文件里
3、iptables 和 selinux 必须关闭 生产环境中防火墙开放端口即可
一、先用最简单的方式搭建lamp环境(yum安装)
yum -y install gcc net-snmp-devel curl-devel OpenIPMI
yum -y install mysql* php* http*
安装完成后再测试web能否访问php页面
先添加php页面
vi /var/www/html/index.php
<?php
phpinfo();
?>
再查看是否有该进程 netstat -anlp|grep :80
使用浏览器访问测试
http://ip地址:端口号
服务端
1、安装LAMP环境及依赖包
yum install -y mysql-server mysql-devel libcurl-devel net-snmp-devel php php-gd php-xml php-mysql php-mbstring php-bcmath httpd gcc c++ gcc-c++ curl-devel xmlrpc
2、添加用户并设置启动项
[root@localhost ~]# groupadd zabbix
[root@localhost ~]# useradd zabbix -g zabbix
[root@localhost ~]# chkconfig httpd on
[root@localhost ~]# chkconfig mysqld on
[root@localhost ~]# chkconfig snmpd on
3、创建数据库,添加用户授权
[root@localhost ~]#
/etc/init.d/mysqld start
mysql> create
database zabbix character set utf8;
mysql> grant all
privileges on zabbix.* to zabbix@localhost identified by '123456';
mysql> grant all
privileges on zabbix.* to zabbix@'%' identified by '123456';
4、编译安装zabbix
[root@localhost ~]#
tar xvf zabbix-3.0.9.tar.gz
[root@localhost ~]#
cd zabbix-3.0.9
[root@localhost zabbix-3.0.9]#
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent
--with-mysql --with-net-snmp --with-libcurl
[root@localhost zabbix-3.0.9]#
make && make install
[root@localhost zabbix-3.0.9]# mysql -uzabbix -p123456 <database/mysql/schema.sql zabbix
[root@localhost
zabbix-3.0.9]# mysql -uzabbix -p123456<database/mysql/images.sql zabbix
[root@localhost zabbix-3.0.9]# mysql -uzabbix -p123456<database/mysql/data.sql zabbix
5、修改配置文件
[root@localhost ~]#
vi /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log #log日志
PidFile=/tmp/zabbix_server.pid #pid
DBName=zabbix #数据库名字
DBUser=zabbix #数据库授权用户
DBPassword=123456 #数据库授权密码
DBSocket=/var/lib/mysql/mysql.sock #数据库sock的文件路径
ListenIP=10.0.8.223 #服务端ip地址
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts #脚本路径
6、拷贝启动文件,修改启动文件,授权等
cp /usr/local/src/zabbix-3.0.9/misc/init.d/fedora/core/zabbix_server
/etc/init.d/zabbix_server
cp
/usr/local/src/zabbix-3.0.9/misc/init.d/fedora/core/zabbix_agentd
/etc/init.d/zabbix_agentd
[root@localhost ~]#
vi /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix
[root@localhost ~]#
vi /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix
[root@localhost ~]# vi /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
[root@localhost
~]# chmod +x /etc/init.d/zabbix_server #执行权限
[root@localhost
~]# chmod +x /etc/init.d/zabbix_agentd #执行权限
[root@localhost
~]# chkconfig zabbix_server on #添加开机启动
[root@localhost
~]# chkconfig zabbix_agentd on #添加开机启动
[root@localhost ~]#
/etc/init.d/iptables stop #关闭防火墙
7、拷贝zabbix安装页,授权等
[root@localhost ~]#
cp -r /usr/local/src/zabbix-3.0.9/frontends/php/ /var/www/html/zabbix
[root@localhost ~]# chown -R zabbix:zabbix /var/www/html/zabbix
[root@localhost ~]# chmod 777 -R /var/www/html/zabbix
8、修改php配置文件
[root@localhost
~]# vi /etc/php.ini #编辑修改
post_max_size
=16M
max_execution_time
=300
max_input_time
=300
date.timezone
= Asia/Shanghai
9、启动zabbix服务
[root@localhost ~]#
/etc/init.d/zabbix_server start #服务端服务
[root@localhost ~]#
/etc/init.d/zabbix_agentd start #客户端服务
[root@localhost ~]#
netstat -ntlp |grep
zabbix #查看服务进程是否启动
10、测试访问
http://ip地址:端口号
客户端安装
[iyunv@zabbix-c1
~]# yum install tree gcc gcc-c++ -y
[root@localhost ~]#
groupadd zabbix
[root@localhost ~]#
useradd zabbix -g zabbix
[root@localhost ~]#
cd /usr/local/src
[root@localhost ~]#
tar zxf zabbix-3.0.9.tar.gz
[root@localhost ~]#
cd zabbix-3.0.9
[root@localhost
zabbix-3.0.9]# ./configure
--prefix=/usr/local/zabbix --enable-agent
[root@localhost
zabbix-3.0.9]# make &&
make install
[root@localhost
zabbix-3.0.9]# cp misc/init.d/fedora/core/zabbix_agentd
/etc/init.d/
[root@localhost
zabbix-3.0.9]# vi
/etc/init.d/zabbix_agentdBASEDIR=/usr/local/zabbix/
[root@localhost
zabbix-2.0.6]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
PidFile=/tmp/zabbix_server.pid #pid
LogFile=/tmp/zabbix_agentd.log #log日志
Server=10.0.8.223 #服务端ip地址
ServerActive=10.0.8.223 #服务端ip地址
Hostname=zabbix_user #服务端主机名
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ #子配置文件
UnsafeUserParameters=1 # #启用自定义key
启动客户端服务:
[iyunv@zabbix-c1
~]# /etc/init.d/zabbix_agentd start #客户端服务
[root@localhost ~]#
netstat -ntlp |grep
zabbix #查看服务进程是否启动
最后 去web上 添加主机
问题:
1、cannot send list of active checks to [127.0.0.1]:
host [Zabbix server] not monitored
在监控中显示Zabbix状态:Zabbix服务端运行中
值是NO(不)
解决方法:
(1)检查端口是否已开启
(2)检查是否已打开防火墙,已打开,请加例外, 或者关闭防火墙
(3)服务端的主机名必须与客户端Hostname一样
(4)关闭SELinux(Security Enhanced Linux[安全加強的 Linux])
gedit /etc/sysconfig/selinux
修改为:SELINUX=disabled