19.1 Linux监控平台介绍 

cacti,nagios和zabiix都是c/s架构,需要安装一个服务端,被监控的客户端上安装客户端。

都需要有LAMP的支持Nagios不需要数据库,cacti,zabiix都需要mysql支持,用来存储数据。

cacti擅长监控网络流量,成图专业。

Nagios监控某个指标并不返回具体的数值,而是只返回一个状态,告诉我们该指标正常或者不正常。发现指标不正常,直接报警。

zabiix可以存储数据,很方便的画图,而且支持查询历史数据。可以方便的自定义监控项目,可以定制化监控业务的某个指标,这个监听项目不可能在zabiix的自带模板中找到,所以只能自定义。还提供了易用的二次开发接口,方便扩展。

19.2 zabiix监控介绍

单个服务节点可以支持上万台客户端。官网为http://www.zabiix.com/ 最新版本3.4. 官网文档:http://www.zabiix.com/ manuals 主流版本文档 (1.4,1.6,1.8,2.0,2.2,)

zabiix组件

zabiix-server是整个监控体系最核心的组件,它负责接收客户端发送的报告信息,所有的配置,统计数据及操作数据都由它组织。

数据存储

web界面

在web界面中配置,管理各个客户端,需要php环境支持。

zabiix-proxy

zabiix-proxy为可选组件,用于监控节点非常多的分布式环境中,它可以代理zabiix-server的功能,减轻zabbix-server的压力。

zabbix-agent

zabbix-agent为部署在各客户端的组件,用于采集各监控项目的数据,并把采集的数据传输给zabiix-proxy,zabiix-server

zabbix结构

zabbix监控安装和部署

zabbix官网下载地址http://www.zabbix.com/download,版本3.2 安装zabbix的yum扩展源,然后利用yum安装zabbix即可。

[root@aminglinux-128 ~]# wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
--2018-09-10 17:41:40--  http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
正在解析主机 repo.zabbix.com (repo.zabbix.com)... 162.243.159.138
正在连接 repo.zabbix.com (repo.zabbix.com)|162.243.159.138|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:13392 (13K) [application/x-redhat-package-manager]
正在保存至: “zabbix-release-3.2-1.el7.noarch.rpm”

100%[==============================================================================================>] 13,392      --.-K/s 用时 0.001s  

2018-09-10 17:41:41 (12.5 MB/s) - 已保存 “zabbix-release-3.2-1.el7.noarch.rpm” [13392/13392])
[root@aminglinux-128 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
警告:zabbix-release-3.2-1.el7.noarch.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-release-3.2-1.el7         ################################# [100%]
[root@aminglinux-128 ~]# yum list |grep zabbix
zabbix-release.noarch                     3.2-1.el7                    installed
iksemel.x86_64                            1.4-2.el7.centos             zabbix-non-supported
iksemel-devel.x86_64                      1.4-2.el7.centos             zabbix-non-supported
iksemel-utils.x86_64                      1.4-2.el7.centos             zabbix-non-supported
pcp-export-pcp2zabbix.x86_64              3.12.2-5.el7                 base     
pcp-export-zabbix-agent.x86_64            3.12.2-5.el7                 base     
python-pyzabbix.noarch                    0.7.3-2.el7                  epel     
uwsgi-stats-pusher-zabbix.x86_64          2.0.16-1.el7                 epel

安装所有的包

[root@aminglinux-128 ~]#  yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql

连带安装httpd和php,让httpd监听8080端口,让nginx去代理httpd。

配置nginx

[root@aminglinux-128 ~]# systemctl start httpd
[root@aminglinux-128 ~]# vim /etc/httpd/conf/httpd.conf
[root@aminglinux-128 ~]# netstat -lnpt |grep httpd
tcp6       0      0 :::8080                 :::*                    LISTEN      6869/httpd          
[root@aminglinux-128 ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

上例为使其加入开机启动

创建nginx的虚拟主机配置文件:

vim /etc/local/nginx/conf/vhost/zabbix.conf
server
{
   listen 80;
   server_name 192.68.193.128://

   location /
   {

   proxy_pass       http://192.168.193.128:8080/;
   proxy_set_header Host    $host;
   proxy_set_header X-Real-IP        $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}
# /usr/local/nginx/sbin/nginx -t
#/usr/local/nginx/sbin/nginx -s reload

配置mysql

[root@aminglinux-128 ~]# vim /etc/my.cnf

在【mysqld】模块下面修改或增加如下内容

character_set-server =utf8

重启mysql服务

/etc/init.d/mysqld restart
[root@localhost ~]# /etc/init.d/mysqld restart
 ERROR! MySQL server PID file could not be found!
Starting MySQL........ SUCCESS!
[root@aminglinux-128 ~]# mysql -u'user1' -p'123456' -h'127.0.0.1'

创建zabbix库,字符集为UTF-8

mysql> create database zabbix character set utf8

创建zabbix用户

mysql> grant all on zabbix.* to  'zabbix@'127.0.0.1' identied by '123456';
    '> quit

导入zabbix相关的数据:

进入zabbix-server-mysql目录 :
[root@aminglinux-128 ~]#  ls /usr/share/doc/zabbix-server-mysql-3.2.11/
AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README
[root@aminglinux-128 ~]#  cd /usr/share/doc/zabbix-server-mysql-3.2.11/

解压当前目录create.sql.gz压缩包 

[root@aminglinux-128 zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz

把解压的create.sql文件内容,导入zabbix里 :

[root@aminglinux-128 zabbix-server-mysql-3.2.11]# mysql -uroot -phaomima zabbix < create.sql
Warning: Using a password on the command line interface can be insecure.

使其开机启动

[root@aminglinux-128 zabbix-server-mysql-3.2.11]# systemctl enable httpd

修改zbbix-server的配置文件,并启动zabbix-server服务:

增加如下内容

DBHost=127.0.0.1

DBPassword=haomima-zabbix

启动zabbix-server服务

开机启动

[root@aminglinux-128 zabbix-server-mysql-3.2.11]# systemctl start zabbix-server
[root@aminglinux-128 zabbix-server-mysql-3.2.11]# enable start zabbix-server
-bash: enable: start: 不是shell内建
-bash: enable: zabbix-server: 不是shell内建
[root@aminglinux-128 zabbix-server-mysql-3.2.11]# systemctl enable  zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service

zabbix-server监听10051端口

配置web界面

在浏览器输入http://192.168.193.149.

点击下一步提示date.timezone的警告,

vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai

在里面添加上面的内容

忘记admin密码

进入mysql命令行,选择zabbix库:

[root@aminglinux-128 ~]# mysql -uroot -phaomima zabbix
Warning: Using a password on the command line interface can be insecure.
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3255
Server version: 5.6.39-log MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> update zabbix.users set passwd=md5('aminglinux') where alias='Admin';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>