19.1 Linux监控平台介绍
1. Linux监控平台介绍,若一个企业里没有监控的话,就好比是瞎子一样,不知道前面的路,也不知道后面发生了什么事情. 尤其是一些重要的业务,若果没有监控的话,那只能等着用户反馈. 一些小企业经常网站挂掉一天了,还不知道,经常用户打电话过来说网站访问不了,是什么情况,尽快修复一下,这个时候才发现网站挂掉了. 不管是企业还是大企业一些重要的业务监控做的不到位,网站挂掉仍然浑然不知,尤其是初创公司,创业型的公司,一开始做的比较快,业务增长量还是比较大,从一开始监控做的不完善, 经常因为某一个的业务挂掉,导致他的用户影响非常大.对于初创型的公司来讲影响还是蛮大的,可能是致面性的打击,本来可能好不容易积攒了一些用户,但是因为平台不稳定,导致用户不够信任.
2. 常见的开源监控软件有:cacti、nagios、zabbix、smokeping、open-falcon等.
cacti和somkeping偏向于基础监控,比较合适监控网络设备,成图非常漂亮.
cacti、nagios、zabbix服务端监控中心,需要PHP环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项目的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图.
open-falcon为小米公司开发,开源后收到诸多大公司和运维工程师的追捧,适合大企业,滴滴、360、新浪微博、京东等大公司在使用这款监控软件,值得研究.
后续以介绍zabbix为主,为什么呢? nagios是前两年开始比较流行的一款监控软件,好多公司都在使用. 后来的话zabbix越来越流行,好多公司在使用,为什么说zabbix越来越多公司在使用呢,而不再使用nagios呢?zabbix比nagios有更多的优势,而且配置起来呢,更加的简单.
zabbix和nagios以及cacti 这几款监控软件,都支持web界面去管理,去控制,其中zabbix在web界面管理的非常彻底,可以增加监控截点,可以配置具体的监控项目,还可以配置报警预知等,为什么很多人使用zabbix,原因就在这里,因为在浏览器上鼠标点击做一些设置,就能实现需求. 而nagios 还需要去改配置文件,去写配置文件,定义很多的规则,很繁琐. nagios和zabbix相比,nagios更注重某一个监控的状态,比如说某一个监控它是正常还是不正常,一目了然,它仅仅关系它的一个状态,nagios不需要关注历史,过去十分钟,过去一个小时,数值是什么样的它不关心. 而zabbix需要把每一刻,每一次统计的项目都要抓到一个数值过来,那这个数值存到了数据库里面,也就意味着我们可以利用这些历史的数据画图,去形成一个图标. nagios不需要mysql的支持,所以它不能成图,想画图的得要有一个插件. cacti 需要mysql的支持,可以记录历史的数据.
19.2 zabbix监控介绍
zabbix是c/s架构,有一个服务端去客户端抓数据, 它抓数据是怎么抓的呢? 它必须需要有一个Agent,也就是说在客户端要有一个服务启动着,这个服务是负责采集数据的,那个数据可以主动的上报给服务端,也可以让服务端去连接客服端抓这个数据,也就意味着客户端有两种模式,一种是主动模式,另一种是被动模式. zabbix这个软件是基于c++开发的,所以说它的性能还是挺快的. 监控中需要一个php的环境,因为我们要开启一个web界面,单台server截点,理论上是支持上万台客户端的,也就是说它的并发量还是蛮大,它的瓶颈可能在于采集数据的量,虽然说支持上万台客户端,但是上万台客户端监控的项目太多的话,也会导致效率降低,所以说当服务器的规模大到一定程度的时候,zabbix就需要做一些优化了,比如说增加proxy,也就是说增加一些代理点,这个代理点充当Server的角色,它替代这个Server采集数据,最终得到分析结果后,再汇报给Server.
最新版本是3.4,官方文档网址:https://www.zabbix.com/manuals
在zabbix的架构里,包括了5个组件:
1. zabbix-Server -- 监控中心 (必不可少的),接收客户端上报的信息,负责配置,统计,操作数据,数据 是存储到数据库里.
2. web界面也是非常重要的一个角色,如果没有它的话,就无法在浏览器上去配置它. 也叫做Web UI ,在Web 界面下操作配置是zabbix简单易用的主要原因.
3. zabbix-proxy 可选组件,当机器量很大的时候,可以使用zabbix-proxy 减轻Server的负载 .有时候服务可能分布在多个机房里,每一个机房的服务器之间是单独的一个内网,这时候就可以在某一个局域网里搭建zabbix-proxy,用这台proxy去监控这个局域网内的机器.
4. zabbix-proxy 可选组件,当机器量很大的时候,可以使用zabbix-proxy 减轻Server的负载 .有时候服务可能分布在多个机房里,每一个机房的服务器之间是单独的一个内网,这时候就可以在某一个局域网里搭建zabbix-proxy,用这台proxy去监控这个局域网内的机器.
5.zabbix-agent 客户端软件, 每一台服务器上都需要安装agent, 负责采集各个监控服务或项目的数据,并上报.
如果想监控一个服务器,1.首先是添加监控主机到监控中心去,让这两者先通信,2.添加监控的项目,配置好了监控项目,能够和服务端通信了. 3. 能够和服务端通信了,那么就是采集数据. 4. 采集到数据上报的数据中心去(也就是存入数据库--mysql).5. zabbix-server 采集数据可以是被动也可以是主动模式. 6. zabbix-server需要配置一个告警规则,采集的数据有没有到达告警的条件呢? 如果达到了告警条件,那就告警,如果没有的话,就仅仅是存储.
zabbix 需要配置告警规则,还需要配置告警的机制,若检测到了数据不正常了,需要告警了, 如何告警? 是发邮件,还是发短信,通知给谁呢? 都需要在服务端,server中心去配置,那所有的配置都是在web界面(UI)这里面去配置的.
19.3/19.4/19.6 安装zabbix
下载zabbix 3.2版本
准备两台机器:一台是服务端(监控中心); 另外一台是客户端;
说明:zabbix官网下载 https://www.zabbix.com/download
找到相对应的发行版(红帽企业Linux CentOS Oracle Linux)
点击download,找到包含release的rpm包
http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
下载安装zabbix -- 服务端操作
[root@localhost ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
#安装zabbix rpm包
[root@localhost ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
#安装完之后可以看到/etc/yum.repos.d/ 下多了zabbix.repo
这其实就刚刚安装rpm包所安装的一个文件(也就是有yum源)
有这个yum源就可以直接yum安装zabbix了.
[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo zabbix.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo percona-release.repo
#安装zabbix相关的包
[root@localhost ~]# yum list |grep zabbix
zabbix-release.noarch 3.2-1.el7 installed
fping.x86_64 3.10-1.el7 zabbix-non-supported
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-zabbix-agent.x86_64 3.11.3-4.el7 base
zabbix-agent.x86_64 3.2.7-1.el7 zabbix
zabbix-get.x86_64 3.2.7-1.el7 zabbix
zabbix-java-gateway.x86_64 3.2.7-1.el7 zabbix
zabbix-proxy-mysql.x86_64 3.2.7-1.el7 zabbix
zabbix-proxy-pgsql.x86_64 3.2.7-1.el7 zabbix
zabbix-proxy-sqlite3.x86_64 3.2.7-1.el7 zabbix
zabbix-sender.x86_64 3.2.7-1.el7 zabbix
zabbix-server-mysql.x86_64 3.2.7-1.el7 zabbix
zabbix-server-pgsql.x86_64 3.2.7-1.el7 zabbix
zabbix-web.noarch 3.2.7-1.el7 zabbix
zabbix-web-japanese.noarch 3.2.7-1.el7 zabbix
zabbix-web-mysql.noarch 3.2.7-1.el7 zabbix
zabbix-web-pgsql.noarch 3.2.7-1.el7 zabbix
[root@localhost ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
zabbix的安装包作用分别如下:
zabbix-agent:客户端程序
zabbix-get:服务端上命令行获取客户端检测项目的工具
zabbix-server-mysql:zabbix-server MySQL版
zabbix-web:web界面
zabbix-web-mysql:web界面MySQL相关
注:在yum安装zabbix安装包的时候可以看到(因为内容太多没有显示出来),会连带安装httpd和php,也就是说zabbix需要LAMP支持. 如果从来没有安装过MySQL,按照安装LAMP和LNMP的方式安装一下MySQL.
启动MySQL
[root@localhost ~]# /etc/init.d/mysqld start
[root@localhost ~]# ps aux |grep mysql
root 3086 0.0 0.1 113256 1068 pts/1 S 18:44 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid
mysql 3195 0.1 18.6 973056 186172 pts/1 Sl 18:44 0:14 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid
root 61488 0.0 0.0 112668 968 pts/1 S+ 21:30 0:00 grep --color=auto mysql
编辑MySQL的配置文件
说明: 设定默认的字符集,若不设置,后续zabbix Web界面设置中文的时候,可能中文显示会有点问题
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
character_set_server = utf8
#重启mysql服务
[root@localhost ~]# /etc/init.d/mysqld restart
Shutting down MySQL... SUCCESS!
Starting MySQL......... SUCCESS!
创建Zabbix库 & Zabbix用户
#登录mysql
[root@localhost ~]# mysql -uroot
-bash: mysql: 未找到命令
说明: 提示未找mysql命令,是因为这个命令是在 /usr/local/mysql/bin/mysql,而/usr/local/mysql/bin/mysql并没有在环境变量PATH里面
#把/usr/local/mysql/bin/mysql 加入到PATH里面,之后就可以直接使用mysql命令
[root@localhost ~]# ls /usr/local/mysql/bin/mysql
/usr/local/mysql/bin/mysql
[root@localhost ~]# export PATH=$PATH:/usr/local/mysql/bin/
# export PATH=$PATH:/usr/local/mysql/bin/这个变量加到/etc/profile配置文件最后面,并立即生效
[root@localhost ~]# vim /etc/profile
[root@localhost ~]# source /etc/profile
#再登录就ok了
[root@localhost ~]# mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.35 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, 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>
#创建zabbix库,并且指定字符集
mysql> create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)
#创建zabbix用户
mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
导入Zabbix相关的数据
说明:导入Zabbix一些原始的数据,若没有这些数据Zabbix就无法工作
#zabbix 自带的数据在/usr/share/doc/zabbix-server-mysql-3.2.7/目录下
[root@localhost ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.7/
[root@localhost zabbix-server-mysql-3.2.7]# ls
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
# create.sql.gz 是一个压缩包,需要解压
[root@localhost zabbix-server-mysql-3.2.7]# gzip -d create.sql.gz
[root@localhost zabbix-server-mysql-3.2.7]# ls
AUTHORS ChangeLog COPYING create.sql NEWS README
#把解压后的create.sql文件导入到zabbix库里面去
[root@localhost zabbix-server-mysql-3.2.7]# mysql -uroot zabbix < create.sql
修改zabbix配置文件
[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=127.0.0.1 写来源IP 在DBName=zabbix上增加
DBPassword=123456 这是zabbix用户的密码,在mysql创建zabbix用户时设置的密码 在DBuser=zabbix下面增加
注:若mysql数据库 在另外一台机器上,DBHost就要写mysql数据库所在机器的IP.
在这里因为是本机写127.0.0.1即可.
启动zabbix 以及httpd 服务
#启动zabbix服务
[root@localhost ~]# systemctl start zabbix-server
#启动httpd服务之前看看80端口是否被占用,若占用先停掉
[root@localhost ~]# netstat -nlpt |grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 45077/nginx: master
[root@localhost ~]# /etc/init.d/nginx stop
Stopping nginx (via systemctl): [ 确定 ]
#启动httpd服务
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# netstat -nlpt |grep httpd
tcp6 0 0 :::80 :::* LISTEN 61969/httpd
#把zabbix和httpd服务加入启动服务列表
[root@localhost ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@localhost ~]# 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.
#把nginx服务off掉
[root@localhost ~]# systemctl disable nginx
nginx.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig nginx off
[root@localhost ~]# chkconfig nginx off
#启动zabbix-server没有提示错误,但服务却没有启动
[root@localhost ~]# systemctl start zabbix-server
[root@localhost ~]# ps aux |grep zabbix
root 62641 0.0 0.0 112664 972 pts/1 S+ 23:03 0:00 grep --color=auto zabbix
解决:查看日志 日志路径/var/log/zabbix/zabbix_server.log
日志信息是没有权限
62718:20170907:230525.135 cannot set resource limit: [13] Permission denied
62718:20170907:230525.135 cannot disable core dump, exiting...
#把selinux防火墙关闭就可以启动zabbix服务
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/selinux/config
SELINUX=enforcing 更改为SELINUX=disabled
#启动zabbix服务,就可以看到zabbix-server监听了10051端口以及进程
[root@localhost ~]# systemctl start zabbix-server
[root@localhost ~]# netstat -nlpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 987/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2042/master
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 62908/zabbix_server
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 42503/php-fpm: mast
tcp6 0 0 :::3306 :::* LISTEN 61683/mysqld
tcp6 0 0 :::80 :::* LISTEN 61969/httpd
tcp6 0 0 :::22 :::* LISTEN 987/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2042/master
tcp6 0 0 :::10051 :::* LISTEN 62908/zabbix_server
[root@localhost ~]# ps aux |grep zabbix
zabbix 62908 15.5 0.4 255736 4148 ? S 23:11 0:01 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
zabbix 62911 0.0 0.2 255736 2464 ? S 23:11 0:00 /usr/sbin/zabbix_server: configuration syncer [waiting 60 sec for processes]
zabbix 62912 0.0 0.2 255736 2680 ? S 23:11 0:00 /usr/sbin/zabbix_server: db watchdog [synced alerts config in 0.005885 sec, idle 60 sec]
zabbix 62913 7.2 0.5 362664 5000 ? S 23:11 0:00 /usr/sbin/zabbix_server: poller #1 [got 0 values in 0.000010 sec, idle 5 sec]
zabbix 62914 4.2 0.5 362664 5000 ? S 23:11 0:00 /usr/sbin/zabbix_server: poller #2 [got 0 values in 0.000009 sec, idle 5 sec]
zabbix 62915 5.0 0.5 362664 5000 ? S 23:11 0:00 /usr/sbin/zabbix_server: poller #3 [got 0 values in 0.000010 sec, idle 5 sec]
zabbix 62916 8.3 0.5 362664 5000 ? S 23:11 0:00 /usr/sbin/zabbix_server: poller #4 [got 0 values in 0.000011 sec, idle 5 sec]
zabbix 62917 4.4 0.5 362664 5000 ? S 23:11 0:00 /usr/sbin/zabbix_server: poller #5 [got 0 values in 0.000011 sec, idle 5 sec]
zabbix 62918 4.7 0.4 362664 4968 ? S 23:11 0:00 /usr/sbin/zabbix_server: unreachable poller #1 [got 0 values in 0.000010 sec, idle 5 sec]
zabbix 62919 1.0 0.3 255736 3576 ? S 23:11 0:00 /usr/sbin/zabbix_server: trapper #1 [processed data in 0.000000 sec, waiting for connection]
zabbix 62920 1.0 0.3 255736 3576 ? S 23:11 0:00 /usr/sbin/zabbix_server: trapper #2 [processed data in 0.000000 sec, waiting for connection]
zabbix 62921 2.4 0.3 255736 3576 ? S 23:11 0:00 /usr/sbin/zabbix_server: trapper #3 [processed data in 0.000000 sec, waiting for connection]
zabbix 62922 0.7 0.3 255736 3576 ? S 23:11 0:00 /usr/sbin/zabbix_server: trapper #4 [processed data in 0.000000 sec, waiting for connection]
zabbix 62923 1.0 0.3 255736 3576 ? S 23:11 0:00 /usr/sbin/zabbix_server: trapper #5 [processed data in 0.000000 sec, waiting for connection]
zabbix 62924 0.4 0.2 258308 2464 ? S 23:11 0:00 /usr/sbin/zabbix_server: icmp pinger #1 [got 0 values in 0.000008 sec, idle 5 sec]
zabbix 62925 4.5 0.2 255736 2684 ? S 23:11 0:00 /usr/sbin/zabbix_server: alerter [sent alerts: 0 success, 0 fail in 0.102757 sec, idle 30 sec]
zabbix 62930 1.0 0.2 255736 2464 ? S 23:11 0:00 /usr/sbin/zabbix_server: housekeeper [startup idle for 30 minutes]
zabbix 62931 0.7 0.2 255736 2684 ? S 23:11 0:00 /usr/sbin/zabbix_server: timer #1 [processed 0 triggers, 0 events in 0.000000 sec, 0 maintenances in 0.000000 sec, idle 14 sec]
zabbix 62933 0.5 0.2 255736 2684 ? S 23:11 0:00 /usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.001389 sec, idle 5 sec]
zabbix 62935 4.7 0.5 360200 5096 ? S 23:11 0:00 /usr/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.002326 sec, idle 60 sec]
zabbix 62936 3.0 0.2 255736 2688 ? S 23:11 0:00 /usr/sbin/zabbix_server: history syncer #1 [synced 0 items in 0.000003 sec, idle 1 sec]
zabbix 62938 1.3 0.2 255736 2688 ? S 23:11 0:00 /usr/sbin/zabbix_server: history syncer #2 [synced 0 items in 0.000002 sec, idle 1 sec]
zabbix 62940 0.2 0.2 255736 2688 ? S 23:11 0:00 /usr/sbin/zabbix_server: history syncer #3 [synced 0 items in 0.000003 sec, idle 1 sec]
zabbix 62942 0.1 0.2 255736 2688 ? S 23:11 0:00 /usr/sbin/zabbix_server: history syncer #4 [synced 0 items in 0.000004 sec, idle 1 sec]
zabbix 62943 1.0 0.3 255736 3576 ? S 23:11 0:00 /usr/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.001934 sec, idle 3 sec]
zabbix 62947 2.4 0.3 255736 3576 ? S 23:11 0:00 /usr/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000008 sec, idle 5 sec]
zabbix 62951 1.1 0.2 255736 2464 ? S 23:11 0:00 /usr/sbin/zabbix_server: self-monitoring [processed data in 0.000010 sec, idle 1 sec]
zabbix 62956 1.1 0.2 255736 2680 ? S 23:11 0:00 /usr/sbin/zabbix_server: task manager [processed 0 task(s) in 0.064357 sec, idle 5 sec]
root 62965 0.0 0.0 112668 972 pts/1 S+ 23:11 0:00 grep --color=auto zabbix
配置Web界面
说明:在浏览器上输入http://192.168.112.134/zabbix/ 就会出现以下页面.
yum 安装zabbix, 默认会安装httpd以及zabbix配置文件,所以不需要任何的配置就能显示这个界面.
#点击下一步
这里有个问题提示需要设置data.timezone
# 去PHP配置文件设置timezone
[root@localhost ~]# vim /etc/php.ini
date.timezone = Asia/Shanghai
#然后重启httpd服务
[root@localhost ~]# systemctl restart httpd
#刷新页面,所有变成ok了#点击下一步
填写mysql相关的信息
说明:数据库端口 0 -- 默认就是3306 ,若mysql监听的端口不是3306,这里就需要改.
数据库名称 -- zabbix
用户 -- zabbix
密码 -- 123456
#点击下一步
设置zabbix-server的主机名
说明:随意定
#点击下一步
说明:这里只是为了让我们看看自己填的信息是什么.
#点击下一步
说明:提示成功安装zabbix
#点击 一下步
说明:登录zabbix页面
默认的管理员是admin,密码是zabbix,登录进去
更改密码
点击administration -- Users -- 找到Admin用户点进去--点击change password
选择语言中文--点击完成 -- 更改语言后界面仍是英文的界面,刷新一下即可.
如图所示:
19.5 忘记Admin密码如何做
说明:重置admin密码的方法与重置Mysql root密码异曲同工,也就是说直接更改数据库的数据即可.
登录MySQL
#登录MySQL
[root@localhost ~]# mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 246
Server version: 5.6.35 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, 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.
#进入zabbix库
mysql> use zabbix
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
#查看Zabbix相关的表
mysql> show tables;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
| actions |
| alerts |
| application_discovery |
| application_prototype |
| application_template |
| applications |
| auditlog |
| auditlog_details |
| autoreg_host |
| conditions |
| config |
| corr_condition |
| corr_condition_group |
| corr_condition_tag |
| corr_condition_tagpair |
| corr_condition_tagvalue |
| corr_operation |
| correlation |
| dbversion |
| dchecks |
| dhosts |
| drules |
| dservices |
| escalations |
| event_recovery |
| event_tag |
| events |
| expressions |
| functions |
| globalmacro |
| globalvars |
| graph_discovery |
| graph_theme |
| graphs |
| graphs_items |
| group_discovery |
| group_prototype |
| groups |
| history |
| history_log |
| history_str |
| history_text |
| history_uint |
| host_discovery |
| host_inventory |
| hostmacro |
| hosts |
| hosts_groups |
| hosts_templates |
| housekeeper |
| httpstep |
| httpstepitem |
| httptest |
| httptestitem |
| icon_map |
| icon_mapping |
| ids |
| images |
| interface |
| interface_discovery |
| item_application_prototype |
| item_condition |
| item_discovery |
| items |
| items_applications |
| maintenances |
| maintenances_groups |
| maintenances_hosts |
| maintenances_windows |
| mappings |
| media |
| media_type |
| opcommand |
| opcommand_grp |
| opcommand_hst |
| opconditions |
| operations |
| opgroup |
| opinventory |
| opmessage |
| opmessage_grp |
| opmessage_usr |
| optemplate |
| problem |
| problem_tag |
| profiles |
| proxy_autoreg_host |
| proxy_dhistory |
| proxy_history |
| regexps |
| rights |
| screen_user |
| screen_usrgrp |
| screens |
| screens_items |
| scripts |
| service_alarms |
| services |
| services_links |
| services_times |
| sessions |
| slides |
| slideshow_user |
| slideshow_usrgrp |
| slideshows |
| sysmap_element_url |
| sysmap_url |
| sysmap_user |
| sysmap_usrgrp |
| sysmaps |
| sysmaps_elements |
| sysmaps_link_triggers |
| sysmaps_links |
| task |
| task_close_problem |
| timeperiods |
| trends |
| trends_uint |
| trigger_depends |
| trigger_discovery |
| trigger_tag |
| triggers |
| users |
| users_groups |
| usrgrp |
| valuemaps |
+----------------------------+
127 rows in set (0.00 sec)
# 密码存在了users表里面
mysql> desc users;
+----------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+---------------------+------+-----+---------+-------+
| userid | bigint(20) unsigned | NO | PRI | NULL | |
| alias | varchar(100) | NO | UNI | | |
| name | varchar(100) | NO | | | |
| surname | varchar(100) | NO | | | |
| passwd | char(32) | NO | | | |
| url | varchar(255) | NO | | | |
| autologin | int(11) | NO | | 0 | |
| autologout | int(11) | NO | | 900 | |
| lang | varchar(5) | NO | | en_GB | |
| refresh | int(11) | NO | | 30 | |
| type | int(11) | NO | | 1 | |
| theme | varchar(128) | NO | | default | |
| attempt_failed | int(11) | NO | | 0 | |
| attempt_ip | varchar(39) | NO | | | |
| attempt_clock | int(11) | NO | | 0 | |
| rows_per_page | int(11) | NO | | 50 | |
+----------------+---------------------+------+-----+---------+-------+
16 rows in set (0.00 sec)
#更改密码
mysql> mysqle users set passwd=md5('586898') where alias='admin';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> quit
Bye
重新登陆Zabbix
说明:使用刚刚重新设定的密码登录
下载安装zabbix -- 客服端操作
[root@localhost ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
#安装zabbix rpm包
[root@localhost ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
#安装完之后可以看到/etc/yum.repos.d/ 下多了zabbix.repo
这其实就刚刚安装rpm包所安装的一个文件(也就是有yum源)
有这个yum源就可以直接yum安装zabbix了.
[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo zabbix.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo percona-release.repo
[root@localhost ~]# yum install -y zabbix-agent
zabbix的安装包作用如下:
zabbix-agent:客户端程序
编辑Zabbix配置文件
说明:服务端和客户端通信,必须要指定一个IP,若不指定一个白名单IP,那所有的服务端都能连接这个客服端. 如果这个IP泄露了,那在远程弄了一个服务端,就能直接监控客户端,把数据采集过来,就可以拿到服务器上的一些数据,所以不指定一个白名单IP的话,数据很不安全.
[root@root-02 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1 -- 默认是本机 修改为服务端的IP(被动模式) -- Server=192.168.112.134
ServerActive=127.0.0.1 -- 默认是本机 修改为服务端的IP(主动模式) -- ServerActive=192.168.112.134
Hostname=Zabbix Server 默认主机名 修改为Hostname=root-02
ps:Hostname 是在Web界面上加监控主机的时候,加主机名字即可
注:主动模式和被动模式对于客户端来讲的,如果是被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动接受连接,并把监控信息传递给服务端;如果是主动模式,客户端主动把监控数据汇报给服务端,服务端只负责接收即可; 当客户端数量非常多时,建议使用主动模式,这样做可以降低服务端的压力.
启动Zabbix-agent
[root@root-02 ~]# systemctl restart zabbix-agent
[root@root-02 ~]# ps aux |grep zabbix
zabbix 3057 0.0 0.1 80172 1272 ? S 12:20 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 3058 0.0 0.1 80172 1288 ? S 12:20 0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix 3059 0.0 0.1 80172 1840 ? S 12:20 0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix 3060 0.0 0.1 80172 1840 ? S 12:20 0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix 3061 0.0 0.1 80172 1840 ? S 12:20 0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
zabbix 3062 0.0 0.2 80172 2140 ? S 12:20 0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
root 3064 0.0 0.0 112664 972 pts/0 S+ 12:20 0:00 grep --color=auto zabbix
#监听的端口是10050
[root@root-02 ~]# netstat -nlpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1786/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2146/master
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 3057/zabbix_agentd
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 2155/php-fpm: maste
tcp6 0 0 :::3306 :::* LISTEN 1972/mysqld
tcp6 0 0 :::80 :::* LISTEN 865/httpd
tcp6 0 0 :::22 :::* LISTEN 1786/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2146/master
tcp6 0 0 :::10050 :::* LISTEN 3057/zabbix_agentd