zabbix的安装
简述:
本章介绍Zabbix的安装和配置,这是在一个Server/Agent的架构环境中进行部署的,采用RPM包进行安装(推荐使用此种方法)
环境:
Zabbix服务器运行的环境为Linux+PHP+WebService+DataBase,这里的WebService可以是Nginx、Apache;DataBase可以为MySQL、Oracle、PostgreSQL等。
硬件要求:
环境 平台 CPU/内存 数 据 库 硬盘 监控主机数量 小型 Linux PII 350MHz 256MB SQLite 普通 20 中型 Linux 64 bit AMD Athlon 3200 2GB MySQL InnoDB 普通 500 大型 Linux 64 bit Intel Dual Core 6400 4GB MySQL InnoDB SAS或SSD > 1000 超大型 Linux 64 bit Intel Xeon 2xCPU 8GB MySQL InnoDB SAS或SSD > 10000
准备工作:
时间同步:
Zabbix-Server对时间的精准要求比较高,时间对数据的计算等都有影响,因此,最好设置ntp自动同步时间 。也可以用crontab 进行同步(在实际的生产环境中不推荐这么做),如下所示,使用crontab 进行时间同步,如:
*/30 * * * * /usr/sbin/ntpdate pool.ntp.org
部署:
服务端配置 :(centos6.5)
zabbix server安装 :
采用RPM包安装方式(推荐)
安装Zabbix官方源和epel源:
rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
注意: 由于软件版本的更新,以上链接可能会失效,请读者下载并安装相应的版本。
yum install -y zabbix zabbix-get zabbix-server zabbix-web-mysql zabbix-web zabbix-agent (注意: 由于服务器端也是需要监控的,故这里也一并安装Zabbix-Agent)
注意:yum 安装时,epel源可能会报错,如下:
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
解决方法:vi /etc/yum.repos.d/epel.repo
将所有baseurl行注释去掉
将所有mirrorlist行注释掉
注意 : 安装zabbix的官方yum源后,在执行yum install -y zabbix zabbix-get zabbix-server zabbix-web-mysql zabbix-web zabbix-agent这个命令时会把httpd,mysql,php等相关的软件一并安装(若之前已经安装了httpd,先把之前安装的httpd卸载了: rpm -e httpd --nodeps,不然后面httpd的配置文件会有问题 )
mysql的配置 :
vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8 #设置字符集为utf8
innodb_file_per_table=1 #让innodb的每个表文件单独存储
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
###和上面mysql配置文件的数据是一样的:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8
innodb_file_per_table=1
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid chkconfig mysqld on (启动服务)
service mysqld start
ps -ef | grep mysql (看是否启动)
创建zabbix库:
mysqladmin -uroot password "xxxxx" (设置密码)
mysql -uroot -pxxxxx (登录mysql)
create database zabbix character set utf8;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; (创建zabbix用户并授权)
flush privileges;
注意: 这里容易出现的问题是创建Zabbix的数据库字符集不为utf8,这会导致Web界面切换到中文环境时出现乱码。
导入Zabbix Server的数据库:
mysql -uzabbix -pzabbix (以zabbix用户登录mysql)
use zabbix
source /usr/share/doc/zabbix-server-mysql-X.X.X/create/schema.sql;
注意: 如果安装Zabbix-Proxy,只导入schema.sql即可,无须导入下面的SQL,否则Zabbix-Proxy 无法正常工作。
source /usr/share/doc/zabbix-server-mysql-X.X.X/create/images.sql;
source /usr/share/doc/zabbix-server-mysql-X.X.X/create/data.sql;
show tables;
配置zabbix_server.conf:
mv /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.old (备份原配置文件)
vi /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost #可修改
DBName=zabbix #默认
DBUser=zabbix #默认
DBPassword=zabbix #需修改
DBSocket=/var/lib/mysql/mysql.sock #默认
DBPort=3306 #默认
StartPollers=5
StartIPMIPollers=10
StartPollersUnreachable=10
StartTrappers=10
StartPingers=10
StartDiscoverers=10
VMwareFrequency=60
VMwareCacheSize=8M
SNMPTrapperFile=/var/log/snmptt/snmptt.log
ListenIP=127.0.0.1
MaxHousekeeperDelete=500
CacheSize=256M
StartDBSyncers=40
HistoryCacheSize=128M
TrendCacheSize=128M
HistoryTextCacheSize=128M
ValueCacheSize=128M
Timeout=30
TrapperTimeout=300
UnreachablePeriod=45
UnavailableDelay=60
UnreachableDelay=15
AlertScriptsPath=/etc/zabbix/alertscripts
ExternalScripts=/etc/zabbix/externalscripts
FpingLocation=/usr/sbin/fping
LogSlowQueries=10000
StartProxyPollers=50
ProxyConfigFrequency=3600
###和上面zabbix配置文件数据一样:
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306
StartPollers=5
StartIPMIPollers=10
StartPollersUnreachable=10
StartTrappers=10
StartPingers=10
StartDiscoverers=10
VMwareFrequency=60
VMwareCacheSize=8M
SNMPTrapperFile=/var/log/snmptt/snmptt.log
ListenIP=127.0.0.1
MaxHousekeeperDelete=500
CacheSize=256M
StartDBSyncers=40
HistoryCacheSize=128M
TrendCacheSize=128M
HistoryTextCacheSize=128M
ValueCacheSize=128M
Timeout=30
TrapperTimeout=300
UnreachablePeriod=45
UnavailableDelay=60
UnreachableDelay=15
AlertScriptsPath=/etc/zabbix/alertscripts
ExternalScripts=/etc/zabbix/externalscripts
FpingLocation=/usr/sbin/fping
LogSlowQueries=10000
StartProxyPollers=50
ProxyConfigFrequency=3600 注意: 只需关注红色字部分,这部分为性能参数,需根据实际情况进行调整。默认只需修改DBPassword=zabbix即可
mkdir -p /etc/zabbix/{alertscripts,externalscripts} (创建两个脚本目录,邮件报警和短信报警的脚本都放在这个目录里)
service zabbix-server start (启动zabbix server)
service httpd start
chkconfig zabbix-server on
chkconfig httpd on
防火墙,Selinux和权限的设置:
iptables -P INPUT ACCEPT (注意顺序 ,设置INPUT链默认为全接受)
iptables -F
chkconfig iptables on
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT (很重要,确保可以连接外网)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT (非常重要,确保可以远程登录)
iptables -P INPUT DROP (设置INPUT链默认为全拒绝)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 10051 -j ACCEPT
iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 10050 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables status
注意: 10050是Agent的端口,Agent采用被动方式,Server主动连接Agent的10050端口;10051是Server的端口,Agent采用主动或Trapper方式,会连接Server的10051端口
selinux:直接关闭
php.ini配置文件的设置:
vim /etc/php.ini (注意下面,这个文件不用)
date.timezone = Asia/Shanghai
max_execution_time = 300
post_max_size = 16M
max_input_time=300
memory_limit = 128M
mbstring.func_overload = 2
注意: 在LAMP环境中,可以按上述方式配置PHP的参数,比修改php.ini 更方便。而在Zabbix的官方RPM中,这一步已经配置过了,所以无须修改 。如:
vim /etc/httpd/conf.d/zabbix.conf
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
php_value date.timezone Asia/Shanghai
php_value max_execution_time 300
php_value post_max_size 16M
php_value max_input_time 300
php_value memory_limit 128M
php_value upload_max_filesize 2M
service httpd restart (重启httpd即可)
注意: 如果在后面配置Web时提示任何参数不满足安装配置要求,修改/etc/php.ini文件里对应的参数后重启Httpd 即可
配置web界面:
打开浏览器,输入“http://IP地址/zabbix”
可能会有如下报错:
解决办法:
vi /etc/php.ini
找到date.timezone参数
添加一行
date.timezone = Asia/Shanghai
/etc/init.d/httpd restart (OK)
刷新后如下图:
点击next下一步后,出现如图:
根据上图所示,填写各参数的值
点击Test connection,无错误后,点击next下一步,出现如下图:
如上图:填写相应的值
注意: name参数的值的含义:zabbix在web界面的名称,如下图:
点击next--->next---->finish完成,如下图:
点击finish后,出现登录界面,如下图:
默认的账号是:admin,密码是zabbix
登录后进入zabbix,如下图:
注意: 登录后,可能会出现如下图所示的错误:
解决方法:由上图画圈中发现,localhost的10051端口可能有问题,用telnet进行测试,如下:
由上图发现localhost的10051端口是不通的,而127.0.0.1的10051是通的,修改配置文件zabbix.conf.php
[root@scj ~]# find / -name zabbix.conf.php
/etc/zabbix/web/zabbix.conf.php (找到文件路径)
vi /etc/zabbix/web/zabbix.conf.php
找到下面几行:
将localhost改为127.0.0.1
/etc/init.d/httpd restart (重启httpd)
注意: 刚安装完zabbix后,web界面默认会有installation选项,重新安装zabbix的web界面,如下图:
为了安全我们需要将其去掉,方法如下:
[root@scj ~]# find / -name menu.inc.php
/usr/share/zabbix/include/menu.inc.php (找到文件位置)
vi /usr/share/zabbix/include/menu.inc.php
找到Installation,如下图:
将其注释掉,如下图:
/etc/init.d/httpd restart (重启httpd)
刷新下浏览器,发现没了,如下图:
将web界面的英文改为中文:
对于初学者或者英语水平不是很好的运维人员来说,英文界面可能不是很好,那如何将英文界面改为中文界面呢?方法如下:
1、 在web界面的右上角有个profile选项,如下图:
2、 点击profile,进入如下图所示:
3、 选择Chinese,点击save保存即可
注意: 对于zabbix-2.2版本来说,默认没有Chinese这个选项 (被隐藏了),解决方法如下:
[root@scj ~]# find / -name locales.inc.php
/usr/share/zabbix/include/locales.inc.php (找到文件路径)
vi /usr/share/zabbix/include/locales.inc.php
找到zh_CN,如下图:
将false改为true即可
/etc/init.d/httpd restart (重启httpd)
如下图:
解决中文乱码:
参考:http://blog.chinaunix.net/uid-11121450-id-3296646.html
客户端配置:
注意: Zabbix可以采用Agent/Server的架构,客户端的采集方式分为Agent、SNMP 等,这里采用Agent方式 对客户端服务器进行监控采集数据(推荐)
Zabbix-Agent客户端的安装 :
这里依然采用RPM方式安装(安装Zabbix官方的yum源)
rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
yum -y install zabbix zabbix-agent
防火墙的设置:
iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 10050 -j ACCEPT
selinux:直接关闭
配置zabbix_agentd.conf:
mv /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.old (备份下原配置文件)
vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server =127.0.0.1,192.168.186.130 #被动模式
ServerActive =192.168.186.130:10051 #主动模式
Hostname =Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/
UnsafeUserParameters=1
###和上面zabbix客户端配置文件数据一样
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1,192.168.186.130
ServerActive=192.168.186.130:10051
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/
UnsafeUserParameters=1 注意: 获取数据的方式分为主动模式(ServerActive )和被动模式(Server ),(主动,被动是以agent为中心的) ,如上:server端ip是192.168.186.130,agent端ip是192.168.186.128;主动模式 是指:agent端会主动把数据推送给server端,因此要指定server端ip和监听端口;被动模式 是指:agent端搜集本机相应数据,server端会到agent端获取agent端搜集的数据,所以要指定server端ip(允许哪台机器能连接agent端)
chkconfig zabbix-agent on (启动zabbix agent)
service zabbix-agent start
配置SNMP监控方式:
注意: 因为我们上面已经采用了agent方式监控采集数据,所以snmp这步不需要安装,忽略即可
yum -y install net-snmp
mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.old
vi /etc/snmp/snmpd.conf
com2sec mynetwork 192.168.186.130 public_monitor
com2sec mynetwork 127.0.0.1 public
group MyROGroup v2c mynetwork
access MyROGroup "" any noauth prefix all none none
view all included .1 80
chkconfig snmpd on (启动snmpd)
service snmpd restart
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com