Zabbix监控部署应用
第1章 zabbix简介
Zabbix是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。
官方网站:http://www.zabbix.com
Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。
被监控端:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据
Server端:通过收集SNMP和agent发送的数据,写入MySQL数据库,再通过php+apache在web前端展示。
Zabbix运行条件:
Server:
Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低
Agent:
目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windows
SNMP:
Zabbix优点
- zabbix易于部署,运行稳定。
- 对于基础监控例如,内存,cpu,磁盘等基础监控项还是很准确。
- 报警机制较为方便,对比prometheus的报警配置,个人感觉zabbix的报警配置更加方便。
- 方便管理,适用于大规模集群。本人在之前使用并管理300台以上机器,对于这种中型架构完全没压力。
缺点
5. 功能不够完善,对于容器,云等架构的监控还不是很完善。在此不如prometheus监控。
6. 监控界面简单,适合运维人员管理,不适于给客户观看。当然可以结合grafana使用,grafana是目前一款不错的作图软件,本身支持zabbix,prometheus等数据源。
7. 数据存贮方面。zabbix默认一般是Mysql,对于大数据量级别不适于应用。相较而言prometheus本身就是TSDB时序性数据库,不管是时序性,还是大数据存贮,或是秒及处理速度,都更占优势。
第2章 zabbix安装(内网环境)
本部署文档基于centos6系统
2.1 环境准备(基于4.2版本)
资源下载地址:
https://opsx.alibaba.com/mirror ##阿里源
https://mirrors.tuna.tsinghua.edu.cn/ ##清华源
mysql下载:
https://www.mysql.com/
Zabbix的两种架构,直接与代理,前者适用于小集群,后者适用于中大集群
一种为server端直接对agent端进行监控方式。这种方式又分为主动模式和被动模式,主动模式为agent端定期主动向server端提交监控数据,被动模式为server端定期找agent端索要数据。少量机器时可用被动模式,大量机器时用主动模式。
另一种为proxy代理模式。此模式用于大集群,异地机房监控。可实现分布式跨网段监控,每地机房一个proxy代理节点,分担server端压力同时,实现跨网段监控。
两种架构节点部署准备
2.2 搭建本地yum仓库
少量机器可通过手动部署,机器较多是使用本地源部署较为方便。本人部署集群为300+
- 启动http的服务
# `service httpd start`
- 创建zabbix源
# cd /etc/yum.repos.d/
# vim zabbix.repo
[zabbix] #自定义名字
name=Zabbix
baseurl=http://192.168.x.x/zabbix/zabbix_rpm #http地址及rpm包存放路径
enabled=1 #设置此源是否可用,1为可用
gpgcheck=0 #设置此源是否校验,0为否
- 将所用的安装包放到httpd站点目录 /var/www/html/ 下,对应zabbix源中的存放路径
- 用rpm方式安装需createrepo,该软件用来生成rpm依赖及分组信息
# cd /var/www/html/
# createrepo ./ #此步骤需在html每个子目录下均执行
5. 访问http网址查看
6. 将自己创建的源文件,发送到各个节点。
集群数量多,使用ansible
scp /etc/yum.repos.d/ zabbix.repo
2.3 server端安装中间件
yum clean all
yum -y --nogpgcheck -C install httpd mysql-server php55w php55w-mysql php55w-common php55w-gd php55w-mbstring php55w-mcrypt php55w-devel php55w-xml php55w-bcmath
注意事项:mysql安装失败查看大小写
如有组件安装失败,检查是否有自带版本,先卸载再安装。
2.4 服务端zabbix安装及配置
yum -y --nogpgcheck -C install zabbix-web zabbix-server-mysql zabbix-web-mysql zabbix-get zabbix-java-gateway wqy-microhei-fonts net-snmp net-snmp-utils
1. 配置mysql
复制mysql配置文件
\cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
# vim /etc/security/limits.conf
* soft nofile 4096
* hard nofile 4096
# vim /etc/my.cnf
[mysqld]
connect_timeout=60
wait_timeout=5000
max_connections=1000 #最大连接数
max_allowed_packet=50M
max_connect_errors=500
启动MySQL
/etc/init.d/mysqld start
创建用户并授权
create database zabbix character set utf8 collate utf8_bin;
grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
flush privileges;
exit
导入zabbix中sql
zcat /usr/share/doc/zabbix-server-mysql-4.2.0/create.sql.gz|mysql -uzabbix -pzabbix zabbix
2. 修改php配置文件
sed -i.ori 's#max_execution_time = 30#max_execution_time = 300#;s#max_input_time = 60#max_input_time = 300#;s#post_max_size = 8M#post_max_size = 16M#;910a date.timezone = Asia/Shanghai' /etc/php.ini
3. 配置zabbix-server配置文件
# vim /etc/zabbix/zabbix_server.conf
DBName=zabbix #数据库名称
DBPassword=zabbix #数据库密码
DBUser=zabbix #用户名
StartPollers=5 #填写范围0-100,默认5 。轮询处理监控项的进程数,增加太大会影响服务器本身性能,保持此参数的值尽可能低,20000个监控项大概控制在80左右即可。
StartTrappers=5 #负责处理agents和proxy推送过来的数据的进程数,默认为5,如果zabbix-agent监控类型较多需要加大此参数
StartDiscoverers=200 #自动发现子进程实例数,默认为1,范围0-250
StartHTTPPollers=1 #HTTP进程轮询实例个数,默认1,范围0-1000,web监控不多选择默认即可
CacheSize=8G #缓存大小,单位字节。用于存储主机、监控项、触发器数据的共享内存大小,默认8M最大8G。根据自身zabbix业务需求配置合理的参数。
CacheUpdateFrequency=60 #zabbix缓存更新频率,单位秒。设置范围1-3600
HistoryCacheSize=2G #历史数据缓存大小,单位字节
TrendCacheSize=2G #趋势数据缓存大小,单位字节。用于存储趋势数据的共享内存大小
5. html文件配置
cp -R /usr/share/zabbix/ /var/www/html/
6. 文件授权
chmod -R 755 /etc/zabbix/web # 修改目录权限
chown -R apache.apache /etc/zabbix/web # 修改属组
7. 启动服务
echo "ServerName 127.0.0.1:80">>/etc/httpd/conf/httpd.conf # 配置用户名
/etc/init.d/httpd start
/etc/init.d/zabbix-server start
8. 加入开机自启动
# vim /etc/rc.local
/etc/init.d/mysqld start
/etc/init.d/httpd start
/etc/init.d/zabbix-server start
2.5 网页配置
- 浏览器登陆网页管理地址
# http://192.168.x.x/zabbix/
- 检查php、mysql完整性
- 填写用户名、密码
zabbix 默认用户名: Admin #注意首位大写
密码:zabbix
2.6 Zabbix客户端安装配置
- 下载agent客户端
yum install -y zabbix-agent-4.2.0-1.el6.x86_64.rpm
- 修改agent配置
# vim /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1 #被动模式,修改为server端ip
ServerActive= #主动模式,修改为server端ip
- 启动agent端
/etc/init.d/zabbix-agent start
echo "/etc/init.d/zabbix-agent start" >> /etc/rc.local
2.7 自动发现与自动注册(推荐使用)
自动发现:服务端server自动发现局域网中的所有客户端agent
优点:方便找到所有客户端,不会遗漏
缺点:一旦agent过多,server压力山大,每隔一段时间,server都会扫描一遍局域网的所有机器。
自动注册:所有客户端Agent主动去服务端server登记注册一下(在本文章就不写了复制图片太麻烦了)
优点:对服务端的压力最低
缺点:配置过程稍微复杂
2.7.1 自动发现配置(推荐使用自动发现,配置改动少)
客户端agent配置
不需要任何配置,只要沿用前面的配置即可。
服务端server配置
不需要任何配置,只要沿用前面的配置即可。
1. 配置自动发现规则—发现主机
2. 配置添加主机动作—添加主机
2.8 查看监控数据
1. 最新数据
2. 图形监控
解决中文乱码
查看监控数据时,出现乱码的解决办法(server端操作)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
2.9 自定义监控模板
1. 创建模板
模板的功能:一处创建,处处使用
自定义名称
2. 创建应用集
搜索自己创建的模板
3. 创建监控项
自定义名称
4. 添加触发器
自定义名称,添加表达式
表达式
5. 图形
6. 给主机添加自定义模板
7. 监测查看图形
8. 聚合图形
9. 添加到仪表盘
10. 创建幻灯片
2.10 web监测
3.3 分布式监控
1. 功能:
能够减轻服务端的压力,zabbix proxy可以分担压力。zabbix server只能在同一个局域网监控,zabbix proxy可以实现跨网段监控。
2. 安装准备
3. 所需安装包
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
yum -y install zabbix-proxy-mysql
4. 安装配置数据库
zabbix proxy需要数据库存储相关的配置信息,但是不存储监控数据(只存在server上)
[root@m01 ~]# mysql
# 创建proxy用的数据库
create database zabbix_proxy character set utf8 collate utf8_bin;
# 创建proxy用的账户
grant all privileges on zabbix_proxy.* to zabbix@'172.16.1.%' identified by 'zabbix';
# 退出mysql命令行
5. 导入proxy使用sql文件
[root@web01 ~]# ls /usr/share/doc/zabbix-proxy-mysql-3.0.9/
AUTHORS ChangeLog COPYING NEWS README schema.sql.gz
[root@m01 ~]# zcat /server/schema.sql.gz|mysql -uzabbix_proxy –pzabbix zabbix_proxy
6. 配置zabbix proxy
# vim /etc/zabbix/zabbix_proxy.conf
Server=127.0.0.1 #配置server端ip地址
Hostname=bj-proxy #此名称需要与将来在server端web页面上代理程序名称一致,名称自定义。
DBHost=localhost #指向proxy数据库地址
DBUser=zabbix #数据库用户
DBPassword= #数据库密码
ConfigFrequency=600 #配置文件同步server端间隔时间
DataSenderFrequency=1 #数据同步间隔
开启进程
/etc/init.d/zabbix-proxy start
7. zabbix Agent配置
使用proxy代理,将agent端配置文件地址修改为相应的proxy端地址
sed -i 's#172.16.1.61#172.16.1.8#g' /etc/zabbix/zabbix_agentd.conf
重启
/etc/init.d/zabbix-agent restart
8. 网页操作
将proxy代理节点注册到zabbix server
[参考文档]
https://blog.csdn.net/zzhlinux911218/article/details/85127444
https://blog.csdn.net/AtlanSI/article/details/82154610