Zabbix好在哪里?
在说Zabbix之前,我们需要先提一个东西,他叫做SNMP
SNMPSimple Network Manager Protocol
,称为简单网络管理协议。
他是早期用来监控的一个重要协议,目前版本已经到达v3了。
v1的时候没有认证,v2的时候没有加密。
在一些情况下如监控路由器、打印机
,仍然需要这个协议的支持。
SNMP的三种工作模式:
- 1.NMS
Network Manager Server
向Agent端采集数据 - 2.Agent向NMS报告数据
- 3.NMS请求Agent修改配置
对于这种经典的监控方式
Zabbix则可以通过安装SNMP的包来同样达到监控硬件的目的。
Zabbix有什么特点吗?
在Zabbix之前,生产环境中较为常见的监控工具是Cacti+Nagios。
- Cacti,在数据收集和绘制图表方面十分出色,但报警有所欠缺。
- Nagios,在数据发生异常和状态转换的时候十分出色。
- Zabbix,融合了两者的优点。
Zabbix可以监控什么?
通过安装不同的包,可以让Zabbix支持更多的监控类型。
- ssh,需要安装libssh2
- SNMP,需要安装net-snmp
- IPMI,需要安装OpenIPMI
- icmp,需要安装fping
- libcurl,监控web项
- libiksemel,支持 jabber 报警
因此他的可监控对象包括:
- 设备:服务器、路由器、交换机、IO系统
- 软件:OS、网络、应用程序
CentOS7下安装Zabbix3.2
Zabbix都有什么组件:
- zabbix-server:Zabbix的Server端组件
- zabbix-web:浏览器图形界面,用于实现Zabbix设定和展示
-
zabbix-database:支持MySQL, PGSQL(postgreSQL)、Oracle、DB2、SQLite
以上三个最好分在三个主机上,监控一般放在数据库的从服务器上
- zabbix-agent:Zabbix的被监控端
- zabbix-proxy:分布式监控环境中的专用组件,适用于大型网络
常见架构:
Server/Agent模式:
Proxy代理模式:
这种模式的好处在于,当Agent主机数量变多的时候,Proxy可以分担Server端的压力。
安装Zabbix3.2,使用Server/Agent模型
主机名 | 主机地址 | 角色 |
---|---|---|
node1 | 192.168.2.201 | Zabbix-Server |
node2 | 192.168.2.202 | Zabbix-Agent |
node3 | 192.168.2.203 | Zabbix-Agent |
本文使用的系统版本为CentOS7.1
注意:本文关闭了selinux,以及iptables。
(1)首先我们要到zabbix官方镜像选择需要的版本。这里选择了3.2。
[root@bc ~]# vim /etc/yum.repos.d/zabbix.repo
[Zabbix]
name=Zabbix-3.2
baseurl=http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/
gpgcheck=1
gpgkey=http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX-A14FE591
(2)由于官方推荐高版本的MariaDB,因此我们安装高版本的MariaDB
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/rhel7-ppc64le
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
(3)安装组件
[root@bc ~]# yum install MariaDB-server MariaDB-client
[root@bc ~]# yum install httpd php
[root@bc ~]# yum install zabbix-server-mysql zabbix-web-mysql
Dependencies Resolved
================================================================================================
Package Arch Version Repository Size
================================================================================================
Installing:
zabbix-server-mysql x86_64 3.2.2-1.el7 Zabbix 1.8 M
zabbix-web-mysql noarch 3.2.2-1.el7 Zabbix 5.2 k
Installing for dependencies:
OpenIPMI-libs x86_64 2.0.19-15.el7 Aliyun-CentOS7 502 k
OpenIPMI-modalias x86_64 2.0.19-15.el7 Aliyun-CentOS7 15 k
dejavu-fonts-common noarch 2.33-6.el7 Aliyun-CentOS7 64 k
dejavu-sans-fonts noarch 2.33-6.el7 Aliyun-CentOS7 1.4 M
fontpackages-filesystem noarch 1.44-8.el7 Aliyun-CentOS7 9.9 k
fping x86_64 3.10-4.el7 epel 46 k
iksemel x86_64 1.4-6.el7 epel 50 k
libXpm x86_64 3.5.11-3.el7 Aliyun-CentOS7 54 k
libtool-ltdl x86_64 2.4.2-21.el7_2 Aliyun-CentOS7 49 k
libxslt x86_64 1.1.28-5.el7 Aliyun-CentOS7 242 k
libzip x86_64 0.10.1-8.el7 Aliyun-CentOS7 48 k
net-snmp-libs x86_64 1:5.7.2-24.el7_2.1 Aliyun-CentOS7 747 k
php x86_64 5.4.16-42.el7 Aliyun-CentOS7 1.4 M
php-bcmath x86_64 5.4.16-42.el7 Aliyun-CentOS7 57 k
php-cli x86_64 5.4.16-42.el7 Aliyun-CentOS7 2.7 M
php-common x86_64 5.4.16-42.el7 Aliyun-CentOS7 564 k
php-gd x86_64 5.4.16-42.el7 Aliyun-CentOS7 127 k
php-ldap x86_64 5.4.16-42.el7 Aliyun-CentOS7 52 k
php-mbstring x86_64 5.4.16-42.el7 Aliyun-CentOS7 505 k
php-mysql x86_64 5.4.16-42.el7 Aliyun-CentOS7 101 k
php-pdo x86_64 5.4.16-42.el7 Aliyun-CentOS7 98 k
php-xml x86_64 5.4.16-42.el7 Aliyun-CentOS7 125 k
t1lib x86_64 5.1.2-14.el7 Aliyun-CentOS7 166 k
unixODBC x86_64 2.3.1-11.el7 Aliyun-CentOS7 413 k
zabbix-web noarch 3.2.2-1.el7 Zabbix 3.6 M
Transaction Summary
================================================================================================
Install 2 Packages (+25 Dependent packages)
我们可以看到其他之前提过的组件都在依赖关系中解决了。
zabbix-server-mysql zabbix-web-mysql这两个组件尤为核心。
(4)初始化数据库并创建数据库
[root@bc ~]# systemctl start mariadb.service
[root@bc ~]# mysql_secure_installation
[root@bc ~]# mysql -p
create database zabbix;
grant all on zabbix.* to 'zabbix'@'192.168.2.%' IDENTIFIED BY 'zabbix';
flush privileges;
(5)导入文件到刚才创建的zabbix的数据库
zcat /usr/share/doc/zabbix-server-mysql-3.2.1/create.sql.gz | mysql -uzabbix -p zabbix
(6)编辑Zabbix-server的配置文件
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
这里出现的用户,密码和数据库就是刚才用mysql命令创建的。
(7)修改php的相关参数
vim /etc/httpd/conf.d/zabbix.conf
<IfModule mod_php5.c>
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
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai
# php_value date.timezone Europe/Riga
</IfModule>
(8)启动服务
[root@bc ~]# systemctl start zabbix-server
(9)在浏览器上通过图形化设置
http://192.168.2.201/zabbix/
`这里键入的是Server端的ip地址`
Configuration file "/etc/zabbix/web/zabbix.conf.php" created.。
以后我们要修改主机就要在这个文件里面修改。
登陆的账号密码,默认是Admin:zabbix
Agent端:node2,node3的配置
(1)安装Agent组件
[root@bc ~]# scp /etc/yum.repos.d/zabbix.repo node3:/etc/yum.repos.d/
zabbix.repo 100% 151 0.2KB/s 00:00
[root@node3 ~]# yum install zabbix-agent
这里是从node1复制到repo文件,如果要监控的agent很多的话,可以使用ansible安装。
(2)修改配置文件并重启
[root@node3 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.2.201
[root@node3 ~]# service zabbix-agent restart
Redirecting to /bin/systemctl restart zabbix-agent.service
如何添加监控主机?
点“配置”->"主机"->“创建主机”
这里是添加node3:192.168.2.203
选用了一个模板叫Template OS Linux
最后可以看见,添加了ndoe2和node3两台主机,右边绿色的按钮表示Zabbix-agent的两个主机都工作正常。
Zabbix修改为中文界面,并去除中文乱码
a.Zabbix3.2的时候,中文选项已经有了很大的改进。没有了当初机翻的味道。
在右上角,退出的按钮旁边的那个小人头像那里,点进去可以选择语言。
b.解决中文乱码,变方块的方法
- 首先要在系统的windows那里找一个楷体中文
- 然后通过Xftp或者samba
Windows的共享方式
,把字体复制到指定路径下。
这个楷体常规的字体,复制到CentOS下就变成了simkai.ttf
[root@bc ~]# mkdir /usr/share/fonts/simkai/
[root@bc ~]# ll /usr/share/fonts/simkai/simkai.ttf
-rw-r--r--. 1 root root 11785184 Nov 22 14:25 /usr/share/fonts/simkai/simkai.ttf
- 修改默认字体:
[root@bc ~]# vim /usr/share/zabbix/include/defines.inc.php
define('ZBX_FONTPATH', '/usr/share/fonts/simkai'); # where to search for font (GD > 2.0.18)
define('ZBX_GRAPH_FONT_NAME', 'simkai'); // font file name
- 最终效果
在"监测" -> "图形"中
下面四行字的中文字没有变成方块,表示去乱码成功!!