linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

发布于 2018-04-12  582 次阅读


常见 Linux 开源监控平台介绍

cacti、nagios、zabbix、smokeping、open-falcon 等等

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

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

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

后续以介绍 zabbix 为主

zabbix 监控介绍

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

单 server 节点可以支持上万台客户端,虽说支持上万台客户端,但当客户端太多的时候,还是建议增加 zabbix-proxy

最新版本 3.4,官方文档:https://www.zabbix.com/manuals

5 个组件

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

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

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

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

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

流程图:

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

安装 Zabbix

Zabbix 可以通过 epel 扩展源使用 yum 安装,但这样安装的版本只是 2.2 版本,有点旧了,所以这里使用官方提供的的对应版本的 yum 扩展源源安装 Zabbix

官网 yum 源下载地址:www.zabbix.com/download

01:

如下图所示,找到 Zabbix yum 扩展源并复制下载链接

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

02:

准备两台机器,均安装这个 yum 扩展源

[root@am-01:~#] rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@am-02:~#] rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

03:

yum 安装 zabbix-agent,zabbix-get,zabbix-server-mysql,zabbix-web,zabbix-web-mysql

zabbix-agent:客户端软件

zabbix-get:服务端上的一个工具,能通过命令行方式获得客户端上面的某些数据

zabbix-server-mysql:安装 Zabbix-server 跟 Mysql 相关的文件,以便能读取.sql 数据

zabbix-web:web 界面

zabbix-web-mysql:安装 Zabbix-server 跟 Mysql 相关的文件,以便 web 能读取 Mysql 的数据

以下命令会自动安装 httpd 和 php,但 Mysql 则需要自行安装一下

参考链接:LAMP 下安装 Mysql

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

04:

启动服务端 mysql

[root@am-01:~#] systemctl start mysql

[root@am-01:~#] ps -aux | grep mysql

root       4482  0.5  0.1 115392  1668 ?        S    00:53   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/am-01.pid

mysql      4644 41.3 45.4 1300876 456080 ?      Sl   00:53   0:02 /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/am-01.err --pid-file=/data/mysql/am-01.pid --socket=/tmp/mysql.sock

root       4674  0.0  0.0 112680   980 pts/0    S+   00:53   0:00 grep --color=auto mysql

05:

编辑 mysql 配置文件,设置字符集为 utf8,并重启 mysql

这是为了防止之后使用 Zabbix web 页面设置 Zabbix 的时候,中文会显示有问题

[root@am-01:~#] vim /etc/my.cnf

[mysqld]

character_set_server = utf8

[root@am-01:~#] systemctl restart mysql

06:

创建 zabbix 库

设置一个能对 zabbix 库有读写权限的用户,用来使 Zabbix 跟 mysql 建立联系

导入原始数据,没这个原始数据的话,Zabbix 则无法正常工作,无法在 web 界面下给你提供服务

[root@am-01:~#] mysql -uroot -pitsupport.0

mysql> create database zabbix character set utf8;

Query OK, 1 row affected (0.00 sec)

mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'itsupport.0';

mysql> quit

Bye

[root@am-01:~#] cd /usr/share/doc/zabbix-

zabbix-agent-3.4.8/        zabbix-release-3.4/        zabbix-web-3.4.8/

zabbix-get-3.4.8/          zabbix-server-mysql-3.4.8/

[root@am-01:~#] cd /usr/share/doc/zabbix-server-mysql-3.4.8/

[root@am-01:/usr/share/doc/zabbix-server-mysql-3.4.8#] ls

AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README

[root@am-01:/usr/share/doc/zabbix-server-mysql-3.4.8#] gzip -d create.sql.gz

[root@am-01:/usr/share/doc/zabbix-server-mysql-3.4.8#] ls

AUTHORS  ChangeLog  COPYING  create.sql  NEWS  README

[root@am-01:/usr/share/doc/zabbix-server-mysql-3.4.8#] mysql -uroot -pitsupport.0 zabbix < create.sql

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

07:

启动 Zabbix,我这里遇到错误,看系统错误日志后,在网上查询后,得知需要安装 trousers,降级 gnutls

但依然无法正常启动 Zabbix,这次查看 Zabbix 的错误日志,看到是数据库问题,经检查查询后,修改"/etc/zabbix/zabbix_server.conf"中跟 mysql 相关的选项,再次启动,正常了!

[root@am-01:/usr/share/doc/zabbix-server-mysql-3.4.8#] systemctl start zabbix-server.service

Job for zabbix-server.service failed because a fatal signal was delivered to the control process. See "systemctl status zabbix-server.service" and "journalctl -xe" for details.

[root@am-01:~#] tail -f /var/log/messages

Apr 12 01:11:17 am-01 kernel: zabbix_server[5342]: segfault at 18 ip 00007f318b147c30 sp 00007fff060a0f38 error 4 in libpthread-2.17.so[7f318b13e000+17000]

[root@am-01:/usr/share/doc/zabbix-server-mysql-3.4.8#] yum -y install trousers.x86_64

[root@am-01:/usr/local/src#] wget ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/7.0/x86_64/os/Packages/gnutls-3.1.18-8.el7.x86_64.rpm

[root@am-01:/usr/local/src#] rpm -Uvh --force gnutls-3.1.18-8.el7.x86_64.rpm
[root@am-01:~#] tail -f /var/log/zabbix/zabbix_server.log

5926:20180412:013209.656 [Z3001] connection to database 'zabbix' failed: [1044] Access denied for user ''@'localhost' to database 'zabbix'

5926:20180412:013209.656 Cannot connect to the database. Exiting...

[root@am-01:/usr/local/src#] vim /etc/zabbix/zabbix_server.conf

DBHost=127.0.0.1

DBPassword=itsupport.0

[root@am-01:/usr/local/src#] systemctl start zabbix-server.service

[root@am-01:/usr/local/src#] ps -aux |grep zabbix

zabbix     5974  5.3  0.4 258192  4084 ?        S    01:41   0:00 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf

zabbix     5977  0.0  0.2 258192  2376 ?        S    01:41   0:00 /usr/sbin/zabbix_server: configuration syncer [waiting 60 sec for processes]

zabbix     5978  0.0  0.2 258192  2376 ?        S    01:41   0:00 /usr/sbin/zabbix_server: alerter #1 started

zabbix     5979  0.0  0.2 258192  2376 ?        S    01:41   0:00 /usr/sbin/zabbix_server: alerter #2 started

zabbix     5980  0.0  0.2 258192  2376 ?        S    01:41   0:00 /usr/sbin/zabbix_server: alerter #3 started

zabbix     5981  0.0  0.2 258192  2376 ?        S    01:41   0:00 /usr/sbin/zabbix_server: housekeeper [startup idle for 30 minutes]

zabbix     5982  0.0  0.2 258268  2848 ?        S    01:41   0:00 /usr/sbin/zabbix_server: timer #1 [processed 0 triggers, 0 events in 0.000190 sec, 0 maintenances in 0.004054 sec, idle 30 sec]

zabbix     5983  0.0  0.2 258188  2696 ?        S    01:41   0:00 /usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.002760 sec, idle 5 sec]

zabbix     5984  3.0  0.4 362556  4952 ?        S    01:41   0:00 /usr/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.001268 sec, idle 60 sec]

zabbix     5985  0.0  0.2 258188  2732 ?        S    01:41   0:00 /usr/sbin/zabbix_server: history syncer #1 [synced 0 items in 0.000002 sec, idle 1 sec]

zabbix     5986  0.0  0.2 258188  2732 ?        S    01:41   0:00 /usr/sbin/zabbix_server: history syncer #2 [synced 0 items in 0.000003 sec, idle 1 sec]

zabbix     5987  0.0  0.2 258188  2732 ?        S    01:41   0:00 /usr/sbin/zabbix_server: history syncer #3 [synced 0 items in 0.000002 sec, idle 1 sec]

zabbix     5988  0.0  0.2 258188  2732 ?        S    01:41   0:00 /usr/sbin/zabbix_server: history syncer #4 [synced 0 items in 0.000002 sec, idle 1 sec]

zabbix     5989  0.0  0.3 258192  3532 ?        S    01:41   0:00 /usr/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.002560 sec, idle 3 sec]

zabbix     5991  0.0  0.3 258192  3532 ?        S    01:41   0:00 /usr/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000141 sec, idle 5 sec]

zabbix     5997  0.0  0.2 258192  2500 ?        S    01:41   0:00 /usr/sbin/zabbix_server: self-monitoring [processed data in 0.000009 sec, idle 1 sec]

zabbix     5998  0.0  0.2 258188  2736 ?        S    01:41   0:00 /usr/sbin/zabbix_server: task manager [processed 0 task(s) in 0.004272 sec, idle 5 sec]

zabbix     5999  2.5  0.4 365176  4952 ?        S    01:41   0:00 /usr/sbin/zabbix_server: poller #1 [got 0 values in 0.000341 sec, idle 5 sec]

zabbix     6000  2.5  0.4 365176  4952 ?        S    01:41   0:00 /usr/sbin/zabbix_server: poller #2 [got 0 values in 0.000052 sec, idle 5 sec]

zabbix     6001  2.5  0.4 365176  4952 ?        S    01:41   0:00 /usr/sbin/zabbix_server: poller #3 [got 0 values in 0.000154 sec, idle 5 sec]

zabbix     6002  3.0  0.4 365176  4952 ?        S    01:41   0:00 /usr/sbin/zabbix_server: poller #4 [got 0 values in 0.000155 sec, idle 5 sec]

zabbix     6003  2.5  0.4 365176  4952 ?        S    01:41   0:00 /usr/sbin/zabbix_server: poller #5 [got 0 values in 0.000072 sec, idle 5 sec]

zabbix     6004  2.5  0.4 365176  4952 ?        S    01:41   0:00 /usr/sbin/zabbix_server: unreachable poller #1 [got 0 values in 0.000217 sec, idle 5 sec]

zabbix     6005  0.0  0.3 258192  3532 ?        S    01:41   0:00 /usr/sbin/zabbix_server: trapper #1 [processed data in 0.000000 sec, waiting for connection]

zabbix     6007  0.0  0.3 258192  3532 ?        S    01:41   0:00 /usr/sbin/zabbix_server: trapper #2 [processed data in 0.000000 sec, waiting for connection]

zabbix     6008  0.0  0.3 258192  3532 ?        S    01:41   0:00 /usr/sbin/zabbix_server: trapper #3 [processed data in 0.000000 sec, waiting for connection]

zabbix     6009  0.0  0.3 258192  3532 ?        S    01:41   0:00 /usr/sbin/zabbix_server: trapper #4 [processed data in 0.000000 sec, waiting for connection]

zabbix     6010  0.0  0.3 258192  3532 ?        S    01:41   0:00 /usr/sbin/zabbix_server: trapper #5 [processed data in 0.000000 sec, waiting for connection]

zabbix     6013  0.0  0.2 260800  2376 ?        S    01:41   0:00 /usr/sbin/zabbix_server: icmp pinger #1 [got 0 values in 0.000409 sec, idle 5 sec]

zabbix     6014  0.0  0.3 258192  3100 ?        S    01:41   0:00 /usr/sbin/zabbix_server: alert manager #1 started

zabbix     6015  0.0  0.2 258192  2872 ?        S    01:41   0:00 /usr/sbin/zabbix_server: preprocessing manager #1 started

zabbix     6018  0.0  0.2 258192  2424 ?        S    01:41   0:00 /usr/sbin/zabbix_server: preprocessing worker #1 started

zabbix     6019  0.0  0.2 258192  2424 ?        S    01:41   0:00 /usr/sbin/zabbix_server: preprocessing worker #2 started

zabbix     6020  0.0  0.2 258192  2424 ?        S    01:41   0:00 /usr/sbin/zabbix_server: preprocessing worker #3 started

root       6031  0.0  0.0 112680   980 pts/0    S+   01:42   0:00 grep --color=auto zabbix

[root@am-01:/usr/local/src#] netstat -lntp | grep zabbix

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

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

08:

启动 httpd,并把 Zabbix 和 httpd 加入到开机自启动

[root@am-01:/usr/local/src#] systemctl enable zabbix-server.service

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

[root@am-01:/usr/local/src#] systemctl start httpd

[root@am-01:/usr/local/src#] systemctl enable httpd.service

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

[root@am-01:/usr/local/src#] ps -aux | grep httpd

root       6096  1.8  1.5 459740 15388 ?        Ss   01:47   0:00 /usr/sbin/httpd -DFOREGROUND

apache     6098  0.0  0.7 459872  7656 ?        S    01:47   0:00 /usr/sbin/httpd -DFOREGROUND

apache     6099  0.0  0.7 459872  7656 ?        S    01:47   0:00 /usr/sbin/httpd -DFOREGROUND

apache     6100  0.0  0.7 459872  7656 ?        S    01:47   0:00 /usr/sbin/httpd -DFOREGROUND

apache     6101  0.0  0.7 459872  7656 ?        S    01:47   0:00 /usr/sbin/httpd -DFOREGROUND

apache     6102  0.0  0.7 459872  7656 ?        S    01:47   0:00 /usr/sbin/httpd -DFOREGROUND

root       6146  0.0  0.0 112676   980 pts/0    S+   01:48   0:00 grep --color=auto httpd

09:

客户端访问 Zabbix 服务端 IP 地址,在 web 页面中配置 Zabbix

安装 Zabbix,还是建议 yum 安装,简单快捷

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

10:

检测服务器环境是否适合安装 Zabbix

这里有提示"date.timezone"有问题,去 php.ini 修改一下时区并重启 httpd

之后再重新刷新页面

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

[root@am-01:~#] vim /etc/php.ini

date.timezone = PRC

[root@am-01:~#] systemctl restart httpd.service

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

11:

登陆 Zabbix 的 web 页面,默认用户名:admin,密码:zabbix

登录进去之后第一时间修改密码

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

12:

注销并重新登录,发现可以使用新密码登陆,并且显示的界面是中文了

linux 学习笔记-065-Linux 监控平台-Linux 监控平台介绍,Zabbix 介绍及其安装

13:

返回客户端 am-02,安装 zabbix-agent

编辑客户端配置文件,为了能跟服务端实行白名单的 IP 通讯

Server 设置表示被动模式,ServerActive 表示启用主动模式(后面会讲到)

定义 hostname,能让 Zabbix 服务端识别,不定义的话,在服务端错误日志上会提示不能识别主机名等

[root@am-02:~#] yum install -y zabbix-agent

[root@am-02:~#] vim /etc/zabbix/zabbix_agentd.conf

Server=172.17.1.240

ServerActive=172.17.1.240

Hostname=am-02

[root@am-02:~#] systemctl start zabbix-agent.service

[root@am-02:~#] ps -aux | grep zabbix

zabbix     4539  0.0  0.1  84896  1260 ?        S    18:54   0:00 /usr/sbin/zabbix_agentd -c /etc/zabbixzabbix_agentd.conf

zabbix     4540  0.0  0.1  84896  1328 ?        S    18:54   0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]

zabbix     4541  0.0  0.1  84896  1848 ?        S    18:54   0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]

zabbix     4542  0.0  0.1  84896  1848 ?        S    18:54   0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]

zabbix     4543  0.0  0.1  84896  1848 ?        S    18:54   0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]

zabbix     4544  0.0  0.2  85024  2176 ?        S    18:54   0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

root       4546  0.0  0.0 112672   976 pts/0    S+   18:54   0:00 grep --color=auto zabbix

[root@am-02:~#] netstat -lntp | grep zabbix

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

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

注:

01:

"grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'itsupport.0';"语句中的"@'127.0.0.1'"是指来源 IP,并不是本机

02:

Zabbix 服务端监控端口为 10051,客户端监控端口为 10050

忘记 Zabbix 登陆用户 admin 密码,怎么办?

以后设置监控的时候,需要考虑到数据保存多长时间的问题,假如数据达到几百个 G,数据库性能是否会下降,服务器性能是否会下降等

进入数据库,直接修改

[root@am-01:~#] mysql -uroot -pitsupport.0

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> 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     | varchar(32)         | NO   |     | 15m     |       |

| lang           | varchar(5)          | NO   |     | en_GB   |       |

| refresh        | varchar(32)         | NO   |     | 30s     |       |

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

mysql> update users set passwd=md5('itsupport.0') where alias='Admin';

Query OK, 0 rows affected (0.02 sec)

Rows matched: 1  Changed: 0  Warnings: 0

mysql> select * from users;

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

| userid | alias | name   | surname       | passwd                           | url | autologin | autologout | lang  | refresh | type | theme   | attempt_failed | attempt_ip | attempt_clock | rows_per_page |

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

|      1 | Admin | Zabbix | Administrator | d2580a6f163e1d1c5021fdf3db123573 |     |         1 | 0          | zh_CN | 30s     |    3 | default |              0 |            |             0 |            50 |

|      2 | guest |        |               | d41d8cd98f00b204e9800998ecf8427e |     |         0 | 15m        | en_GB | 30s     |    1 | default |              0 |            |             0 |            50 |

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

2 rows in set (0.00 sec)