一、什么是zabbix
Zabbix是一个基于WEB界面的分布式开源监控系统,主要组成部分:Zabbix_server、Zabbix_agent、Zabbix_proxy。;Zabbix可以监控网络和服务的监控状况。利用灵活的报警机制,允许用户对事件发送基于Email或短信等方式进行报警;同时可以利用存储数据提供杰出的报告及图形化方式。
zabbix架构图(马哥教育):
二、zabbix的特性
数据采集:
-
支持SNMP(trapping及polling)、IPMI、JMX监控;
-
自定义检测和间隔收集收据;
-
可用性及性能检测;
-
server/proxy/agents性能;
数据存储:
-
数据存储在数据库中;
-
历史数据可配置;
-
内置数据清理机制;
数据展示:
-
允许自定义创建多监控项视图;
-
自定义的面板(screen)和报告;
-
网络拓扑(network maps);
报警:
-
可以自定义告警升级(escalation)、接收者及告警方式;
-
告警信息可以配置并允许使用宏(macro)变量;
-
通过远程命令实行自动化动作(action);
网络自动发现:
-
自动发现网络设备;
-
agent自动注册;
-
自动发现文件系统、网卡设备、SNMP OID等;
三、安装zabbix
zabbix需要数据库来存储数据;所以需要安装mysql;建议数据库与zabbix服务器安装在不同的机器上
下面以yum安装演示:
IP | 主机 | 描述 |
192.168.0.111 | node1.soul.com | zabbix_server |
192.168.0.112 | node2.soul.com | mysql |
192.168.0.113 | node3.soul.com | zabbix_agent |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#在node1上安装zabbix_server [root@node1 ~] # yum -y install zabbix22 zabbix22-agent zabbix22-server zabbix22-server-mysql zabbix22-web zabbix22-web-mysql zabbix22-dbfiles-mysql
[root@node1 ~] # rpm -ql zabbix22-server
/ etc / logrotate.d / zabbix - server
/ etc / rc.d / init.d / zabbix - server
/ etc / zabbix / alertscripts
/ etc / zabbix / externalscripts
/ etc / zabbix / zabbix_server.conf
#可以看到配置文件等安装信息 [root@node1 ~] # rpm -ql zabbix22-dbfiles-mysql
/ usr / share / doc / zabbix22 - dbfiles - mysql - 2.2 . 1
/ usr / share / doc / zabbix22 - dbfiles - mysql - 2.2 . 1 / COPYING
/ usr / share / zabbix - mysql
/ usr / share / zabbix - mysql / data.sql
/ usr / share / zabbix - mysql / images.sql
/ usr / share / zabbix - mysql / schema.sql
#可以查看到zabbix的数据库文件 [root@node1 ~] # scp /usr/share/zabbix-mysql/{data.sql,images.sql,schema.sql} node2:/tmp
root@node2's password: data.sql 100 % 948KB 947.6KB / s 00 : 00
images.sql 100 % 1932KB 1.9MB / s 00 : 00
schema.sql 100 % 104KB 104.1KB / s 00 : 00
[root@node1 ~] # 复制到node2主机上
|
安装mysql于node2主机:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@node2 ~] # yum -y install mysql mysql-server
[root@node2 ~] # service mysqld start
Starting mysqld: [ OK ] [root@node2 ~] #
mysql> create database zabbix; Query OK, 1 row affected ( 0.00 sec)
mysql> use zabbix; Database changed mysql> source / tmp / schema.sql
mysql> source / tmp / images.sql
mysql> source / tmp / data.sql
#创建数据库;导入数据 mysql> grant all on zabbix. * to 'zbx' @ '192.168.0.111' identified by 'zbxpass' ;
Query OK, 0 rows affected ( 0.00 sec)
mysql> flush privileges; #授权zabbix_server主机 |
配置node1上的zabbix_server启动:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[root@node1 ~] # vim /etc/zabbix_server.conf
#更改对应的数据库信息即可 DBHost = 192.168 . 0.112
DBName = zabbix
DBUser = zbx
DBPassword = zbxpass
[root@node1 ~] # service zabbix-server start
Starting Zabbix server: [ OK ] [root@node1 ~] # ss -tunl | grep 10051
tcp LISTEN 0 128 ::: 10051 ::: * tcp LISTEN 0 128 * : 10051 * : *
#启动成功 #启动httpd [root@node1 ~] # service httpd start
Starting httpd: [ OK ] |
四、使用web管理界面配置zabbix
在浏览器中输入:http://(你的zabbix_server地址)/zabbix
上述提示PHP问题;对应的修改/etc/php.ini重启httpd;完成后retry测试全部OK即可
完成安装后的界面。
Monitoring监控菜单:
Dashboard(仪表盘) | Overview(总览) | WEB | Latest data(最新数据) | Triggers(触发器) | Events(事件) | Graphs(图形) | Screen(多屏) | Maps(拓扑图) | IT Services。
Inventory主机资产清单使用的不多。
Reports报告菜单:
Status of Zabbix(Zabbix的状态信息) | Avaliablity report(可用性报告) | Triggers top 100(前100个触发数据) | Bar reports(柱形图)。
Configuration配置菜单:
Host group(主机组) | Templates(模板) | Hosts(主机) | Maintenance(维护) | Actions(动作) | Screens(多屏) | Slide shows(幻灯片) | Maps(拓扑图) | Discovery(自动发现) | IT services。
Administration管理菜单:
General(通用配置) | DM(zabbix_proxy) | Authentication(用户认证) | Users(用户管理) | Media types(媒介类型) | Scripts(脚本) | Audit(审计) | Queue(队列) | Notifications(通知) | Installation(安装)
具体参数:http://www.zabbix.com/documentation.php 选择对应版本。
五、配置简单的监控实例
在node3安装zabbix_agent
1
2
3
4
5
6
7
8
9
10
|
[root@node3 ~] # yum -y install zabbix22 zabbix22-agent
[root@node3 ~] # vim /etc/zabbix_agentd.conf
#更改Server即可 Server = 192.168 . 0.111
[root@node3 ~] # service zabbix-agent start
Starting Zabbix agent: [ OK ] [root@node3 ~] # ss -tunl | grep 10050
tcp LISTEN 0 128 ::: 10050 ::: * tcp LISTEN 0 128 * : 10050 * : *
#启动成功 |
1、添加主机:create host
2、添加Items:create item
类似再添加一个CPU的监控。
3、创建Graphs:create graph
4、创建screen:create screen
添加完成后可以在monitor中查看具体信息:
可以在latest data中查看:
graph中查看:group和host中可以选择对应的主机等;graph中可以选择图形信息
以上简单的做到了CPU负载和网卡流量监控。
下面添加一个可以自动报警发送邮件的机制:
5、添加一个media type
6、添加默认的账户zabbix的通知给本机的root:
7、添加一个trigger:
8、添加一个action:
其中macro的说明:https://www.zabbix.com/documentation/2.2/manual/appendix/macros/supported_by_location
Recovery message这项选择后在恢复时也会对应的发邮件通知;其余还需要设定条件和具体的操作:
现在可以查看监控:
很明显有了阈值线。左下方显示阈值的大小。
定义完成后可以进行测试了。
可以在monitor的dashboard面板查看到相关信息:
此时可以看到事件已触发;可以查看下是否有邮件通知。
可以查看到邮件通知信息;且内容与定义的相符。一条报警通知和一条恢复通知。到此;一些基本内容已配置完成和实现。