linux监控平台介绍

常见开源监控软件:cacti,nagios,zabbix,smokeping,open-falcon等等

cacti,smokeping偏向于基础监控,成图非常漂亮

cacti,nagios,zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti需要MySQL作为数据储存,

agios不用存储历史数据,他注重服务或监控项的状态

zabbix会获取服务或者监控项目的数据,会把数据记录到数据库中,从而可以成图

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

一、zabbix监控介绍

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

一台server节点可以支持上万台客户端,瓶颈在于采集数据的量的多少

zabbix更新速度还是较快的,说明他用户量大

zabbix包括了5个组件

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

数据存储:存放数据,比如MySQL

web界面:也叫web UI ,在web界面下操作配置是zabbix简单易用的主要原因

zabbix-proxy :可选组件,它可以代替zabbix-server的功能,减轻server的压力

zabbix-agent:客户端软件,负责采集各个监控服务或项目的数据,并上报

zabbix监控流程图

图片2.png

二、安装zabbix,

准备两台主机:

zabbix服务端:192.168.100.101

zabbix客户端:192.168.100.100

我们epl的yum仓库里存放的zabbix的版本较低,所以我们先搭建一个zabbix的yum仓库,服务端和客户端上都要做这个步骤。

[root@zhuji ~]# wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

[root@zhuji ~]# 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@zhuji ~]# ll /etc/yum.repos.d/zabbix.repo 

-rw-r--r-- 1 root root 410 9月  14 2016 /etc/yum.repos.d/zabbix.repo

二、yum安装zabbix

服务端:

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

zabbix-agent:zabbix客户端软件

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

zabbix-server-mysql:一些和mysql相关的文件

zabbix-web:web界面

zabbix-web-mysql:web还要和mysql打交道,一些MySQL和web的文件

server:

[root@congji ~]# yum install -y zabbix-agent

客户端只需要安装zabbix-agent就可以了

两台机子如果MySQL没有安装,参照之前lamp章节的安装

三、两台机子都要启动MySQL.修改MySQL的配置文件并重新启动MySQL。

[root@congji ~]# vim /etc/my.cnf

character_set_server = utf8       (设置字符级,不设置的话,web界面设置中文可能会出现乱码)

[root@congji ~]# systemctl restart mysql

四、在服务端的MySQL上创建zabbix的库和用户,用户是需要php代码连接mysql。

[root@zhuji mysql]# mysql -uroot -paminglinux

mysql> create database zabbix character set utf8;

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

五、导入一些原始的数据,没有这些数据,zabbix没办法工作。

[root@zhuji mysql]# cd /usr/share/doc/zabbix-server-mysql-***

[root@zhuji zabbix-server-mysql-3.2.11]# ls

AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README

[root@zhuji zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz      (解压gz文件)

[root@zhuji zabbix-server-mysql-3.2.11]# ls

AUTHORS  ChangeLog  COPYING  create.sql  NEWS  README

[root@zhuji zabbix-server-mysql-3.2.11]# mysql -uroot -paminglinux zabbix < create.sql

六、启动zabbix和httpd服务,再启动httpd前,先看一下有没有启动nginx服务

[root@zhuji ~]# ps aux |grep nginx                 

root      3590  0.0  0.0 112680   976 pts/0    R+   18:04   0:00 grep --color=auto nginx

[root@zhuji ~]# systemctl start zabbix-server

[root@zhuji ~]# systemctl start httpd

[root@zhuji ~]# systemctl enable httpd

[root@zhuji ~]# systemctl enable zabbix-server

七、我们启动了zabbix,用ps发现进程在,但是用natstat查看,没有zabbix的端口,是因为没有连接MySQL,需要配置zabbix的配置文件

[root@zhuji ~]# ll /var/log/zabbix/zabbix_server.log        (这是zabbix的日志文件)

# DBHost=localhost

DBHost=127.0.0.1               (搜索DBHost,指定数据库所在机器的IP,不是创建用户时的来源ip)

默认DBname=zabbix               (数据库名字)

DBuser=zabbix                 (登录数据库的用户名)

DBPassword=zabbix-aming          (登录数据库的密码)

[root@zhuji ~]# systemctl restart zabbix-server

[root@zhuji ~]# netstat -lntp |grep zabbix          (默认监听10051)

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

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

八、配置web界面,直接访问服务端主机名加zabbix。例如(192.168.52.101/zabbix)

QQ图片20180105191224.png

(一)点next step

1.png

(二)我们发现只有这一行是错误的

PHP option "date.timezone" unknown
Fail

blob.png

(三)改正时间错误,修改phh配置文件,重启apache,刷新界面

[root@zhuji ~]# vim /etc/php.ini

date.timezone = Asia/Shanghai

[root@zhuji ~]# systemctl restart httpd

(四)继续web界面的下一步(也就是MySQL的界面了)

port端口号:3360

密码写在数据库中创建用户的密码。

如果现实sock文件不存在,则把用户改成127.0.0.1

3.png

(五)定义zabbix server的界面

自定义Name

3.png

(六)web界面完成

4.png

八、登录zabbix

(一)默认用户为admin

默认登陆密码为zabbix

5.png

(二)更改密码

administration下有个user,找到admin用户,点进去

1.png

有个change passwd,点进去修改为自己想要的密码,顺便更改语言,然后update

1.png

刷新界面,就是中文了

1.png

编辑客户端zabbix的配置文件

[root@congji ~]# vim /etc/zabbix/zabbix_agentd.conf         (主动被动一起开启会比较好)

Server=192.168.52.101                   (被动模式):等待服务端来取数据

ServerActive=192.168.52.101               (主动模式):主动上报数据

Hostname=congji                       (不能随便写,要写能够识别的主机名)      

启动服务查看监控的端口

[root@congji ~]# systemctl start zabbix-agent

[root@congji ~]# netstat -lntp |grep zabbix          

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

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

三、解决忘记admin密码

忘记admin密码如何做

在MySQL数据库中使用命令行修改:

[root@zhuji ~]# mysql -uroot -p

mysql> use zabbix;             (进入到zabbix数据库中)

可以show tabls;                看一下里面的表,都是和zabbix有关的,我们要用到users表更改密码

mysql> desc users;              (我们可以看一下uses表里的,我们其实就是要更改passwd)

+----------------+---------------------+------+-----+---------+-------+

| 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.01 sec)

mysql> update users set passwd=md5('litongyao1') where alias='Admin';   (用md5的方式加密)

检测用litongyao1登录