19.1 Linux监控平台介绍
常见开源监控软件
cacti、nagios、zabbix、smokeping、open-falcon等等
cacti、smokeping偏向于基础监控,成图非常漂亮
cacti、nagios、zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图
open-falcon为小米公司开发,开源后受到诸多大公司和运维工程师的追捧,适合大企业,滴滴、360、新浪微博、京东等大公司在使用这款监控软件,值得研究
后续以介绍zabbix为主
19.2 zabbix监控介绍
C/S架构,基于C++开发,监控中心支持web界面配置和管理
单server节点可以支持上万台客户端
最新版本3.4,官方文档https://www.zabbix.com/manuals
5个组件
zabbix-server 监控中心,接收客户端上报信息,负责配置、统计、操作数据
数据存储 存放数据,比如mysql
web界面 也叫web UI,在web界面下操作配置是zabbix简单易用的主要原因
zabbix-proxy 可选组件,它可以代替zabbix-server的功能,减轻server的压力
zabbix-agent 客户端软件,负责采集各个监控服务或项目的数据,并上报
19.3-6 安装zabbix
安装zabbix
官网下载地址 www.zabbix.com/download
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/ w eb界面下面配置zabbix
用户名Admin 密码zabbix
进入后台第一件事情就是修改密码
忘记Admin密码如何做
进入mysql命令行,选择zabbix库
mysql -uroot -p zabbix
update users set passwd=md5(‘newpasswd’) where alias=‘Admin’;
这样就更改了Admin用户的密码
Zabbix客户端安装
在客户端上也需要下载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
操作过程
linux-01 服务端, linux-02 客户端
服务端安装
[root@linux-01 ~]# wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@linux-01 ~]# rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm
[root@linux-01 ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
启动 MySQL
[root@linux-01 ~]# systemctl start mysqld
[root@linux-01 ~]# ps aux|grep mysql
[root@linux-01 ~]# vim /etc/my.cnf
添加最后一行
[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock
server-id=160
log_bin=aminglinux01
character_set_server = utf8
配置 MySQL
[root@linux-01 ~]# mysql -uroot -paminglinux
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 'aming-zabbix';
Query OK, 0 rows affected (0.00 sec)
[root@linux-01 ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.8/
[root@linux-01 zabbix-server-mysql-3.4.8]# ls
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
[root@linux-01 zabbix-server-mysql-3.4.8]# gzip -d create.sql.gz
[root@linux-01 zabbix-server-mysql-3.4.8]# ls
AUTHORS ChangeLog COPYING create.sql NEWS README
[root@linux-01 zabbix-server-mysql-3.4.8]# mysql -uroot -paminglinux zabbix < create.sql
Warning: Using a password on the command line interface can be insecure.
启动 zabbix
[root@linux-01 ~]# systemctl start zabbix-server
Job for zabbix-server.service failed because a configured resource limit was exceeded. See "systemctl status zabbix-server.service" and "journalctl -xe" for details.
[root@linux-01 ~]# getenforce
Enforcing
[root@linux-01 ~]# setenforce 0
[root@linux-01 ~]# getenforce
Permissive
[root@linux-01 ~]# systemctl start zabbix-server
[root@linux-01 ~]# systemctl start httpd
开机启动
[root@linux-01 ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@linux-01 ~]# 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.
zabbix启动但没有监听端口,修改配置
[root@linux-01 ~]# ps aux |grep zabbix
zabbix 11841 0.0 0.1 259384 3368 ? S 04:00 0:00 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
root 11990 0.0 0.0 112676 980 pts/0 R+ 04:08 0:00 grep --color=auto zabbix
[root@linux-01 ~]# netstat -lnpt
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 1041/rpc.mountd
tcp 0 0 0.0.0.0:39029 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 978/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1323/master
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:48259 0.0.0.0:* LISTEN 980/rpc.statd
tcp6 0 0 :::3306 :::* LISTEN 11706/mysqld
tcp6 0 0 :::41514 :::* LISTEN -
tcp6 0 0 :::43981 :::* LISTEN 980/rpc.statd
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::80 :::* LISTEN 11888/httpd
tcp6 0 0 :::20048 :::* LISTEN 1041/rpc.mountd
tcp6 0 0 :::22 :::* LISTEN 978/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1323/master
tcp6 0 0 :::2049 :::* LISTEN -
[root@linux-01 ~]# vim /etc/zabbix/zabbix_server.conf
添加以下 第2第4行
DBHost=localhost
DBHost=127.0.0.1
DBUser=zabbix
DBPassword=aming-zabbix
[root@linux-01 ~]# netstat -lnpt
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 1041/rpc.mountd
tcp 0 0 0.0.0.0:39029 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 978/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1323/master
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 12062/zabbix_server
tcp 0 0 0.0.0.0:48259 0.0.0.0:* LISTEN 980/rpc.statd
tcp6 0 0 :::3306 :::* LISTEN 11706/mysqld
tcp6 0 0 :::41514 :::* LISTEN -
tcp6 0 0 :::43981 :::* LISTEN 980/rpc.statd
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::80 :::* LISTEN 11888/httpd
tcp6 0 0 :::20048 :::* LISTEN 1041/rpc.mountd
tcp6 0 0 :::22 :::* LISTEN 978/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1323/master
tcp6 0 0 :::2049 :::* LISTEN -
tcp6 0 0 :::10051 :::* LISTEN 12062/zabbix_server
[root@linux-01 ~]# ps aux |grep zabbix
zabbix 12062 0.5 0.2 259488 4200 ? S 04:17 0:00 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
zabbix 12065 0.0 0.1 259488 2528 ? S 04:17 0:00 /usr/sbin/zabbix_server: configuration syncer [waiting 60 sec for processes]
zabbix 12066 0.0 0.1 259488 2532 ? S 04:17 0:00 /usr/sbin/zabbix_server: alerter #1 started
zabbix 12067 0.0 0.1 259488 2532 ? S 04:17 0:00 /usr/sbin/zabbix_server: alerter #2 started
zabbix 12068 0.0 0.1 259488 2532 ? S 04:17 0:00 /usr/sbin/zabbix_server: alerter #3 started
zabbix 12069 0.0 0.1 259488 2528 ? S 04:17 0:00 /usr/sbin/zabbix_server: housekeeper [startup idle for 30 minutes]
zabbix 12070 0.0 0.1 259560 2984 ? S 04:17 0:00 /usr/sbin/zabbix_server: timer #1 [processed 0 triggers, 0 events in 0.000090 sec, 0 maintenances in 0.000000 sec, idle 30 sec]
zabbix 12071 0.0 0.1 259488 2908 ? S 04:17 0:00 /usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.000733 sec, idle 5 sec]
zabbix 12072 0.1 0.2 363848 5096 ? S 04:17 0:00 /usr/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.001027 sec, idle 60 sec]
zabbix 12073 0.0 0.1 259488 2884 ? S 04:17 0:00 /usr/sbin/zabbix_server: history syncer #1 [synced 0 items in 0.000001 sec, idle 1 sec]
zabbix 12074 0.0 0.1 259488 2884 ? S 04:17 0:00 /usr/sbin/zabbix_server: history syncer #2 [synced 0 items in 0.000001 sec, idle 1 sec]
zabbix 12075 0.0 0.1 259488 2884 ? S 04:17 0:00 /usr/sbin/zabbix_server: history syncer #3 [synced 0 items in 0.000001 sec, idle 1 sec]
zabbix 12076 0.0 0.1 259488 2884 ? S 04:17 0:00 /usr/sbin/zabbix_server: history syncer #4 [synced 0 items in 0.000001 sec, idle 1 sec]
zabbix 12081 0.0 0.2 259488 3848 ? S 04:17 0:00 /usr/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.000989 sec, idle 3 sec]
zabbix 12082 0.0 0.2 259488 3840 ? S 04:17 0:00 /usr/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000003 sec, idle 5 sec]
zabbix 12083 0.0 0.1 259488 2652 ? S 04:17 0:00 /usr/sbin/zabbix_server: self-monitoring [processed data in 0.000007 sec, idle 1 sec]
zabbix 12084 0.0 0.1 259488 2888 ? S 04:17 0:00 /usr/sbin/zabbix_server: task manager [processed 0 task(s) in 0.000685 sec, idle 5 sec]
zabbix 12085 0.1 0.2 366460 5268 ? S 04:17 0:00 /usr/sbin/zabbix_server: poller #1 [got 0 values in 0.000004 sec, idle 5 sec]
zabbix 12089 0.1 0.2 366460 5268 ? S 04:17 0:00 /usr/sbin/zabbix_server: poller #2 [got 0 values in 0.000004 sec, idle 5 sec]
zabbix 12090 0.1 0.2 366460 5268 ? S 04:17 0:00 /usr/sbin/zabbix_server: poller #3 [got 0 values in 0.000006 sec, idle 5 sec]
zabbix 12091 0.1 0.2 366460 5268 ? S 04:17 0:00 /usr/sbin/zabbix_server: poller #4 [got 0 values in 0.000004 sec, idle 5 sec]
zabbix 12092 0.1 0.2 366460 5268 ? S 04:17 0:00 /usr/sbin/zabbix_server: poller #5 [got 0 values in 0.000005 sec, idle 5 sec]
zabbix 12093 0.1 0.2 366460 5268 ? S 04:17 0:00 /usr/sbin/zabbix_server: unreachable poller #1 [got 0 values in 0.000005 sec, idle 5 sec]
zabbix 12094 0.0 0.1 259488 3620 ? S 04:17 0:00 /usr/sbin/zabbix_server: trapper #1 [processed data in 0.000000 sec, waiting for connection]
zabbix 12095 0.0 0.1 259488 3620 ? S 04:17 0:00 /usr/sbin/zabbix_server: trapper #2 [processed data in 0.000000 sec, waiting for connection]
zabbix 12096 0.0 0.1 259488 3620 ? S 04:17 0:00 /usr/sbin/zabbix_server: trapper #3 [processed data in 0.000000 sec, waiting for connection]
zabbix 12100 0.0 0.1 259488 3620 ? S 04:17 0:00 /usr/sbin/zabbix_server: trapper #4 [processed data in 0.000000 sec, waiting for connection]
zabbix 12101 0.0 0.1 259488 3620 ? S 04:17 0:00 /usr/sbin/zabbix_server: trapper #5 [processed data in 0.000000 sec, waiting for connection]
zabbix 12102 0.0 0.1 262092 2688 ? S 04:17 0:00 /usr/sbin/zabbix_server: icmp pinger #1 [got 0 values in 0.000005 sec, idle 5 sec]
zabbix 12105 0.0 0.1 259488 3268 ? S 04:17 0:00 /usr/sbin/zabbix_server: alert manager #1 [sent 0, failed 0 alerts, idle 5.013129 sec during 5.013131 sec]
zabbix 12106 0.0 0.1 259488 3024 ? S 04:17 0:00 /usr/sbin/zabbix_server: preprocessing manager #1 [queued 0, processed 0 values, idle 5.006026 sec during 5.006029 sec]
zabbix 12108 0.0 0.1 259488 2580 ? S 04:17 0:00 /usr/sbin/zabbix_server: preprocessing worker #1 started
zabbix 12109 0.0 0.1 259488 2580 ? S 04:17 0:00 /usr/sbin/zabbix_server: preprocessing worker #2 started
zabbix 12110 0.0 0.1 259488 2580 ? S 04:17 0:00 /usr/sbin/zabbix_server: preprocessing worker #3 started
root 12120 0.0 0.0 112676 976 pts/0 R+ 04:17 0:00 grep --color=auto zabbix
web配置zabbix
[root@linux-01 ~]# systemctl stop firewalld
在浏览器中打开 http://192.168.106.160/zabbix 设置zabbix
[root@linux-01 ~]# vim /etc/php.ini
date.timezone = Asia/Shanghai
[root@linux-01 ~]# systemctl restart httpd
界面 Configure DB connection
Database host:127.0.0.1
Database port:0
Database name:zabbix
User:zabbix
Password:aming-zabbix
界面 Zabbix server details 随意设置名字
Name : linux-01
登陆界面 默认
用户名:Admin
秘密: zabbix
Administration---Users---Admin,进去后修改密码和语言(aminglinux)---update---Apply
忘记Admin密码如何做
[root@linux-01 ~]# mysql -uroot -paminglinux
mysql> use zabbix;
mysql> show tables;
mysql> desc users;
mysql> update users set passwd=md5('aming') where alias='Admin';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from users;
使用新密码登陆zabbix
客户端安装
[root@linux-02 ~]# wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@linux-02 ~]# rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm
[root@linux-02 ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
[root@linux-02 ~]# vim /etc/zabbix/zabbix_agentd.conf
设置服务端IP
Server=192.168.106.160
ServerActive=192.168.106.160
Hostname=linux-02
客户端启动
[root@linux-02 ~]# systemctl start zabbix-agent
[root@linux-02 ~]# ps aux|grep zabbix
zabbix 1392 0.0 0.0 82740 1264 ? S 22:47 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 1393 0.0 0.0 82740 1296 ? S 22:47 0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix 1394 0.0 0.0 82740 1852 ? S 22:47 0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix 1395 0.0 0.0 82740 1852 ? S 22:47 0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix 1396 0.0 0.0 82740 1852 ? S 22:47 0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
zabbix 1397 0.0 0.1 82872 2200 ? S 22:47 0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
root 1400 0.0 0.0 112676 984 pts/0 R+ 22:47 0:00 grep --color=auto zabbix
[root@linux-02 ~]# netstat -lnpt
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:22 0.0.0.0:* LISTEN 937/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1179/master
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1392/zabbix_agentd
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::22 :::* LISTEN 937/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1179/master
tcp6 0 0 :::10050 :::* LISTEN 1392/zabbix_agentd