设为首页 收藏本站
查看: 1658|回复: 0

[经验分享] zabbix企业级分布式监控系统--zabbix-server和zabbix-agent的配置过程

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-11 09:08:52 | 显示全部楼层 |阅读模式
首先,大家应该了解一下,什么是zabbix?
       Zabbix是一个分布式监控系统,支持多种采集方式和采集客户端,有专用的Agent(代理),也可以支持SNMP、IPMI、JMX、Telnet、SSH等多种协议,它将采集到的数据存放到数据库,然后对其进行分析整理,达到条件触发告警。其灵活的扩展性和丰富的功能是其他监控系统不能比的。相对来说,他的总体功能做得非常优秀,其界面也很简洁美观。
       在国内,BAT的部分业务、豆瓣、58同城、PPTV、搜狐、Letv、人人、网易、小米、360等公司都在使用Zabbix。
       Zabbix适合中小型企业、大中型企业的用户使用。单个Server节点可以支持上万台设备,每秒可以处理1.5万次请求,理论上可以支持5万台设备。
       Zabbix自身的定位是中型企业和大型企业,如果在特大型环境中使用,需要解决大并发、大压力的问题,这对使用者提出了更高的要求。
       Zabbix的通用架构是C/S架构,分布式架构为C/P/S或C/N/S,Zabbix-Server将采集到的数据持久地存储到数据库中,用前端的UI友好地展示给用户。
       下面是Zabbix的架构图,可以更直观的帮助初学者理解Zabbix的原理及各部分的作用
wKiom1ZBdT2ySZ_tAACKFpQ_Shc032.jpg
下面介绍Zabbix的安装和配置
       安装环境描述:Zabbix服务器的运行环境为Linux(Unix)+PHP+Web Service+Database,这里的Web Service可以为Nginx、Apache,Database可以为MySQL、Oracle、PostgreSQL等。
       其次,还有一点需要注意的是时间同步。Zabbix-Server对时间的精准要求比较高,时间对数据的计算等都有影响,因此,最好设置NTP自动同步时间。也可以用crontab进行同步(实际的生产环境中不推荐这么做),如下所示,使用crontab进行时间同步。
1
*/30    *    *    *    *     /usr/sbin/ntpdate    pool.ntp.org



       最后一点,部署环境的考虑。Zabbix-Server尽量部署在核心业务所在的机房,要求到各分节点的网络稳定。另外,要考虑到网络流量的问题,做好安全策略。
(一)Zabbix-Server服务器端的安装
       注意:下面以CentOS6.5_X64为例介绍如何安装Zabbix-Server服务器端。本例采用的是RPM包安装方式,这也是我比较推荐的方式,该方式较简介。源码安装的方式我会在在下次文章中介绍。
       准备好CentOS6.5_X64系统,配置IP地址,确保与互联网连接正常。进入系统,测试网路,方法如下:
1
2
3
4
5
6
7
8
9
10
[iyunv@zabbix-server ~]# ping -c 4 www.baidu.com
PING www.a.shifen.com (119.75.218.70) 56(84) bytes of data.
64 bytes from 119.75.218.70: icmp_seq=1 ttl=54 time=3.31 ms
64 bytes from 119.75.218.70: icmp_seq=2 ttl=54 time=6.31 ms
64 bytes from 119.75.218.70: icmp_seq=3 ttl=54 time=10.5 ms
64 bytes from 119.75.218.70: icmp_seq=4 ttl=54 time=4.16 ms

--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 12023ms
rtt min/avg/max/mdev = 3.313/6.078/10.530/2.793 ms



        1. 安装Zabbix官方源和epel源,如下所示:
1
[iyunv@zabbix-server ~]# rpm -ivh http://repo.zabbix.com/zabbix/2. ... .0-1.el6.noarch.rpm



1
[iyunv@zabbix-server ~]# rpm -ivh  http://dl.fedoraproject.org/pub/ ... ease-6-8.noarch.rpm



注意:由于软件版本更新,以上链接可能会失效,请读者下载并安装相应的版本。
        2. 安装服务器端(注意:由于服务器端也是需要监控的,股这里也一并安装Zabbix-Agent,如下所示。)
