第一章 Zabbix基础概念及安装

Zabbix基础概念

1.1 何谓自动化运维

(1)硬件标准化——包括服务器、内存、系统版本等。
(2)软件标准化——应用版本等。
(3)运维自动化——包括监控、发布、CMDB。
笔者的理解,运维自动化,就是把运维中大量平常重复性工做使用工具让其自动运行,减小人的参与。首先它要包括如下几部分:
(1)监控报警——系统数据,应用指标的监控,和出错时及时报警。
(2)发布系统——代码发布,发布后的检查,代码的回滚,灰度发布。
(3)服务器标准化——Cobbler装机加上Puppet,能够作到硬件、软件的标准化。每台机器对于运维来讲都是同样的。
(4)CMDB——配置管理数据库,存储了全部运维相关数据,包括服务器硬件信息、域名php

1.2 监控系统在运维自动化中的角色

监控系统,是运维工程师和研发工程师的眼睛,它帮助工程师在第一时间发现网站的问题。
服务器的整个生命周期,都要和监控系统打交道。服务器上架,须要加入基础监控,好比CPU负载、内存等;当服务器上开始跑应用时,须要加入对应的应用监控,好比Resin、MySQL等;当服务器维护时,又要暂停这些报警,不然你明明在维护MySQL,监控系统还给你报警说MySQL挂了。这些操做,手动去作很是麻烦,须要跟运维的其余系统共同协做,好比CMDB中一台机器上架了,那么监控系统自动加入监控。
监控系统在运维自动化里的角色,能够用下面三点来归纳。
(1)监控数据收集及可视化。
(2)异常数据报警。
(3)和其余系统协同工做。mysql

1.3 选择zabbix的理由

一、监控系统可以自定义监控的内容,能够本身写脚原本收集须要的数据——Zabbix支持任何自定义的监控脚本,只要输出须要的值就能够。
二、数据要保存在数据库中,这样在须要的时候能够对这些数据进行分析计算——Zabbix在数据库中的表结构虽然有些复杂,但逻辑很清晰。
三、可以方便、快速地将监控加入到服务器上,不须要烦琐的操做——Zabbix有模板这一律念,能够方便地将一组Item进行统一操做。
四、数据可视化不要很花哨,但要好用——Zabbix每个Item均可以看到其历史,Web界面可拖动,界面友好。
五、能够定义复杂的报警逻辑,作到Item之间的关联报警,而不是只能针对一个——Zabbix强大的Trigger定义,几乎能够知足全部规则组合。
六、报警须要被确认,让运维人员知道多少报警已经有人认领并开始处理了——Zabbix对于报警,有ACK机制。
七、报警方式要可以自定义,能够发邮件、发短信,若是可以在IM上通知别人就更好了——Zabbix支持邮件、Jabber。
八、报警内容要本身可设置,在报警邮件中加入一些简单的分析,而不是让运维人员上服务器敲命令来获取基本的信息——Zabbix自定义了一套宏能够在报警邮件中引用,若是要更复杂的功能,能够经过远程调用命令实现。
九、报警后能够自动跑一些命令。这些命令能够是获取运维人员须要的信息,也能够是自动修复,好比重启服务等——在触发报警后,Zabbix能够远程执行命令。
十、监控数据是开放的,数据库中的数据结构不要太复杂,让人无从下手——监控数据就在Zabbix数据库中,能够方便地进行分析。
十一、监控可视化的图能够方便的引用,而不是要用一大串JavaScript——Zabbix使用PHP原生的绘图模块,若是要引用Zabbix的图表,只须要引用图表的URL便可,很是方便。web

1.4 Zabbix部分名词约定

Zabbix server:zabbix的控制中心,收集数据、写入数据库都是它的工做。
Zabbix Agent:部署在被监控服务器上的一个进程,负责和zabbix server交互,执行命令。
Host:广义上的服务器,大多数状况指代的是刀片机这类,在少部分时间会指代包括交换机在内的,被zabbix监控的实体。
Item:对于某一个指标的监控,对应的是Items,英文原意是“物品”。好比某台服务器的CPU负载就是一个Item。
Trigger:一些逻辑规则的组合,它有三个值:正常、异常、未知。
Action:当Trigger符合某个值的时候,Zabbix会进行的操做,好比最多见的发邮件。sql

Zabbix4.0快速搭建

