标签:
一.Zabbix简介
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix由zabbix server与可选组件zabbix agent两部门组成。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。
zabbix的主要特点:
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
等等
Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
官方也提供了安装资料:http://www.zabbix.com/wiki/howto/monitor
本例采用PRM包安装方式,该方式交简介。
安装环境:
系统:CentOS release 6.8
地址:server 192.168.2.200
agent 192.168.2.201
二、Zabbix-server服务器端的安装:
1、安装zabbix官方源
1 [root@lys1 ~]# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm 2 Retrieving http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm 3 Preparing... ########################################### [100%] 4 package zabbix-release-2.4-1.el6.noarch is already installed 5 [root@lys1 ~]#
2、安装zabbix-server
由于服务端也是需要监控的,故这里也一并安装zabbix-agent
1 [root@lys1 ~]# yum -y install zabbix zabbix-get zabbix-server zabbix-web-mysql zabbix-web zabbix-agent 2 已加载插件:fastestmirror 3 设置安装进程 4 Loading mirror speeds from cached hostfile 5 ... ... 6 已安装: 7 zabbix-get.x86_64 0:2.4.8-1.el6 zabbix-server.x86_64 0:2.4.8-1.el6 zabbix-web.noarch 0:2.4.8-1.el6 zabbix-web-mysql.noarch 0:2.4.8-1.el6 8 9 作为依赖被安装: 10 OpenIPMI-libs.x86_64 0:2.0.16-14.el6 dejavu-fonts-common.noarch 0:2.33-1.el6 dejavu-sans-fonts.noarch 0:2.33-1.el6 fontpackages-filesystem.noarch 0:1.41-1.1.el6 fping.x86_64 0:2.4b2-16.el6 freetype.x86_64 0:2.3.11-17.el6 11 iksemel.x86_64 0:1.4-2.el6 libX11.x86_64 0:1.6.3-2.el6 libX11-common.noarch 0:1.6.3-2.el6 libXau.x86_64 0:1.0.6-4.el6 libXpm.x86_64 0:3.5.10-2.el6 libxcb.x86_64 0:1.11-2.el6 12 libxslt.x86_64 0:1.1.26-2.el6_3.1 lm_sensors-libs.x86_64 0:3.1.1-17.el6 net-snmp.x86_64 1:5.5-57.el6_8.1 net-snmp-libs.x86_64 1:5.5-57.el6_8.1 php.x86_64 0:5.3.3-48.el6_8 php-bcmath.x86_64 0:5.3.3-48.el6_8 13 php-cli.x86_64 0:5.3.3-48.el6_8 php-common.x86_64 0:5.3.3-48.el6_8 php-gd.x86_64 0:5.3.3-48.el6_8 php-mbstring.x86_64 0:5.3.3-48.el6_8 php-mysql.x86_64 0:5.3.3-48.el6_8 php-pdo.x86_64 0:5.3.3-48.el6_8 14 php-xml.x86_64 0:5.3.3-48.el6_8 unixODBC.x86_64 0:2.2.14-14.el6 zabbix-server-mysql.x86_64 0:2.4.8-1.el6 15 16 完毕! 17 [root@lys1 ~]#
3.安装mysql数据库服务(web、php在上条命令中已安装)
1 [root@lys1 ~]# yum -y install mysql-server 2 已加载插件:fastestmirror 3 设置安装进程 4 ... ... 5 已安装: 6 mysql-server.x86_64 0:5.1.73-7.el6 7 8 作为依赖被安装: 9 mysql.x86_64 0:5.1.73-7.el6 perl-DBD-MySQL.x86_64 0:4.013-3.el6 10 11 完毕! 12 [root@lys1 ~]#
修改MySQL配置文件如下
1 [root@lys1 ~]# vim /etc/my.cnf 2 [mysqld] 3 datadir=/var/lib/mysql 4 socket=/var/lib/mysql/mysql.sock 5 user=mysql 6 # Disabling symbolic-links is recommended to prevent assorted security risks 7 symbolic-links=0 8 9 character-set-server=utf8 #设置字符集为utf8 10 innodb_file_per_table=1 #让innodb的每个表文件单独存储 11 12 [mysqld_safe] 13 log-error=/var/log/mysqld.log 14 pid-file=/var/run/mysqld/mysqld.pid
启动MySQL服务
1 [root@lys1 ~]# chkconfig mysqld on 2 [root@lys1 ~]# service mysqld start 3 初始化 MySQL 数据库: WARNING: The host ‘lys1‘ could not be looked up with resolveip. 4 This probably means that your libc libraries are not 100 % compatible 5 ... ... 6 Please report any problems with the /usr/bin/mysqlbug script! 7 8 [确定] 9 正在启动 mysqld: [确定] 10 [root@lys1 ~]#
4、创建zabbix的数据库
设置MySQL的root用户密码。
1 [root@lys1 ~]# mysqladmin -uroot password admin 2 [root@lys1 ~]# mysql -uroot -padmin 3 mysql> create database zabbix character set utf8; 4 Query OK, 1 row affected (0.01 sec) 5 mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabbix‘; 6 Query OK, 0 rows affected (0.00 sec)
(注意:创建zabbix的数据库字符集不为utf8会导致web界面切换到中文环境时出现乱码)
5、导入zabbix-server的数据库
1 [root@lys1 ~]# mysql -uzabbix -pzabbix 2 mysql> use zabbix; 3 Database changed 4 mysql> source /usr/share/doc/zabbix-server-mysql-2.4.8/create/schema.sql;
需要注意的是,如果zabbix-proxy,只导入schema.sql即可,无需导入下面的sql,否则zabbix-proxy无法正常工作。
1 mysql> source /usr/share/doc/zabbix-server-mysql-2.4.8/create/images.sql; 2 mysql> source /usr/share/doc/zabbix-server-mysql-2.4.8/create/data.sql; 3 mysql> show tables; 4 +-----------------------+ 5 | Tables_in_zabbix | 6 +-----------------------+ 7 | acknowledges | 8 | actions | 9 | alerts | 10 | application_template | 11 | applications | 12 ... ...
6、配置zabbix_server.conf
1 [root@lys1 ~]# vim /etc/zabbix/zabbix_server.conf 2 DBHost=localhost #可修改 3 DBName=zabbix #默认 4 DBUser=zabbix #默认 5 DBPassword=zabbix #需修改 6 StartPollers=5 7 CacheSize=256M
以上参数需根据实际情况进行调整。默认只需修改DBPassword=zabbix即可。
1 [root@lys1 ~]# mkdir /etc/zabbix/{alertscripts,externalscripts}
7、启动zabbix-server服务
1 [root@lys1 ~]# service zabbix-server start 2 Starting Zabbix server: [确定] 3 [root@lys1 ~]# service httpd start 4 正在启动 httpd:httpd: apr_sockaddr_info_get() failed for lys1 5 httpd: Could not reliably determine the server‘s fully qualified domain name, using 127.0.0.1 for ServerName 6 [确定] 7 [root@lys1 ~]# chkconfig zabbix-server on 8 [root@lys1 ~]# chkconfig httpd on 9 [root@lys1 ~]#
8、防火墙设置
1 [root@lys1 ~]# vim /etc/sysconfig/iptables 2 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 3 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 4 -A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT 5 -A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT 6 -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT
上述代码中,10050是agent的端口,agent采用被动方式,server主动连接agent的10050端口;10051是server的端口,agent采用主动或trapper的方式,会连接server的10051端口。
9、selinux的设置
1 [root@lys1 ~]# chcon -R -t httpd_sys_content_rw_t /usr/share/zabbix/conf 2 [root@lys1 ~]# setsebool -P httpd_can_network_connect=true 3 [root@lys1 ~]# semanage port -a -t http_port_t -p tcp 10051
如果对selinux不是特别的熟悉,可以选择关闭selinux。在实际的生产环境中,大部分用户也是选择关闭selinux的。
1 [root@lys1 ~]# setenforce 0 #设置为警告模式,只给出提示,不会阻止 #操作,不用重启服务器即生效。 2 [root@lys1 ~]#getenforce #获取当前selinux的运行状态 3 【Enforcing|Permissive|Disabled】
直接关闭selinux的方法
[root@lys1 ~]# getenforce vim /etc/selinux/config
SELINUX=disabled
注意:此种方式需要重启服务器才能生效。
10、php.ini配置文件的设置
1 [root@lys1 ~]# vim /etc/php.ini 2 date.timezone = Asia/Shanghai 3 max_execution_time = 300 4 max_input_time = 300 5 memory_limit = 128M 6 post_max_size = 16M 7 mbstring.func_overload = 2
[root@lys1 ~]# vim /etc/httpd/conf.d/zabbix.conf <IfModule mod_php5.c> php_value date.timezone Asia/Shanghai php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 # php_value date.timezone Europe/Riga </IfModule> </Directory> [root@lys1 ~]# service httpd restart 停止 httpd: [确定] 正在启动 httpd:httpd: apr_sockaddr_info_get() failed for lys1 httpd: Could not reliably determine the server‘s fully qualified domain name, using 127.0.0.1 for ServerName [确定] [root@lys1 ~]#
三、配置web界面
打开浏览器,输入http://192.168.2.200/zabbix会出现如下图:
按next
提示 PHP mbstring.func_overload fail
查看官方文档说是要关闭 php配置文件的mbstring.func_overload。。。
1 [root@lys1 ~]# vim /etc/php.ini 2 #mbstring.func_overload = 2 3 [root@lys1 ~]# service httpd restart 4 停止 httpd: [确定] 5 正在启动 httpd:httpd: apr_sockaddr_info_get() failed for lys1 6 httpd: Could not reliably determine the server‘s fully qualified domain name, using 127.0.0.1 for ServerName 7 [确定] 8 [root@lys1 ~]#
顺利通过,继续next
配置mysql信息,单击 test connection 按钮测试数据库是否正常连接,显示 ok 继续 next
(注意:如果zabbix-sever在其他机器中,这里的host填写zabbix-server所在的机器ip)
确认信息后,继续 next
配置完成提示 ok 点finish
进入登录界面,默认账户是Admin,密码是zabbix,登录:
web配置完成。
如果提示不能正常运行,分别检查zabbix_server.conf中的各项配置文件、selinux、iptables等。
四、安装zabbix-agent客户端
1、安装zabbix官方的yum源
1 [root@lys2 ~]# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm 2 Retrieving http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm 3 warning: /var/tmp/rpm-tmp.Q7fTlA: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY 4 Preparing... ########################################### [100%] 5 1:zabbix-release ########################################### [100%] 6 [root@lys2 ~]# yum -y install zabbix zabbix-agent 7 已加载插件:fastestmirror 8 设置安装进程 9 Determining fastest mirrors 10 ... ... 11 已安装: 12 zabbix.x86_64 0:2.4.8-1.el6 zabbix-agent.x86_64 0:2.4.8-1.el6 13 14 完毕! 15 [root@lys2 ~]#
2、防火墙设置
1 [root@lys2 ~]# vim /etc/sysconfig/iptables 2 -A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT 3 -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT 4 [root@lys2 ~]# service iptables restart 5 iptables:将链设置为政策 ACCEPT:filter [确定] 6 iptables:清除防火墙规则: [确定] 7 iptables:正在卸载模块: [确定] 8 iptables:应用防火墙规则: [确定] 9 [root@lys2 ~]#
3、配置zabbix_agentd.conf
1 [root@lys2 ~]# vim /etc/zabbix/zabbix_agentd.conf 2 Server=127.0.0.1,192.168.2.200 #被动模式,zabbix-server的ip 3 ServerActive=192.168.2.200:10051 #主动模式 4 Hostname=zabbix agent1 5 [root@lys2 ~]# chkconfig zabbix-agent on 6 [root@lys2 ~]# service zabbix-agent start 7 Starting Zabbix agent: [确定] 8 [root@lys2 ~]#
五、在zabbix-server上添加主机zabbix-agent,验证zabbix-server是否能监控到zabbix-agent
显示正常监控状态,zabbix搭建完成。
标签:
原文地址:http://www.cnblogs.com/liuyisai/p/5904414.html