1
[iyunv@zabbix-server ~]# yum -y install zabbix zabbix-get zabbix-server zabbix-web-mysql zabbix-web  zabbix-agent



        安装可以看到,yum方式安装并没有自动安装mysql-server。
        注意:由于RHEL系统(Cent OS不存在这个问题)缺少php-bcmath和php-mbstring这两个包,会导致Web页面的安装提示缺少组件,所以读者可以在Cent OS源中下载这两个包安装即可(注意与系统版本对应)。
1
http://vault.centos.org/



        3. 安装MySQL数据库服务,命令如下:
1
[iyunv@zabbix-server ~]# yum -y install mysql-server



修改MySQL配置文件如下(*星号标记部分很重要)
1
2
3
4
5
6
7
8
9
10
11
12
13
[iyunv@zabbix-server ~]# 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    *
innodb_file_per_table=1      *

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid



启动服务。
1
2
[iyunv@zabbix-server ~]# chkconfig mysqld on
[iyunv@zabbix-server ~]# service mysqld start



查看服务是否启动成功,如下所示:
1
2
3
4
5
6
[iyunv@zabbix-server ~]# ps -ef | grep mysql
root       1199      1  0 09:56 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql      1307   1199  0 09:56 ?        00:00:29 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
root       4503   2691  0 14:09 pts/4    00:00:00 grep mysql
[iyunv@zabbix-server ~]# netstat -nlput | grep 3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      1307/mysqld



        3.1 创建Zabbix的数据库
设置MySQL的root用户密码。
1
2
3
4
5
[iyunv@zabbix-server ~]# mysqladmin -uroot password admin
[iyunv@zabbix-server ~]# mysql -uroot -padmin
mysql> create database zabbix character ser utf8;
mysql> grant all privileges on zabbix.* to zabbix@localhost indentified by 'zabbix';
mysql> flush privileges;



        注意:这里容易出现的问题是创建Zabbix的数据库字符集不为utf,这会导致Web界面切换到中文环境时出现乱码。
        3.2 导入Zabbix-Server的数据库
1
2
3
[iyunv@zabbix-server ~]# mysql -uzabbix -pzabbix
mysql> use zabbix;
mysql> source /usr/share/doc/zabbix-server-mysql-2.0.15/create/schema.sql;



需要注意的是,如果安装Zabbix-Proxy,只导入schema.sql即可,无须导入下面的SQL,否则Zabbix-Proxy无法正常工作。
1
2
3
mysql> source /usr/share/doc/zabbix-server-mysql-2.0.15/create/images.sql;
mysql> source /usr/share/doc/zabbix-server-mysql-2.0.15/create/data.sql;
mysql> show tables;



        3.3 配置 Zabbix_server.conf
配置zabbix_server.conf文件如下。
3.3.1 修改参数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[iyunv@zabbix-server ~]# egrep -v "(^#|^$)" /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
SNMPTrapperFile=/var/log/snmptt/snmptt.log
ListenIP=127.0.0.1
MaxHousekeeperDelete=500
CacheSize=256M                                        *
StartDBSyncers=40
HistoryCacheSize=128M
TrendCacheSize=128M
HistoryTextCacheSize=128M
Timeout=30
TrapperTimeout=300
UnreachablePeriod=45
UnavailableDelay=60
UnreachableDelay=15
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/sbin/fping
LogSlowQueries=10000
StartProxyPollers=50
ProxyConfigFrequency=3600



以上参数只需关注*星号标记的部分,这部分为性能参数,需根据实际情况进行调整。默认只需修改DBPassword=zabbix 即可。
1
[iyunv@zabbix-server ~]# mkdir /etc/zabbix/alertscripts    /etc/zabbix/externalscripts



3.3.2 启动Zabbix-Server服务
1
[iyunv@zabbix-server ~]# service zabbix-server start



1
[iyunv@zabbix-server ~]# service httpd start



1
[iyunv@zabbix-server ~]# chkconfig zabbix-server on



1
[iyunv@zabbix-server ~]# chkconfig httpd on



        3.4 防火墙、Selinux和权限的设置
