十六周二次课

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十六周二次课相关的知识,希望对你有一定的参考价值。

十六周二次课
19.1 Linux监控平台介绍
19.2 zabbix监控介绍
19.3/19.4/19.6 安装zabbix
19.5 忘记Admin密码如何做

19.1 Linux监控平台介绍


Linux监控平台介绍

  • 监控存在的原因

    • 站点出了问题,没有人知道,等用户发现了,才提醒供应商,对公司影响很大

  • 常见开源监控软件

    • cacti、nagios、zabbix、smokeping、open-falcon等等,其中nagios、zabbix流行度非常高

    • cacti、smokeping偏向于基础监控,成图非常漂亮,适合监控网络设备

    •    1. cacti监控网络的设备

  • cacti、nagios、zabbix服务端监控中心,需要php环境支持(用Apache的php,用nginx的php都可以),其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图

    • 因为zabbix配置简单,优势明显,早期使用nagios的企业,慢慢的转向使用zabbix

    • nagios,需要更改配置文件,并不支持web界面一键执行,nagios和zabbix相比,

                1.nagios 更注重的是某一个监控的状态,不关注历史;

                2.zabbix则是把每一次监控的数值反馈出来,数值存到数据库里面,方便后期数据图去分析监控整个状态;

                3.nagios不需要mysql的支持,不能成图,若需要画图,得安装插件以后才支持web界面;

                4.ccti 也需要mysql的支持,也可以成图,可以记录历史数据

  • zabbix 在web界面下管理得非常彻底,可以增加监控节点,报警预知等等

  • open-falcon为小米公司开发,开源后受到诸多大公司和运维工程师的追捧,适合大企业,滴滴、360、新浪微博、京东等大公司在使用这款监控软件,值得研究

    • open-falcon软件适合大企业使用,小企业可以去研究它的思想

  • 后续以介绍zabbix为主

19.2 zabbix监控介绍


zabbix监控介绍

  • C/S架构,基于C++开发,监控中心支持web界面配置和管理

    • zabbix软件,是C/S架构:有一个服务端,去客户端抓数据。在客户端必须要有一个服务启动运行才可以抓取数据;数据可以主动的上报服务端,也可以让服务端去连接客户端获取(通过抓取数据方式,数据获取分两个模式,一个主动模式,一个被动模式),zabbix软件基于C++开发,监控中心需要一个PHP的web环境,因为要开启一个web界面配置和管理

  • 单台server节点(即一台server),理论上 可以支持上万台客户端

    • 瓶颈:在于采集数据的量,虽然支持上万台,但监控的项目过多,还是会导致zabbix效率降低;所以,当服务器大到一定规模的时候,就需要对zabbix进行优化

    • 解决方法:可以增加一些代理点,这些代理点充当server,替代server去采集数据,最终得到分析结果再汇报给主服务端server

  • 目前zabbix软件,最新版本3.4,官方文档

    • 更新快,使用的用户多

  • zabbix架构里,包括了5个组件:

    • zabbix-server 监控中心,接收客户端上报信息,负责配置、统计、操作数据

    • 数据存储 存放数据,比如mysql

    • web界面 也叫web UI,在web界面下操作配置是zabbix简单易用的主要原因(如果没有web界面,就无法在浏览器上配置它)

    • zabbix-proxy 可选组件,它可以代替zabbix-server的功能,减轻server的压力(当机器量很多的时候,可以使用zabbix-proxy)

    • 有时候,服务器分布在多个机房里,每个机房的服务器之间都是一个单独的内网,这时候就可以在某一个局域网里搭建一个 zabbix-proxy ,用这台 proxy 去监控局域网里的机器

    • zabbix-agent 客户端软件(每一台客户端都需要安装agent),负责采集各个监控服务或项目的数据,并上报

监控流程图:

技术分享图片

19.3/19.4/19.6 安装zabbix


安装zabbix

  • 官网下载地址

  • wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

  • rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm

  • yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql

  • 会连带安装httpd和php

  • 如果mysql之前没有安装的话,需要根据lamp那一章的mysql安装方法安装mysql

  • vim /etc/my.cnf //需要增加配置