2.1 Zabbix组件概述

  • Zabbix server:负责接收agent发送的报告信息的核心组件,全部配置、统计数据及操做数据均由其组织进行
  • Database storage:专用于存储全部配置信息,以及由zabbix收集的数据
  • Web interface:zabbix的GUI接口,一般与server运行在同一主机上。
  • Proxy:可选组件,经常使用于分布监控环境中,代理server收集部分被监控端的监控数据并统一发往server端。
  • Agent:部署在被监控主机上,负责收集本地数据并发往server端或proxy端
  • Zabbix_get:命令行工具,手动测试向agent发起数据采集请求
  • Zabbix_sender:,命令行工具,运行于agent端,手动向server端发送数据

2.2 Zabbix安装

一、安装zabbix-release包
[root@ntp ~]# cd /home/iflytek/
[root@ntp iflytek]# wget -q
https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@ntp iflytek]# ls
zabbix-release-4.0-1.el7.noarch.rpm
[root@ntp iflytek]# rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm

二、开始安装zabbix(采用yum安装的方式)
1)yum安装zabbix组件
yum install zabbix-server zabbix-web zabbix-server-mysql zabbix-web-mysql mariadb-server mariadb zabbix-agent -y
注释:
yum -y install zabbix zabbix-server zabbix-server-mysql #<==ZABBIX SERVER相关
yum -y install zabbix-web zabbix-web-mysql #<==Apache、Php Web界面环境
yum -y install zabbix-agent #<== ZABBIX客户端
yum -y install mysql-server mysql #<==MySQL客户端与服务端
yum -y install zabbix-get #<==zabbix命令行工具

2)初始化apache服务的zabbix配置
[root@ntp ~]# cat  /etc/httpd/conf.d/zabbix.conf
#
# Zabbix monitoring system php web frontend
#
Alias /zabbix /usr/share/zabbix
<Directory "/usr/share/zabbix">
    Options FollowSymLinks
    AllowOverride None
    Require all granted

    <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  #修改时区
</IfModule>

3)启动httpd以及mysql
[root@ntp xujun]# systemctl start httpd
[root@ntp xujun]# systemctl start mariadb

4)初始化zabbix存储数据的数据库MySQL
[root@ntp ~]# mysql
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
[root@ntp]# cd /usr/share/doc/zabbix-server-mysql-4.0.0/
[root@ntp zabbix-server-mysql-4.0.0]# zcat create.sql.gz |mysql -uzabbix -pzabbix zabbix #导入数据库

5)修改zabbix配置
[root@ntp ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=localhost  #数据库所在主机
DBName=zabbix     #数据库名
DBUser=zabbix     #数据库用户
DBPassword=zabbix  #数据库密码

6)启动zabbix及http
systemctl start zabbix-server
systemctl restart httpd

三、web界面安装zabbix
访问http://192.168.89.12/zabbixshell

至此安装完成!!!数据库

安装zabbix遇到的错误

一、zabbix到安装界面报错" Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock"apache

mysql和zabbix正常安装后在,zabbix安装页面(链接数据库的界面)时,提示“”Error connecting to database: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)“”
缘由是经过这个目录下的mysql.sock不能链接到数据库,到这个目录下发现没有这个文件,而/etc/my.cnf下正确的mysql.sock目录是/tmp/mysql.sock。
尝试的操做:
(1)将my.cnf下的sock路径改为/var/lib/mysql/mysql.sock  不能正常
(2)将zabbix_server.conf里面的DBsock路径也改为和my.cnf里面的路径,也是不行

最终的解决办法是: my.cnf里面socket路径改为/tmp/mysql.sock,并作了一个软连接:ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock 后才正常

二、安装zabbix碰到Unable to select configuration的解决方法vim


从新导入zabbix sql文件windows

三、中文乱码的问题

解决乱码:
一、从windows服务器找到相应的字体负债到zabbix server服务器上
控制面板-->外观和个性化-->字体-->选择一种中文字体如“楷体”(simkai.ttf)服务器

二、将咱们选择的字体文件上传到zabbix web服务,/usr/share/zabbix/fonts目录下

[root@Node3 fonts]# cd /usr/share/zabbix/fonts
[root@Node3 fonts]# ls
graphfont.ttf  simkai.ttf

三、修改此/usr/share/zabbix/include/defines.inc.php文件中字体的配置,将里面关于字体设置从graphfont替换成simkai

四、再次打开界面,发现乱码已经解决了,以下图所示:

相关文章
相关标签/搜索