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 监控流程图
二, 安装 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)
(一) 点 next step
(二) 我们发现只有这一行是错误的
PHP option "date.timezone" | unknown | Fail |
(三) 改正时间错误, 修改 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
删除笔记修改笔记
(五) 定义 zabbix server 的界面
自定义 Name
(六)web 界面完成
八, 登录 zabbix
(一) 默认用户为 admin
默认登陆密码为 zabbix
(二) 更改密码
administration 下有个 user, 找到 admin 用户, 点进去
有个 change passwd, 点进去修改为自己想要的密码, 顺便更改语言, 然后 update
刷新界面, 就是中文了
编辑客户端 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 登录
来源: http://www.bubuko.com/infodetail-2482752.html