1) 防火墙设置
1
2
3
4
5
6
7
[iyunv@zabbix-server ~]# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT
-A OUTPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT
#-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT
[iyunv@zabbix-server ~]# service iptables restart



上述代码中,10050是Agent的端口,Agent采用被动方式,Server主动连接Agent的10050端口;10051是Server的端口,Agent采用主动或Trapper方式,会连接Server的10051端口。
2) Selinux的设置
如果开启Selinux,安装时提示不能写入文件,出文件权限不是Web用户外,还有一个原因是Selinux默认不允许写入文件,设置语句如下:
1
[iyunv@zabbix-server ~]# chcon -R -t httpd_sys_content_rw_t  /usr/share/zabbix/conf



1
[iyunv@zabbix-server ~]# setsebool -P httpd_can_network_connect=true



1
[iyunv@zabbix-server ~]# semanage  port -a -t http_port_t  -p tcp 10051



如果读者对Selinux不是特别熟悉,可以选择关闭Selinux。在实际的生产环境中,大部分用户也是选择关闭Selinux的。
1
2
[iyunv@zabbix-server ~]# setenforce 0  #设置为警告模式,只给出提示,不会阻止操作,不用重启
                                      #服务器即生效



1
[iyunv@zabbix-server ~]# getenforce    #获取当前Selinux的运行状态



直接关闭Selinux的方法。
1
2
[iyunv@zabbix-server ~]# vim /etc/selinux/config
SELINUX=disabled



注意:此种方法需要重启服务器才能生效。
3) php.ini配置文件的设置
1
2
3
4
5
6
7
[iyunv@zabbix-server ~]# 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中,这一步已经配置过了,所以无须修改。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[iyunv@zabbix-server ~]# vim /etc/httpd/conf.d/zabbix.conf
<Directory "/usr/share/zabbix">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    php_value date.timezone  Asia/Chongqing    *
    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               *
</Directory>
[iyunv@zabbix-server ~]# service httpd restart



如果在后面配置Web时提示任何参数不满足安装配置要求,修改对应的参数后重启Httpd即可。
        3.5 配置Web界面
打开浏览器,输入“http://IP地址/zabbix ”,会出现如下图所示的界面。
wKioL1ZBpT_AV-6cAAMB866cJyU824.jpg
wKioL1ZBpmnhALClAAN9sKd34SU886.jpg

        PHP提示的各项参数都满足后,可以继续往下进行,单击“Next”按钮。如果提示参数不通过,修改php.ini配置文件,并重启Web(httpd)服务。
        配置数据库连接的各项参数如下图所示:

wKiom1ZBpiKAoo5bAAMbPKaM9jI460.jpg

        测试结果为OK后,单击“Next”按钮进行下一步操作,如下图所示:

wKiom1ZBpiOyNwRhAALNmz0WJPI053.jpg

        下图中的这些配置信息将会写入/${PATH}/zabbix/conf/zabbix.conf.php文件中。


wKioL1ZBpmuRIr2HAAMCtbbXtO0284.jpg
wKioL1ZBpmyDY6wHAAKQUqh_qb4672.jpg

进入如下图所示的登录界面,默认账户是admin,密码是zabbix,登陆成功的页面如下图。


wKioL1ZBpmyQVAO-AAD_DQlwsgc388.jpg

        Zabbix是支持多语言的,可以为每个用户配置不同的语言环境。单击菜单栏Administration——》Users——》User name——》Language修改用户的语言(虽然Zabbix支持中文,但本人并不推荐读者使用中文界面,原意是中文界面的翻译不准确,会误导读者,故本人使用英文界面讲解)。

        另外,在个人用户设置中,可以开启声音告警的提示信息和前端消息的声音提示。


wKioL1ZBr-zQOjpnAANl_N00QK0859.jpg

另:关于zabbix-server初始配置时的几种常见故障及处理方法,我将会在下次详细列出,以及Zabbix-Agent的配置方法一同



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-137737-1-1.html 上篇帖子: zabbix数据库迁移 下篇帖子: zabbix 添加对网卡流量超出阈值的监控 监控系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表