character_set_server = utf8
  • 重启mysqld服务后,进入mysql命令行,创建zabbix库

    • create database zabbix character set utf8;

  • 再创建用户

    • grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'aming-zabbix';

  • 导入数据

  • cd /usr/share/doc/zabbix-server-mysql-3.2.7

  • gzip -d create.sql.gz

  • mysql -uroot -pxxx zabbix < create.sql

  • systemctl start httpd; systemctl enable httpd

  • vim /etc/zabbix/zabbix_server.conf //修改或增加

DBHost=127.0.0.1 //在DBName=zabbix上面增加DBPassword=aming-zabbix //在DBuser下面增加
  • systemctl start zabbix-server

  • systemctl enable zabbix-server

  • netstat -lntp |grep zabbix //查看监听端口

  • 浏览器访问http://ip/zabbix/ web界面下面配置zabbix

  • 用户名Admin 密码zabbix

  • 进入后台第一件事情就是修改密码


安装zabbix

  • 准备工作

    • 两台机器,一台作为服务端(监控中心),另外一台作为它的客户端

  • 背景

    • zabbix,可以直接yum安装,但需要安装epel扩展源,在epel扩展源里面安装的zabbix的版本,最高是2.2版本,比较旧,所以使用官方提供的repo源

  • 这里实验使用的zabbix3.2版本

1.首先访问官网下载地址,选择对应的版本,并提供对应的发行版,然后选择download,跳转到一个界面,找到这个rpm包(包含release),也就是说yum源在这个里面,下图所示,复制该链接

技术分享图片


2.在两台机器都需要下载它

A机器

