宿主机为172.16.25.1 zabbix服务器 --》 zabbix agent(被监控端) 172.16.25.2 172.16.25.3 基本准备(系统平台为centos7.3) 1,主机名 # hostnamectl set-hostname --static zabbixserver.cluster.com # vim /etc/hosts 172.16.25.2 zabbixserver.cluster.com 2,时间同步 3,iptables,selinux关闭 4,配置yum(本地镜像yum源和163源.可以不用epel源) 5, 配置zabbix官方yum源 # wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm # rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm 因为这样需要连接公网,并且它的版本也可能会更新,我的宿主机也下载了zabbix3.2.7版本的所有软件包 配置如下一段yum就可以了 [zabbix] name=zabbix baseurl=http://172.16.25.1/zabbix enabled=1 gpgcheck=0 总结:一个三个yum仓库(本地iso,163,zabbix官方) 第一步: 安装zabbix和mariadb数据库 # yum install zabbix-server-mysql zabbix-web-mysql mariadb-server 第二步: 在mysql里建立存放数据的库并授权,然后导入zabbix所需要用的表和数据 # systemctl restart mariadb.service # systemctl status mariadb.service # systemctl enable mariadb.service # mysql MariaDB [(none)]> create database zabbix default charset utf8; MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by '123'; MariaDB [(none)]> flush privileges; MariaDB [(none)]> quit 第三步: 导入表数据 # zcat /usr/share/doc/zabbix-server-mysql-3.2.7/create.sql.gz |mysql -u zabbix -p123 zabbix 第四步: 配置zabbix主配置文件,并启动服务 # vim /etc/zabbix/zabbix_server.conf --找到并确认如下参数(默认值正确的可以打开注释也可以不打开.默认值不对的,要修改正确并打开注释) ListenPort=10051 DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=123 --这里要对应上面的授权进行修改 DBSocket=/var/lib/mysql/mysql.sock --这里默认的socket路径不对,改成我这个路径 ListenIP=0.0.0.0 # systemctl restart zabbix-server.service # systemctl status zabbix-server.service # systemctl enable zabbix-server.service # lsof -i:10051 第五步: 配置zabbix的httpd子配置文件,并启动httpd # vim /etc/httpd/conf.d/zabbix.conf --打开时区注释,并修改成你的时区 php_value date.timezone Asia/Shanghai # systemctl restart httpd.service # systemctl status httpd.service # systemctl enable httpd.service 第六步: 然后使用firefox访问,并进行安装 http://IP(zabbix服务器的IP)/zabbix 按照图示过程安装 1,welcome 2,Check of pre-requisites 3,Configure DB connection 数据库用户名填zabbix,密码填123(前面授权过的) 4,Zabbix server details 在name选项填上你zabbix服务器的IP或者主机名 5,Pre-Installation summary 6,install 完成后 登陆用户名为:admin 登陆密码为:zabbix ========================================================================= 例一,转换成中文界面(用英文的花这一步可以省略) 右上角点一个类似小人的图标--》 语言选 中文zh-cn --》 点 update 例二,使用zabbix-agent方式来监控本机 # yum install zabbix-agent --本机安装agent包 # vim /etc/zabbix/zabbix_agentd.conf --下面几个常见选项都为默认值,不用配置 Server=127.0.0.1 --zabbix服务器的IP,这里是本机 ServerActive=127.0.0.1 --zabbix服务器active check相关 ListenPort=10050 --监控服务器连接被监控客户端的端口(默认是注释的,可以打开或者不打开注释) Hostname=Zabbix server --设定被监控客户端的名称标识 # systemctl restart zabbix-agent # systemctl status zabbix-agent # systemctl enable zabbix-agent # lsof -i:10050 回到web管理界面--》点配置--》点主机--》默认看到叫Zabbix server的本机,但状态是停用的--》点击并启用 然后可以通过点图形--》选图后点预览--》看到图上有乱码 解决方法: 把原来的图形字符换成ukai字体 软件包为 ttf-arphic-ukai_0.2.20080216.1.orig.tar.gz # tar xf ttf-arphic-ukai_0.2.20080216.1.orig.tar.gz -C /usr/share/zabbix/fonts/ # mv /usr/share/zabbix/fonts/ukai.ttc /usr/share/zabbix/fonts/ukai.ttf # vim /usr/share/zabbix/include/defines.inc.php 45 define('ZBX_GRAPH_FONT_NAME', 'ukai'); --修改原来的graphfont字体改成ukai 做完后,不用重启服务,回到zabbix的web界面刷新查看图形就会发现没有乱码了 例三,监控远程linux zabbix服务器 --》 zabbix agent(被监控端) 172.16.25.2 172.16.25.3 在被监控客户端上172.16.25.3安装zabbix-agent 1,配置主机名 # hostnamectl set-hostname --static agent1.cluster.com # vim /etc/hosts 172.16.25.3 agent1.cluster.com 2,关闭iptables,selinux 3,时间同步 4,配置yum(需要zabbix官方yum源) 5,安装zabbix-agent # yum install zabbix-agent # vim /etc/zabbix/zabbix_agentd.conf Server=172.16.25.2 --写上zabbix监控服务器的IP ServerActive=172.16.25.2 --也是写上zabbix监控服务器的IP Hostname=agent1.cluster.com --写上你的被监控客户端的主机名 # systemctl restart zabbix-agent # systemctl status zabbix-agent # systemctl enable zabbix-agent # lsof -i:10050 回到web管理界面--》点配置--》点主机 --》 点创建主机 主机名称: agent1.cluster.com 可见的名称:agent1 --这个名是优先显示在监控web页面的host页面 群组: Linux servers --或者自己新建一个群组名都可以 IP地址: 172.16.25.3 --见图zabbix01.png 点模版,点选择,把 Template OS Linux 前面打勾(其它模版随意加) --》点选择 --》点添加 --最后点右下角的添加 OK之后,就能看到一共监控了两台机器了 ================================================================================-- 基本概念解析: 概念一: 用户(user) 用户群组(group) 管理->用户 管理->用户群组 题目:添加一个用户群组叫usergroup1,再添加一个用户叫张三,加入usergroup1组和Zabbix administrators组 概念二: 主机和主机组 主机(hosts)代表被监控的一台机器 主机组(hostgroups)代表被监控的一组机器(主要在特别多的机器情况,方便分组区分) 操作路径: 配置->主机群组 配置->主机 概念三: 监控项(items)和应用集(applications) 监控项(items)代表搜集数据或监控的一个最小单位 应用集(applications)代表多个监控项目合成的组 例:自定义自己的监控项 zabbix服务器 --》 zabbix agent(被监控端) 172.16.25.2 172.16.25.3 zabbix server agent1 自定义监控agent1(172.16.25.3)上的用户登录数(默认有一个键值叫system.users.num可以实现监控登录用户数,但我这里实验使用的是自己定义的键值) 1,在被监控端agent1上,随意多打开几个终端 # who |wc -l 14 2,在被监控端agent1上,定义用户参数 # vim /etc/zabbix/zabbix_agentd.conf --加上下面这名定义的参数 UserParameter=loginusers,who | wc -l --loginusers是我自定义的一个键值名称(会在创建监控项时用到),后面的who |wc -l就要被监控的命令 # systemctl restart zabbix-agent --重启服务让其生效 3,在监控服务器上(172.16.25.2)先测试是否能得到被监控端的结果 # yum install zabbix-get --需要zabbix官方yum源 # zabbix_get -s 172.16.25.3 -k loginusers --使用此命令就可以得到被监控端的结果,则测试ok 14 4,web界面创建这个监控项 配置->主机->监控项(选远程agent1的监控项)->右上角点创建监控项 创建时主要要注意的是键值要写上面定义的loginusers 创建完后,在agent1的监控项列表里就能看到创建好的监控项 然后会这个监控项创建图形 配置->主机->图形(还是选的agent1的主机的图形)->右上角点创建图形->选择图形名称,并在下面添加刚才定义好的监控项--添加后,预览图形 例: 自定义监控系统(agent1)所有进程数量 UserParameter=procs,ps -ef | awk 'NR>1 {print $0}' |wc -l 自定义监控系统(agent1)mariadb的登录用户数 # yum install mariadb\* # systemctl restart mariadb # systemctl enable mariadb UserParameter=mariadb_loginusers,echo $[`mysqladmin -u root processlist |wc -l`-5] 概念四: 可视化图形 Visualisation 指图形和图形里的定义(高,宽,坐标,X,Y的单位,颜色)的综合 我们使用监控项已经创建过相关的图形 概念五: 触发器trigger 定义监控项到达一个临界值或者满足一个条件,就会发现状态变化 列:把上面做的远程agent1的监控登录用户数做一个触发器(大于20个登录用户就警告) 配置->主机->触发器(选远程agent1的触发器)->右上角点创建触发器->填触发器名称->在表达式的右边点添加 选择上面做的监控agent1的登录用户数的监控项,并设置当前T值> N (N设为20) 添加完表达式后,就可以添加这个触发器了 最后可以把agent1的用户数调整大于20后,去web界面->监控中->触发器 界面可以查看到触发了 练习: 监控系统(agent1)所有进程数量,当大于250就警告,当大于400就一般严重-- 基本概念解析: 概念一: 用户(user) 用户群组(group) 管理->用户 管理->用户群组 题目:添加一个用户群组叫usergroup1,再添加一个用户叫张三,加入usergroup1组和Zabbix administrators组 概念二: 主机和主机组 主机(hosts)代表被监控的一台机器 主机组(hostgroups)代表被监控的一组机器(主要在特别多的机器情况,方便分组区分) 操作路径: 配置->主机群组 配置->主机 题目:把前面做的agent1这个被监控端换一个新的组,组名为hostgroup1,再把linux servers组删除 概念三: 监控项(items)和应用集(applications) 监控项(items)代表搜集数据或监控的一个最小单位 应用集(applications)代表多个监控项目合成的组 配置->主机->监控项(这里我选的是远程叫agent1的主机的监控项)->右上角点创建监控项 然后先随意创建一个监控项(我这里是创建一个监控free内存的监控项) 创建完成后,在这个主机的监控项列表里就可以找到你创建的监控项 配置->主机->图形(还是选的agent1的主机的图形)->右上解点创建图形 选择图形名称,并在下面添加刚才定义好的监控项 例:自定义自己的监控项 zabbix服务器 --》 zabbix agent(被监控端) 172.16.25.2 172.16.25.3 zabbix server agent1 自定义监控agent1(172.16.25.3)上的用户登录数(默认有一个键值叫system.users.num可以实现监控登录用户数,但我这里实验使用的是自己定义的键值) 1,在被监控端agent1上,随意多打开几个终端 # who |wc -l 14 2,在被监控端agent1上,定义用户参数 # vim /etc/zabbix/zabbix_agentd.conf --加上下面这名定义的参数 UserParameter=loginusers,who | wc -l --loginusers是我自定义的一个键值名称(会在创建监控项时用到),后面的who |wc -l就要被监控的命令 # systemctl restart zabbix-agent --重启服务让其生效 3,在监控服务器上(172.16.25.2)先测试是否能得到被监控端的结果 # yum install zabbix-get --需要zabbix官方yum源 # zabbix_get -s 172.16.25.3 -k loginusers --使用此命令就可以得到被监控端的结果,则测试ok 14 4,web界面创建这个监控项 配置->主机->监控项(选远程agent1的监控项)->右上角点创建监控项 创建时主要要注意的是键值要写上面定义的loginusers 创建完后,在agent1的监控项列表里就能看到创建好的监控项 然后会这个监控项创建图形 配置->主机->图形(还是选的agent1的主机的图形)->右上角点创建图形->选择图形名称,并在下面添加刚才定义好的监控项--添加后,预览图形 练习: 自定义监控系统(agent1)所有进程数量 UserParameter=procs,ps -ef | awk 'NR>1 {print $0}' |wc -l 自定义监控系统(agent1)mariadb的登录用户数 # yum install mariadb\* # systemctl restart mariadb # systemctl enable mariadb UserParameter=mariadb_loginusers,echo $[`mysqladmin -u root processlist |wc -l`-4] 概念四: 可视化图形 Visualisation 指图形和图形里的定义(高,宽,坐标,X,Y的单位,颜色)的综合 我们使用监控项已经创建过相关的图形 概念五: 触发器trigger 定义监控项到达一个临界值或者满足一个条件,就会发现状态变化 列:把上面做的远程agent1的监控登录用户数做一个触发器(大于20个登录用户就警告) 配置->主机->触发器(选远程agent1的触发器)->右上角点创建触发器->填触发器名称->在表达式的右边点添加 选择上面做的监控agent1的登录用户数的监控项,并设置当前T值> N (N设为20) 添加完表达式后,就可以添加这个触发器了 最后可以把agent1的用户数调整大于20后,去web界面->监控中->触发器 界面可以查看到触发了 练习: 监控系统(agent1)所有进程数量,当大于250就警告,当大于400就一般严重 监控系统(agent1)mariadb的登录用户数,当大于50个就警告,当大于100就一般严重 概念六: web监测(类似一个监控项) 可以对一个url页面进行监测 例:监测agent1的主页 配置->主机->web监测(选远程agent1的web监测)->右上角点创建web场景->填写名称和加入一个应用集 点步骤,然后填写名称,URL(监控的页面的路径),要求的状态码(我这里写的200,表示http协议的200状态码) 点添加后,就能看到agent1这台机器的这个web监测场景 监测中->web监测,会看到此监测有问题(原因是agent1没有安装httpd) 在agent1上安装并启动httpd服务,做好主页,再回到监测中->web监测查看,监测就ok了,说明此监测有效 扩展:为此web监测配置触发器 概念七: 事件events 各种需要管理员知悉或处理的事情(触发器事件,discovery事件,网络事件) 概念八: 自动发现(discovery) 动作(action) 例:再加一台agent2远程被监控端,通过discovery+action发现它并加上相应的监控模版 zabbix server 172.16.25.2 agent1 agent2 172.16.25.3 172.16.25.4 在agent2机器上做如下相关的准备工作 1,配置主机名,并互相都要绑定主机名 # hostnamectl set-hostname --static agent2.cluster.com # vim /etc/hosts 172.16.25.4 agent2.cluster.com 2,关闭iptables,selinux 3,时间同步 4,配置yum(需要zabbix官方yum源) 5,安装zabbix-agent # yum install zabbix-agent # vim /etc/zabbix/zabbix_agentd.conf Server=172.16.25.2 --写上zabbix监控服务器的IP ServerActive=172.16.25.2 --也是写上zabbix监控服务器的IP Hostname=agent2.cluster.com --写上你的被监控客户端的主机名 # systemctl restart zabbix-agent # systemctl status zabbix-agent # systemctl enable zabbix-agent # lsof -i:10050 准备好agent2后,回到zabbix server的web界面进行操作 配置->自动发现 默认有一个叫Local network的发现规则,这次就不创建新的规则了,直接修改这个Local network规则就好 主要修改了我们的试验网段为172.16.0.0/16 开把 已启用 打勾 --见图zabbix22.png 修改完后点更新 然后在监测中->自动发现 里查找已经发现的设备(我这里使用172.16.0.0/16的网段,范围大,测试的速度很慢) --见图zabbix23.png 继续配置动作action 配置->动作->右上角事件源选自动发现 然后会发现一个默认的叫Auto discovery. Linux servers的动作,直接启用就好 --见图zabbix24.png 最后过段时间去配置->主机 里查看,会发现把discovery的主机自动加到了配置里了 --见图zabbix25.png 概念九: 宏,巨集(macros) 类似于传参数的变量 概念十: 通知(notification) 出现报警事件或者触发器触发,进行通知 通知类型默认有:email,jabber,短信(sms).其它方式比如微信,需要自行开发接口;还可以定义shell脚本报警 例:定义脚本报警类型,并分配给admin用户使用 # vim /usr/lib/zabbix/alertscripts/notification.sh --写一个简单的通知脚本,路径要放在此目录下(由主配置文件里的AlertScriptsPath参数决定) #!/bin/bash to=$1 subject=$2 body=$3 cat <<EOF | mail -s "$subject" "$to" $body EOF # chmod 755 /usr/lib/zabbix/alertscripts/notification.sh 管理->报警媒介类型->创建媒体类型 (名称写脚本报警,类型选脚本,脚本名称写notification.sh,加三个参数分别写上三个宏变量,见图),最后点添加 加好后,结果如下 分配这个报警类型给用户admin 管理->用户-> admin->报警媒介->添加 概念十一: 模版(templates) 代表监控项,应用集,触发器,图形,自动发现规则,web监测等的组合 用于在监控时直接应用到一台被监控的主机 配置->模版 概念十二: 批量更新 配置->主机->选取要批量更新的主机(前面打勾)->选择下面的批量更新选项->执行相应的更新动作 导入导出 配置->主机->选取要导出的主机(前面打勾)->下面选择导出->默认会导出到你使用浏览器的机器的/root/Downloads/ 配置->模版->选取要导出的模版(前面打勾)->下面选择导出->默认会导出到你使用浏览器的机器的/root/Downloads/ 练习:把本机的一个模版删除,然后从同桌的zabbix服务器那导出成xml文件,并拷贝过来导入 概念十三: 虚拟机监控 概念十四: 通过代理实现分布式监控 zabbix server ------ zabbix proxy ---- 被代理和被监控的机器(agent)
版权声明:本文为Adam__Smith原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。