引子:文章分为3段
1.zabbix介绍,包括架构,组件工作流程等。
2.zabbix安装,yum安装和编译安装
3.zabbix-web登录界面和中文修改
zabbix介绍
Zabbix 是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。
官方网站: http://www.zabbix.com
zabbix的架构:
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 sever: 负责接收 agent 发送的报告信息的核心组件,所有配置、统计数据及操作数据均由其组织进行;
Database storage :专用于存储所有配置信息,以及由 zabbix 收集的数据
Web interface : zabbix 的 GUI 接口,通常与 server 运行在同一台主机上;
Proxy :可选组件,常用于分布监控环境中,代理 server 收集部分被监控端的监控数据并统一发往 server 端;
Agent :部署在被监控主机上,负责手机本地数据并发往 server 端或 porxy 端;
zabbixweb、zabbix-server、zabbix-database可以部署在同一台机器上,也可以分开布置。
Zabbix
常用的术语
主机( host ):要监控的网络设备,可由 IP 或 DNS 名称指定。
主机组( host group ):主机的逻辑容器,可以包含主机和模板,但同一组 内的主机和模板不能互相连接;主机组通常在给用户或用户组指派监控权限时使用;
监控项( item ):一个特定监控指标的相关的数据,这些来自于被监控对象; item 是 zabbix 进行收据收集的 核心, 没有 item ,将没有数据;相对某监控对象来说,每个 item 都由“ key”进行标识;
触发器( trigger ):一个表达式,用于评估某监控对象的某特定 item 内所接收到的数据是否在合理范围内,即阀值;接收到的数据量大于阀值时,触发器状态将从“ OK”转变为“problem”,当数据量再次回归到合理范围时,其状态将从“problem”转换回“OK”;
事件( event ):即发生的一个值得关注的事情,例如触发器的状态转变,新的 agent 或重新上线的 agent 的自动注册等;
动作( action ):指对于特定事件事先定义的处理方法,通过包含操作(如发送通知)和条件(何时执行操作);
报警升级( escalation ):发送警报或执行远程命令的自定义方案,如每隔 5 分钟发送一次警报,共发送 5 次等;
媒介( media ):发送通知的手段或通道,如 Email , Jabber 或 SMS 等;
通知( notification ):通过选定的媒介向用户发送的有关某事件的信息;
远程命令( remote command ):预定义的命令,可在被监控主机处于某特定条件下时自动执行;
模板( template ):用于快速定义被监控主机的预设条目集合,通常包含了 item 、 trigger 、 graph 、 screen 、 application 以及 low-level discovery rule ;模板可以直接链接至单个主机
应用( application ):一组 item 的集合;
Web 场景( web scennario): 用于检测 web 站点可用性的一个或多个 HTTP 请求;
前端( frontend ): zabbix 的 web 接口
zabbix的工作流程
结合下图和上面的术语解释会更直观:
步骤不是固定只是这样解释更好理解。
1、定义一个item.
2、获取此item的数据,图中是zabbix的polle进程去获取数据(后续有解释zabbix进程).
3、获取的item的数据数值超出了Trigger中对此item定义的阀值,Trigger由OK转换为problem状态.
同时会触发Events,如果有设置Action的话会触发.
4、Actions会执行动作.
5、新获取的item数据重新低于阀值,Trgger回到OK状态.报警停止.事件会保存.
在host中定义item,针对各item设置Trigger.因为需要定义的item和Trigger太多,可以直接在host中套用
Template(模板),模板中定义了好了item和Trigger以及需要展示的Graphs.
也可以设置一个host group,对一组机器进行操作,如设置模板,定义某item等等.
不想某host或host group报警的话,可以设置为Maintenance(维护),这样即使触发了triggers也
不会触发actions和events.
zabbix服务端运行的进程
zabbix-server运行后一般可能会出现以下进程,有的不会出现。
watchdog: 监控以下进程,发现进程不在就重新启动。
housekeep:items 过期数据清理。
alerter: 执行报警
poller: 拉取数据的,会出现过个 poller 并行去拉取数据。
httppoller:web 页面数据拉取的专用 poller 。
discoverer:agent 发现机制
Pinger: 基于 ping 探测节点存活。
db_config_syscer :数据库配置同步器(多个数据库场景时,多用于集群)
db_data_syscer: 数据库数据同步器(多个数据库场景时,多用于集群)
node watcher: 监控节点。
timer: 计时器
escalator: 报警升级
zabbix安装
yum安装zabbix
1. 建立LAMP环境
安装 mysql , httpd , php
#yum -y install mysql-server httpd php
service httpd start
service mysqld start
2. 新建zabbix组和用户(系统用户、系统组)
#/usr/sbin/groupadd -r zabbix
#/usr/sbin/useradd -g zabbix -r zabbix
3.安装zabbix的repo源
rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhe l/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
可以登录此url: http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/ ,找到如下图的rpm包.按实际下载.
4.zabbix包安装
使用yum安装非常简单,不需要去处理包之间的关系。不过此处需要注意的是
在安装zabbix-server包的时候,在yum解决包依赖关系的时候有时会下载pgsql,
而不是想要的mysql,需要注意一下.
Servier 端
Yum –y install zabbix \\ zabbix 公共组件
Yum –y install zabbix-server \\ zabbix-server 端专用包
Yum –y insatll zabbix-server-mysql \\ zabbix-server 端 mysql
Yum –y install zabbix-get \\ 服务器端组件,用于 get 获取数据
Yum –y install zabbix-java \\ 监控 java 程序组件
Proxy 端
Yum –y install zabbix \\ zabbix 公共组件
Yum –y install zabbix-proxy \\ proxy 端专用包
Yum –y install zabbix-proxy-mysql \\proxy 端 mysql
Agent 端
Yum –y install zabbix \\ zabbix 公共组件
yum –y install zabbix-agent \\agent 专用包
Yum –y install zabbix-sender \\ 用户 agent 主动发送数据
Web
Yum –y insatll zabbix-web
Yum –y insatll zabbix-web-mysql
因为我们实验机: zabbix-server , zabbix-agent , zabbix-web 是在一台机器上的 ,proxy 不在这次实验
Yum install zabbix zabbix-server zabbix-server-mysql zabbix -get zabbix-web zabbix-web-mysql zabbix-agent zabbix-sender
5.mysql设置:
创建一张表取名 zabbix ,设置 utf8 字符集
CREATE DATABASE zabbix CHARACTER SET utf8
为 zabbix 表,创建一个用户 :zabbix 密码: zabbix 访问条件: localhost 权限: ALL
GRANT ALL on zabbix.* TO'zabbix'@‘localhost' IDENTIFIED BY 'zaxpass';
Zabbix_sql 脚本导入 mysql
cd/usr/share/doc/zabbix-server-mysql-2.4.*/create/
这里可以看到 3 个 sql 脚本,将他们导入到之前建立的 mysql , zabbix 表中
data.sql images.sql schema.sql
按以下顺序导入
#mysql zabbix < schema.sql
#mysql zabbix < images.sql
#mysql zabbix < data.sql
6.修改相关配置文件
配置修改 Zabbix Service 配置文件
vim /etc/zabbix/zabbix_server.conf
DBUser=zbxuser
DBPassword=zabbix
修改 php 时区
/etc/php.ini 在 ;date.timezone=
增加一行,别忘了删除掉 ; ,;是注释
timezone = Asia/Shanghai.
关闭防火墙:
Service iptable stop
或者 vi /etc/sysconfig/iptables ,增加以下内容:添加 80 端口
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
至此yum安装zabbix完毕,下一步使用web登录zabbix,配置zabbix。
编译安装zabbix
创建 zabbix 组和以 zabbix 为组的 zabbix 用户
#groupadd zabbix
#useradd –g zabbix zabbix
1. 准备好安装包,上官网下载合适的安装包,这里使用的是 zabbix-2.4.1.tar.gz
2 .为方便安装包的统一管理都安装在 /opt 下
#tar zxvf zabbix-2.4.1.tar.gz
#cd /opt/zabbix-2.4.1.tar.gz
开始编译
#./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --enable-ipv6 --with-libcurl
#make && make install
先开启mysql(之前的chkconfig只是设置开机启动并没有将服务启动。)设置mysqlroot密码为123456
#service mysql start
#mysqladmin -u root password 123456
在 mysql 内创建 zabbix 库,设置字符为 UTF8
#mysql –uroot –p123456
#create datebase zabbix character set utf8;
# grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '123456';
#quit
( 注意 mysql 命令后面必须带上‘;’否则命令会失败 )
将 zabbix 表导入数据库
#cd /root/zabbix-2.0.4/database/mysql/
#mysql -uzabbix -p123456 zabbix < schema.sql
#mysql -uzabbix -p123456 zabbix < images.sql
#mysql -uzabbix -p123456 zabbix < data.sql
复制程序和修改配置文件
复制配置文件到 zabbix 安装目录
#cp -R /opt/zabbix-2.4.1/conf/zabbix_agentd /usr/local/zabbix/etc/
#cp /opt/zabbix-2.4.1/conf/zabbix_agentd.win.conf /usr/local/zabbix/etc/
#cp /opt/zabbix-2.4.1/conf/zabbix_proxy.conf /usr/local/zabbix/etc/
然后修改 zabbix_server.conf 配置文件数据库( mysql )相关部分:
#vim /usr/local/zabbix/etc/zabbix_server.conf
修改以下内容:
DBUser=zabbix
DBPassword=123456
先看下服务端口是否添加若没有则添加
grep zabbix /etc/services
若有以上内容则不需要其他操作,若没有。
则修改 /etc/services 文件,在文件末尾追加以上内容
修改 zabbix 目录属性
#chown –R zabbix.zabbix /user/local/zabbix
配置软连接
启动 zabbix 前,做相关软连接,不然会报错:找不到库文件。
这里安装的是 64 位系统:
#ln -s /usr/local/iksemel/lib/libiksemel.so.3 /usr/lib64/libiksemel.so.3
假如是 32 位系统:
#ln -s /usr/local/iksemel/lib/libiksemel.so.3 /usr/lib/libiksemel.so.3
接着为 zabbix 命令行操作文件做链接,方便系统可以找得到。
#ln -s /usr/local/zabbix/bin/* /usr/bin/
#ln -s /usr/local/zabbix/sbin/* /usr/sbin/
设置用 service 命令 启动脚本
拷贝 zabbix 启动脚本到 /etc/init.d/ 下。
#cp /opt/zabbix-2.4.1/misc/init.d/fedora/core/zabbix_* /etc/init.d/
修改 zabbix 启动脚本中程序目录的位置。
vim /etc/init.d/zabbix_server
需要修改内容如下:
BASEDIR=/usr/local/zabbix
vim /etc/init.d/zabbix_agentd
需要修改内容如下:
BASEDIR=/usr/local/zabbix
并添加可执行权限:
#chmod +x /etc/init.d/zabbix_server
#chmod +x /etc/init.d/zabbix_agentd
添加开启启动
#chkconfig --add zabbix_server
#chkconfig --add zabbix_agentd
#chkconfig --level 345 zabbix_server on
#chkconfig --level 345 zabbix_agentd on
添加完,则使用命令chkconfig –list|grep zabbix查看下是否成功
修改web相关配置
#mkdir /var/www/html/zabbix
#cp -a /opt/zabbix-2.4.1/frontends/php/* /var/www/html/zabbix/
#chown -R zabbix.zabbix /var/www/html/zabbix/
然后对php配置文件做相应的调整
vim /etc/php.ini
修改以下内容(具体工作环境配置内容需要改变):
max_execution_time = 600
max_input_time = 600
memory_linit = 256M
post_max_size=32M
upload_max_filesize =16M’
date.timezone =PRC(或者就Asia/Shanghai)
修改完直接重启apache服务
#service httpd restart
#service zabbix_server restart
#service zabbix_agentd restart
编译安装完毕!!下一步使用web登录zabbix,配置zabbix。
配置zabbix
http://192.168.1.108/zabbix/
此处有报错的话就检查报错。
host:填写zabbix-server的ip地址或主机名。
到了此处说明zabbix服务端的安装已经完成.下面讲解zabbix的使用。
修改成中文:
若不习惯英文可以调节成中文(右上角)
保存后,最终如下图
解决zabbix图中出现中文乱码情况
设置zabbix的语言为中文时,图中的中文会变成方块。如下图:
这个问题是由于zabbix的web端没有中文字库导致的,需要把中文字库加上即可。
具体操作如下:
a 在windows系统中的c:\windows\fonts目录中拷贝一个自己喜欢的字体文件出来,
例如:simkai.ttf (楷体 常规 )。
b 把拷贝出来的字体上传到zabbix server 上 /var/www/html/zabbix/fonts目录下。
c 将zabbix server 上fonts目录下原来的“DejaVuSans.ttf”改名。例如为“DejaVuSans.ttf.bak”
cd /var/www/html/zabbix/fonts
mv DejaVuSans.ttf/var/www/html/zabbix/fonts/DejaVuSans.ttf.bak。
d 将上传上去的文件改成“DejaVuSans.ttf”
mv simkai.ttf /var/www/html/zabbix/fonts/DejaVuSans.ttf
e 刷新下web页面会发现原来中文乱码的地方都正常的
后续还会修改,有错误请各位不吝指出,谢谢。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com