dream789 发表于 2019-1-17 12:41:48

zabbix管理二之zabbix的安装

     zabbix的安装
  

  

  

  简述:
  本章介绍Zabbix的安装和配置,这是在一个Server/Agent的架构环境中进行部署的,采用RPM包进行安装(推荐使用此种方法)
  

  

  环境:
  Zabbix服务器运行的环境为Linux+PHP+WebService+DataBase,这里的WebService可以是Nginx、Apache;DataBase可以为MySQL、Oracle、PostgreSQL等。
  

  

  硬件要求:
环境平台CPU/内存数 据 库硬盘监控主机数量小型LinuxPII 350MHz 256MBSQLite普通20中型Linux 64 bitAMD Athlon 3200 2GBMySQL InnoDB普通500大型Linux 64 bitIntel Dual Core 6400 4GBMySQL InnoDBSAS或SSD> 1000超大型Linux 64 bitIntel Xeon 2xCPU 8GBMySQL InnoDBSAS或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
  
  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的每个表文件单独存储
  
  log-error=/var/log/mysqld.log
  pid-file=/var/run/mysqld/mysqld.pid
###和上面mysql配置文件的数据是一样的:

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

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”
  可能会有如下报错:
http://s3.运维网.com/wyfs02/M00/6B/DB/wKiom1U4bWrhDunOAANSwrRHpHE441.jpg
  解决办法:
  vi /etc/php.ini
  找到date.timezone参数
  添加一行
  date.timezone = Asia/Shanghai
  /etc/init.d/httpdrestart               (OK)
  

  刷新后如下图:
http://s3.运维网.com/wyfs02/M02/6B/DB/wKiom1U4bO6D_UKhAAMSf2z5Q_Y862.jpg
  点击next下一步后,出现如图:
http://s3.运维网.com/wyfs02/M01/6B/D7/wKioL1U4byHDVyDjAAHszGAKUcg193.jpg
  根据上图所示,填写各参数的值

  

  

  点击Test connection,无错误后,点击next下一步,出现如下图:

http://s3.运维网.com/wyfs02/M01/6B/DB/wKiom1U4bjng6fhLAAG15MFL7zs200.jpg
  如上图:填写相应的值

   注意:name参数的值的含义:zabbix在web界面的名称,如下图:
http://s3.运维网.com/wyfs02/M02/6B/DB/wKiom1U4btihwHARAABpjxopmPM946.jpg
  

  

  点击next--->next---->finish完成,如下图:

http://s3.运维网.com/wyfs02/M00/6B/DB/wKiom1U4bz-ThcPJAAFtXvXxaqw466.jpg
  

  

  点击finish后,出现登录界面,如下图:
http://s3.运维网.com/wyfs02/M00/6B/D9/wKioL1U4h-Hw-PEhAAFTEUkbb7A027.jpg
  默认的账号是:admin,密码是zabbix
  

  

  登录后进入zabbix,如下图:
http://s3.运维网.com/wyfs02/M02/6B/D9/wKioL1U4iGOQhRytAALfzep84lg501.jpg
  

  

  注意:登录后,可能会出现如下图所示的错误:
http://s3.运维网.com/wyfs02/M02/6B/DD/wKiom1U4iADiztY1AAFfcKpLV9I255.jpg
  解决方法:由上图画圈中发现,localhost的10051端口可能有问题,用telnet进行测试,如下:
http://s3.运维网.com/wyfs02/M00/6B/D9/wKioL1U4ieiT3ahtAAEYuuIDIrA878.jpg
  由上图发现localhost的10051端口是不通的,而127.0.0.1的10051是通的,修改配置文件zabbix.conf.php
  # find / -name zabbix.conf.php
  /etc/zabbix/web/zabbix.conf.php       (找到文件路径)
  vi /etc/zabbix/web/zabbix.conf.php
  找到下面几行:
http://s3.运维网.com/wyfs02/M02/6B/DD/wKiom1U4ii-jtipUAADO6j4yIHE632.jpg
  将localhost改为127.0.0.1
  /etc/init.d/httpd restart         (重启httpd)
  

  

   注意:刚安装完zabbix后,web界面默认会有installation选项,重新安装zabbix的web界面,如下图:
http://s3.运维网.com/wyfs02/M02/6B/E1/wKiom1U4vnyQURC1AAEZDrECPkY562.jpg
  为了安全我们需要将其去掉,方法如下:
  # find / -name menu.inc.php
  /usr/share/zabbix/include/menu.inc.php   (找到文件位置)
  vi /usr/share/zabbix/include/menu.inc.php
  找到Installation,如下图:
http://s3.运维网.com/wyfs02/M00/6B/DE/wKioL1U4wSGRZOUaAACp3xdz3ag568.jpg
  将其注释掉,如下图:
http://s3.运维网.com/wyfs02/M02/6B/E1/wKiom1U4wCiC6skLAACK2FNsKeE982.jpg
  /etc/init.d/httpd restart         (重启httpd)
  刷新下浏览器,发现没了,如下图:

http://s3.运维网.com/wyfs02/M00/6B/DE/wKioL1U4wezzZnpcAAFrM5qPcL0129.jpg
  

  

  将web界面的英文改为中文:
  对于初学者或者英语水平不是很好的运维人员来说,英文界面可能不是很好,那如何将英文界面改为中文界面呢?方法如下:
  1、 在web界面的右上角有个profile选项,如下图:
http://s3.运维网.com/wyfs02/M02/6B/E2/wKiom1U4wj3Dro3VAABsODfNuu0081.jpg
  2、 点击profile,进入如下图所示:
http://s3.运维网.com/wyfs02/M02/6B/DE/wKioL1U4w_CCWtqKAAGww9mZMaQ433.jpg
  3、 选择Chinese,点击save保存即可

   注意:对于zabbix-2.2版本来说,默认没有Chinese这个选项 (被隐藏了),解决方法如下:
  # find / -name locales.inc.php
  /usr/share/zabbix/include/locales.inc.php   (找到文件路径)
  vi /usr/share/zabbix/include/locales.inc.php
  找到zh_CN,如下图:                                 
http://s3.运维网.com/wyfs02/M00/6B/E2/wKiom1U4xEeiZNIRAAFeZD9yr3c191.jpg
                                   将false改为true即可

                                /etc/init.d/httpd restart         (重启httpd)
                                       如下图:
  
http://s3.运维网.com/wyfs02/M00/6B/E1/wKioL1U5n5DCFLjLAAKAgVMM-EA561.jpg
  

  

  解决中文乱码:

  参考: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]
查看完整版本: zabbix管理二之zabbix的安装