[[email protected] ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

B机器

[[email protected] ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

3.下载完之后,安装rpm包(实际上就是安装了一个yum源仓库)

A机器安装rpm包

[[email protected] ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm 

B机器安装rpm包

[[email protected] ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm

4.查看/etc/yum.repos.d/目录下面会看到增加了一个zabbix.repo


[[email protected] ~]# ls /etc/yum.repos.d/

CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo  epel-testing.repo

CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  epel.repo          zabbix.repo

[[email protected] ~]# cat /etc/yum.repos.d/zabbix.repo 

[zabbix]

name=Zabbix Official Repository - $basearch

baseurl=http://repo.zabbix.com/zabbix/3.2/rhel/7/$basearch/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591


[zabbix-non-supported]

name=Zabbix Official Repository non-supported - $basearch 

baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

gpgcheck=1

[[email protected] ~]# 

5.在有了这个zabbix.repo源之后,就可以yum安装zabbix了,并安装下面的包

  • yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql

    • zabbix-agent //客户端软件

    • zabbix-get //服务端用的一个工具,这个工具可以通过命令行的形式,获得客户端某些监控项目的数据

    • zabbix-server-mysql //这个是服务端跟mysql打交道相关的组件

    • zabbix-web //webUI ,web界面

    • zabbix-web-mysql //web和mysql相关组件

  • PS:在服务端是需要安装这些所有的包,而在客户端仅仅需要安装 zabbix-agent 包即可

A机器

[[email protected] ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql

B机器

[[email protected] ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql

6.zabbix 是基于php环境的,也就是说用的是php 的代码编写的web界面,也就说这个zabbix 相当于一个站点

7.安装mysql,如果mysql之前没有安装的话,需要根据lamp那一章的mysql安装方法安装mysql

A机器(因为之前安装过mysql)

[[email protected] ~]# ps aux |grep mysql

root       1118  0.0  0.1 115392  1672 ?        S    00:52   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysq/tianqi-01.pid

mysql      1283  0.0 45.7 1056068 457252 ?      Sl   00:52   0:18 /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/tianqi-01.err --pid-file=/data/mysql/tianqi-01.pid --socket=/tmp/mysql.sock

root       5221  0.0  0.0 112660   976 pts/0    R+   14:02   0:00 grep --color=auto mysql

[[email protected] ~]# 

8.修改mysql的配置文件,修改/etc/my.cnf文件,设定默认的字符集

A机器

在[mysqld]下增加

character_set_server = utf8

最终结果为

[[email protected] ~]# vim /etc/my.cnf

[mysqld]

character_set_server = utf8

datadir=/data/mysql

socket=/tmp/mysql.sock

server-id=130

log_bin=aminglinux1

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd


[mysqld_safe]

#log-error=/var/log/mariadb/mariadb.log

#pid-file=/var/run/mariadb/mariadb.pid


#

# include all files from the config directory

#

#!includedir /etc/my.cnf.d

保存退出

  • 如果不设置字符集,那么zabbix的web界面,设置成中文的话,可能就会出现乱码

9.修改完mysql的配置文件后,重启mysql服务

  • /etc/init.d/mysqld restart

A机器

[[email protected] ~]# /etc/init.d/mysqld restart

Shutting down MySQL..                                      [  OK  ]

Starting MySQL...                                          [  OK  ]

[[email protected] ~]# 

10.重启mysqld服务后,进入mysql命令行(第一次进入mysql命令行),创建zabbix库,并指定编码为utf8

  • create database zabbix character set utf8;

A机器

[[email protected] ~]# mysql -uroot -paminglinux

Warning: Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.6.35-log 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> create database zabbix character set utf8;    //创建zabbix库,并指定编码为utf8

Query OK, 1 row affected (0.00 sec)


mysql> 

11.再创建用户,这个用户是需要让web(php)代码连接mysql的,监控中心zabbix mysql服务启动的前提就是要连接mysql;客户端采集了数据,需要把这些数据传递给服务端,那么服务端怎么把这些数据写入到MySQL去,这时就涉及到了mysql 的用户,涉及到了mysql 的数据库;用哪一个用户,去查询或者写入哪一个库。在这个库里有相关的表,用户需要对这个库有读写的权限。

  • grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'aming-zabbix';

mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'aming-zabbix';

Query OK, 0 rows affected (0.00 sec)

mysql> quit

Bye

[[email protected] ~]#

12.退出mysql的命令行后,导入原始的数据,若缺少这些数据,zabbix就没有办法工作,就没有办法在web界面下展现给我们

  • zabbix-server-mysql-3.2.11 这块用tab键补全,有可能版本号不同

A机器

[[email protected] ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/

[[email protected] zabbix-server-mysql-3.2.11]# 

13.在/usr/share/doc/zabbix-server-mysql-3.2.11/目录下有一个create.sql.gz压缩包,将它解压,解压完之后生成了一个.sql的文件

[[email protected] zabbix-server-mysql-3.2.11]# ls

AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README

[[email protected] zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz 

[[email protected] zabbix-server-mysql-3.2.11]# ls

AUTHORS  ChangeLog  COPYING  create.sql  NEWS  README

[[email protected] zabbix-server-mysql-3.2.11]# 

14.然后拿到create.sql文件,将它导入到zabbix库里面去

A机器

[[email protected] zabbix-server-mysql-3.2.11]# mysql -uroot -paminglinux zabbix < create.sql 

Warning: Using a password on the command line interface can be insecure.

[[email protected] zabbix-server-mysql-3.2.11]# 

15.启动zabbix服务,启动zabbix报错

  • systemctl start zabbix-server

[[email protected] ~]# systemctl start zabbix-server

[[email protected] ~]# 

16.启动httpd服务,在启动http服务之前,先查看nginx服务是否启动,若启动了nginx,就监听了80端口,就需要去停掉nginx服务,再去启动httpd服务

[[email protected] ~]# ps aux |grep nginx

root        921  0.0  0.1  45988  1184 ?        Ss   00:52   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

nobody      927  0.0  0.3  48476  3808 ?        S    00:52   0:00 nginx: worker process

nobody      928  0.0  0.3  48476  3820 ?        S    00:52   0:00 nginx: worker process

root       5493  0.0  0.0 112660   976 pts/0    R+   14:34   0:00 grep --color=auto nginx

[[email protected] ~]# /etc/init.d/nginx stop

Stopping nginx (via systemctl):                            [  OK  ]

[[email protected] ~]# !ps

ps aux |grep nginx

root       5515  0.0  0.0 112660   976 pts/0    R+   14:35   0:00 grep --color=auto nginx

[[email protected] ~]# netstat -lntp

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:111             0.0.0.0:*               LISTEN      1/systemd           

tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      923/rpc.mountd      

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      887/sshd            

tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1021/master         

tcp        0      0 0.0.0.0:34939           0.0.0.0:*               LISTEN      905/rpc.statd       

tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -                   

tcp        0      0 0.0.0.0:33129           0.0.0.0:*               LISTEN      -                   

tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           

tcp6       0      0 :::20048                :::*                    LISTEN      923/rpc.mountd      

tcp6       0      0 :::41106                :::*                    LISTEN      -                   

tcp6       0      0 :::22                   :::*                    LISTEN      887/sshd            

tcp6       0      0 ::1:25                  :::*                    LISTEN      1021/master         

tcp6       0      0 :::2049                 :::*                    LISTEN      -                   

tcp6       0      0 :::54114                :::*                    LISTEN      905/rpc.statd       

tcp6       0      0 :::3306                 :::*                    LISTEN      5438/mysqld         

[[email protected] ~]# systemctl start httpd

[[email protected] ~]# netstat -lntp

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:111             0.0.0.0:*               LISTEN      1/systemd           

tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      923/rpc.mountd      

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      887/sshd            

tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1021/master         

tcp        0      0 0.0.0.0:34939           0.0.0.0:*               LISTEN      905/rpc.statd       

tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -                   

tcp        0      0 0.0.0.0:33129           0.0.0.0:*               LISTEN      -                   

tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           

tcp6       0      0 :::80                   :::*                    LISTEN      5523/httpd          

tcp6       0      0 :::20048                :::*                    LISTEN      923/rpc.mountd      

tcp6       0      0 :::41106                :::*                    LISTEN      -                   

tcp6       0      0 :::22                   :::*                    LISTEN      887/sshd            

tcp6       0      0 ::1:25                  :::*                    LISTEN      1021/master         

tcp6       0      0 :::2049                 :::*                    LISTEN      -                   

tcp6       0      0 :::54114                :::*                    LISTEN      905/rpc.statd       

tcp6       0      0 :::3306                 :::*                    LISTEN      5438/mysqld         

[[email protected] ~]# 

  • 这时就发现httpd服务监听了80端口

17.若需要开机启动httpd服务和zabbix服务,则需要将它加入到服务的列表中去

[[email protected] ~]# systemctl enable httpd

Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

[[email protected] ~]# 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.

[[email protected] ~]# 

  • 若nginx设置了开机启动,则需要取消开机启动

    • systemctl disable nginx

    • chkconfig nginx off

[[email protected] ~]# systemctl disable nginx

nginx.service is not a native service, redirecting to /sbin/chkconfig.

Executing /sbin/chkconfig nginx off

[[email protected] ~]# chkconfig nginx off

[[email protected] ~]# 

18.查看zabbix服务进程

[[email protected] ~]# ps aux |grep zabbix

zabbix     5490  0.0  0.3 254580  3488 ?        S    14:33   0:00 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf

root       5639  0.0  0.0 112660   976 pts/0    R+   14:41   0:00 grep --color=auto zabbix

[[email protected] ~]# 

19.查看zabbix监听的端口

[[email protected] ~]# netstat -lntp

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:111             0.0.0.0:*               LISTEN      1/systemd           

tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      923/rpc.mountd      

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      887/sshd            

tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1021/master         

tcp        0      0 0.0.0.0:34939           0.0.0.0:*               LISTEN      905/rpc.statd       

tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -                   

tcp        0      0 0.0.0.0:33129           0.0.0.0:*               LISTEN      -                   

tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           

tcp6       0      0 :::80                   :::*                    LISTEN      5523/httpd          

tcp6       0      0 :::20048                :::*                    LISTEN      923/rpc.mountd      

tcp6       0      0 :::41106                :::*                    LISTEN      -                   

tcp6       0      0 :::22                   :::*                    LISTEN      887/sshd            

tcp6       0      0 ::1:25                  :::*                    LISTEN      1021/master         

tcp6       0      0 :::2049                 :::*                    LISTEN      -                   

tcp6       0      0 :::54114                :::*                    LISTEN      905/rpc.statd       

tcp6       0      0 :::3306                 :::*                    LISTEN      5438/mysqld         

[[email protected] ~]# 

  • 错误:

    • 这里看到服务启动了,但并没有zabbix监听的端口

20.查看zabbix并没有监听端口后,首先检查zabbix的错误日志,错误日志路径/var/log/zabbix/zabbix_server.log

[[email protected] ~]# tail /var/log/zabbix/zabbix_server.log

  5490:20180417:144347.378 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

  5490:20180417:144347.378 database is down: reconnecting in 10 seconds

  5490:20180417:144357.379 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

  5490:20180417:144357.379 database is down: reconnecting in 10 seconds

  5490:20180417:144407.380 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

  5490:20180417:144407.380 database is down: reconnecting in 10 seconds

  5490:20180417:144417.381 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

  5490:20180417:144417.381 database is down: reconnecting in 10 seconds

  5490:20180417:144427.385 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

  5490:20180417:144427.385 database is down: reconnecting in 10 seconds

[[email protected] ~]# 

  • 虽然zabbix服务有进程,但没有彻底的起来,说明不能够连接mysql,所以还需要更改zabbix的配置文件

21.更改zabbix的配置文件,配置文件为/etc/zabbix/zabbix_server.conf

A机器

[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf

搜索/DBHost 

在DBName=zabbix上面增加 DBHost=127.0.0.1 

 在DBuser下面增加 DBPassword=hanfeng-zabbix 

 保存退出

结果如下:

# DBHost=localhost

DBHost=127.0.0.1

### Option: DBName

#       Database name.

#       For SQLite3 path to database file must be provided. DBUser and DBPassword are ignored.

#

# Mandatory: yes

# Default:

# DBName=


DBName=zabbix


### Option: DBSchema

#       Schema name. Used for IBM DB2 and PostgreSQL.

#

# Mandatory: no

# Default:

# DBSchema=


### Option: DBUser

#       Database user. Ignored for SQLite.

#

# Mandatory: no

# Default:

# DBUser=


DBUser=zabbix

DBPassword=aming-zabbix

  • 因为mysql和zabbix装在同一台机器上,这里的 DBHost可以写localhost 或者127.0.0.1;如果是在生产环境上,有时候为了提升zabbix的性能,可能会把MySQL装在其他机器上,这是的DBHost,就需要写上mysql的ip

22.更改完zabbix配置文件,就可以启动zabbix服务了,因为之前启动了zabbix服务,这里只需restart重启下即可

[[email protected] ~]# systemctl restart zabbix-server

[[email protected] ~]# 

23.这时再来查看下zabbix进程,有29个(正常情况下,都是这么多进程)

[[email protected] ~]# ps aux |grep zabbix |wc -l

29

[[email protected] ~]# 

24.查看监听的端口,zabbix监听的端口为10051端口

[[email protected] ~]# netstat -lntp |grep zabbix

tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      5658/zabbix_server  

tcp6       0      0 :::10051                :::*                    LISTEN      5658/zabbix_server  

[[email protected] ~]# 

25.接下来就是配置web界面了(需要关闭防火墙和规则,否则浏览器无法访问)

  • 在浏览器输入IP地址(即监控中心的IP地址),如192.168.23.130/zabbix 去访问

技术分享图片

  • 很多人会有疑问,仅仅启动了httpd 服务,没有去做任何的配置,因为yum安装zabbix,它默认安装httpd 及它的配置文件,一切都会帮你配置好了

26.再打开zabbix界面后,点击 Next step ,会出现一个提示,出现OK的都不用管,会看到提示需要去设置php的timezone时区,如下图

技术分享图片

27.设置php的timezone时区,在php的配置文件中设置,默认php的配置文件在/etc/php.ini 里面

A机器

[[email protected] ~]# vim /etc/php.ini

搜索 /timezone 

将 ;date.timezone 改为如下 

 date.timezone = Asia/Shanghai 

保存退出

28.在定义完php的配置文件,还需要重启apache

[[email protected] ~]# systemctl restart httpd

[[email protected] ~]# 

29.这时再来刷新浏览器,会发现都变成OK了

技术分享图片

30.这时再来 Next step ,来配置数据库相关信息

  • host :MySQL所在机器IP

  • port:0为默认端口3306,如果有改动就修改

  • name:库的名字

  • user:库的用户

  • password:用户的密码(aming-zabbix)

技术分享图片

31.然后再选择Next step ,配置站点名字相关

技术分享图片

  • host:站点主机名

  • port:端口,如果有改动就改,没改动,默认就是10051

  • name:站点的名字,你喜欢就好

32.配置完成后会有一个信息显示,如果配置错误,可以back返回上一步重新修改

技术分享图片

33.安装成功后,会有提示界面,如下图

技术分享图片

34.登录管理页,默认的账号是Admin,密码为zabbix

技术分享图片

35.在登录进zabbix之后,首先需要去更改密码(因为默认的密码大家都知道的),若是在线上环境不更改密码,很容易被别人拿到后台权限

  • 更改密码,先选择 Administration ,然后选择 Users

技术分享图片

技术分享图片

选择Update,出现以下画面(a7)

技术分享图片

刷新一下,出现中文的画面

这时再退出zabbix,再重新进入下,使用新的密码,会看到重新进入了,这就是zabbix的web界面了

客户端安装zabbix(B机器)

  • 在客户端上也需要下载zabbix的yum源

  • wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

  • rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm

  • yum install -y zabbix-agent

  • vim /etc/zabbix/zabbix_agentd.conf //修改如下配置

 Server=127.0.0.1修改为Server=192.168.133.130 //定义服务端的ip(被动模式)
 ServerActive=127.0.0.1修改为ServerActive=192.168.133.130 //定义服务端的ip(主动模式)
 Hostname=Zabbix server修改为Hostname=aming-123 //这是自定义的主机名,一会还需要在web界面下设置同样的主机名
  • systemctl start zabbix-agent

  • systemctl enable zabbix-agent

1.首先客户端下载

B机器

[[email protected] ~]# wget wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

2.下载完之后,安装rpm包(实际上就是安装了一个yum源仓库)

B机器

[[email protected] ~]#rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm

3.客户端,编辑zabbix的配置文件,文件为/etc/zabbix/zabbix_agentd.conf

[[email protected] ~]# vim /etc/zabbix/zabbix_agentd.conf

Server=192.168.23.130

# 定义服务端的ip(被动模式)

ServerActive=192.168.23.130     

#定义服务端的ip(主动模式)

#这个涉及到一个主动和被动模式;如果这里不填写服务中心的IP,那么就只能使用被动模式;这个IP是主动模式时候用的

Hostname=Zabbix server修改为Hostname=aming-02 

#这是自定义的主机名,一会还需要在web界面下设置同样的主机名

保存退出

4.启动zabbix服务

[[email protected] ~]# systemctl start zabbix-agent

[[email protected] ~]# 

5.客户端查看zabbix服务,监听的端口,客户端监听的端口是10050

[[email protected] ~]# ps aux |grep zabbix

zabbix     7822  0.0  0.1  82756  1248 ?        S    03:05   0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf

zabbix     7823  0.0  0.1  82756  1284 ?        S    03:05   0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]

zabbix     7824  0.0  0.1  82756  1800 ?        S    03:05   0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]

zabbix     7825  0.0  0.1  82756  1796 ?        S    03:05   0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]

zabbix     7826  0.0  0.1  82756  1796 ?        S    03:05   0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]

zabbix     7827  0.0  0.2  82888  2168 ?        S    03:05   0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

root       7829  0.0  0.0 112644   952 pts/2    R+   03:06   0:00 grep --color=auto zabbix

[[email protected] ~]# netstat -lntp

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:80              0.0.0.0:*               LISTEN      5501/nginx: master  

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      966/sshd            

tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2065/master         

tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      7822/zabbix_agentd  

tcp6       0      0 :::3306                 :::*                    LISTEN      5203/mysqld         

tcp6       0      0 :::80                   :::*                    LISTEN      5501/nginx: master  

tcp6       0      0 :::22                   :::*                    LISTEN      966/sshd            

tcp6       0      0 ::1:25                  :::*                    LISTEN      2065/master         

tcp6       0      0 :::10050                :::*                    LISTEN      7822/zabbix_agentd  

[[email protected] ~]# 

6.将zabbix加入到启动列表里面,让它开机启动

  • systemctl enable zabbix-agent

[[email protected] ~]# systemctl enable zabbix-agent

Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.

[[email protected] ~]# 

7.这样客户端的zabbix就配置完成

19.5 忘记Admin密码如何做

忘记Admin密码如何做

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

  • mysql -uroot -p zabbix

  • update users set passwd=md5(‘newpasswd’) where alias=‘Admin’;

  • 这样就更改了Admin用户的密码

忘记zabbix密码

  • 有时因为时间长了,zabbix管理员账号密码给忘记了

  • 解决办法:

    • 重置zabbix密码,就是直接更改数据库里的数据即可

1.首先进入到mysql命令行里面

[[email protected] ~]# mysql -uroot -paminglinux

Warning: Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 232

Server version: 5.6.35-log 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> 

2.使用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


Database changed

mysql> 

3.查看zabbix相关的表,以后服务器监控的主机越多,那么这些表会越来越大,所以需要去指定合适的监控策略

  • 比如说:数据量需要保存多长时间,那么在定义这个监控项目的时候就该想到,要保留1个月还是1年,还是其他时间;

  • 比如,监控的站点服务量很大的话,一天就要涨好几个G,那么你的服务器磁盘能支持保存多长时间;

mysql> show tables;

4.zabbix的密码,默认存放的表是users里面

5.查看users表

  • desc 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> 

  • 需要修改的就是passwd的表

6.修改密码

  • update users set passwd=md5(‘newpasswd’) where alias=‘Admin’;

mysql> update users set passwd=md5('lishiming1') where alias='Admin';

Query OK, 1 row affected (0.01 sec)

Rows matched: 1  Changed: 1  Warnings: 0


mysql> 

7.查看表的情况

  • select * from users\G;

mysql> select * from users\G;

*************************** 1. row ***************************

        userid: 1

         alias: Admin

          name: Zabbix

       surname: Administrator

        passwd: 148308853a00bdc6ed461689d4c72649

           url: 

     autologin: 1

    autologout: 0

          lang: zh_CN

       refresh: 30

          type: 3

         theme: default

attempt_failed: 0

    attempt_ip: 192.168.23.1

 attempt_clock: 1523949568

 rows_per_page: 50

*************************** 2. row ***************************

        userid: 2

         alias: guest

          name: 

       surname: 

        passwd: d41d8cd98f00b204e9800998ecf8427e

           url: 

     autologin: 0

    autologout: 900

          lang: en_GB

       refresh: 30

          type: 1

         theme: default

attempt_failed: 0

    attempt_ip: 

 attempt_clock: 0

 rows_per_page: 50

2 rows in set (0.00 sec)


ERROR: 

No query specified


mysql> quit

Bye

[[email protected] ~]# 

8.修改以后就可以去尝试用新密码登录zabbix了,这就是重置zabbix管理员密码

友情链接:http://www.apelearn.com阿铭linux

以上是关于十六周二次课的主要内容,如果未能解决你的问题,请参考以下文章

2018.4.12 16周2次课

十五周二次课三次课(4月3日4月4日)

十二周二次课(3月13日)

十二周二次课(4月24日)

八周二次课(1月30日)

?十一周二次课(3月7日)