首先须要了解的是zabbix是一种C/S架构的监控工具,即服务端(Server)须要安装zabbix-server用于处理各类监控及告警信息,客户端(Client)须要安装zabbix-agent用于收集客户端的监控数据。php
本地使用ansible做为自动化工具,接来下操做结合ansible进行。mysql
官方文档web
为server端主机和全部client主机配置rpm镜像库。sql
$ ansible all -m shell -a "chdir=/tmp wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm" $ ansible all -m shell -a "chdir=/tmp rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm"
官方文档: https://www.zabbix.com/documentation/3.0/manual/installationshell
$ yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql $ systemctl start zabbix-server $ systemctl enable zabbix-server
zabbix数据存储依赖于MySQL或postgresql,在此使用mysql,若是未安装mysql须要单独安装一下。安装完成后须要对数据库进行初始化:数据库
mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; $ zcat /usr/share/doc/zabbix-server-mysql-3.4.15/create.sql.gz | mysql -uzabbix -pzabbix zabbix
$ vi /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix $ systemctl start zabbix-server
$ vim /etc/httpd/conf.d/zabbix.conf 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 # 更改时区
启动httpd后访问:http://172.16.180.129/zabbix 进行可视化安装。安装完成后登录:vim
$ ansible all -m shell -a "yum install -y zabbix-agent"
Server=172.16.180.129 # 服务端ip ServerActive=172.16.180.129 # 服务端ip Hostname=system.hostname # 显示到监控中心的被监控主机的主机名,用于区分各个client
补充: zabbix获取数据有两种模式——主动模式/被动模式。Server表示被动模式,即由服务端定时向客户端采集数据;ServerActive表示主动模式,即客户端能够主动上报数据到服务端。bash
$ systemctl start zabbix-agent
配置文档服务器
应用集即监控项分组,为的是方便批量管理监控项。架构
监控项是从主机收集的数据信息。
配置主机后,你须要添加一些监控项以开始获取实际数据。
触发器是“评估”由项目采集的数据并表示当前系统情况的逻辑表达式。
针对各个监控项配置的告警规则。
模板是能够方便地应用于多个主机的一组实体。
解决图形中没法展现中文字体的问题。
检查相关代码:
$ less /usr/share/zabbix/include/defines.inc.php define('ZBX_FONTPATH', realpath('fonts')); // where to search for font (GD > 2.0.18) define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
即,字体相关文件为/usr/share/zabbix/fonts/graphfont
。
检查对应文件信息:
[root@host2 fonts]# ll lrwxrwxrwx 1 root root 33 3月 6 07:42 graphfont.ttf.bak -> /etc/alternatives/zabbix-web-font [root@host2 fonts]# ll /etc/alternatives/zabbix-web-font lrwxrwxrwx 1 root root 38 3月 6 07:42 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf
查资料发现,DejaVuSans.ttf 字体不支持中文。
处理办法:替换zabbix字符集便可
/usr/share/zabbix/fonts/FangZhengFangSongJianTi-1.ttf
graphfont.ttf
作软链接指向新的字体便可:ln -s FangZhengFangSongJianTi-1.ttf graphfont.ttf
(作软连前将原有graphfont.ttf文件更名备份)用于一些metrics的自动采集,如网卡信息。
监控处于TIME_WAIT状态的链接数量:
建立脚本 twait.sh :
#!/bin/bash # 统计listen状态的链接 netstat -ant |grep -c 'TIME_WAIT'
赋予脚本执行权限:chmod +x listen_num.sh
编辑zabbix_agentd.conf文件:
UnsafeUserParameters=1 # 容许向服务端传递全部参数 UserParameter=my.time_wait.count[*],/root/scripts/twait.sh # 自定义监控项的key为my.time_wait.count;后面的[*]写脚本的参数,若是没有参数可省略;最后为对应的脚本
重启zabbix-agent服务
到server端检验:
$ zabbix_get -s 172.16.180.129 -p 10050 -k 'my.time_wait.count' 29
配置中心——增长监控项