目录
LINUX常见监控平台
- 流行的开源监控软件有:Cacti、Nagios、Zabbix、smokeping、open-falcon等等
- Cacti更擅长监控网络流量。
- Zabbix可以存储数据方便地画图,并且支持查询历史数据和自定义监控项
- open-falcon为小米公司开发,开源后受到诸多大公司和运维工程师的追捧
Zabbix组件结构
Zabbix_Server
整个监控体系中最核心的组件,它负责接收客户端发送的报告信息,所有配置、统计数据及操作数据都由它组织。
数据库存储
所有配置信息和Zabbix收集到的数据都被存储在数据库中
Web界面
为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常跟Zabbix Server运行在同一台物理机器上
Zabbix_Proxy(可选)
用于监控节点非常多的分布式环境中,它可以代理zabbix-server的功能,减轻zabbix-server的压力。
Zabbix_Agent
zabbix-agent为客户端软件,用于采集各监控项目的数据,并把采集的数据传输给zabbix-proxy或zabbix-server。
Zabbix主要功能
- 监控系统
- 内存使用率
- CPU使用率
- 磁盘使用率
- 监控文件修改
- 网络监控
- 流量
- 路由器
- 交换机
- 防火墙
- 业务监控
- 进程
- 日志
- 硬件监控
- 电源
- 温度
Zabbix部署
- 下载安装Zabbix
[root@localhost src]# wget https://cdn.zabbix.com/zabbix/sources/stable/5.2/zabbix-5.2.0.tar.gz
[root@localhost src]# ls
debug kernels zabbix-5.2.0.tar.gz
[root@localhost src]# tar -xf zabbix-5.2.0.tar.gz
[root@localhost src]# ls
debug kernels zabbix-5.2.0 zabbix-5.2.0.tar.gz
# 创建系统用户
[root@localhost src]# useradd -r -M -s /sbin/nologin zabbix
[root@localhost src]# id zabbix
uid=992(zabbix) gid=990(zabbix) groups=990(zabbix)
- Zabbix数据库配置
# 进入mysql
[root@localhost ~]# mysql -uroot -p'123456'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or g
......
mysql>
# 创建zabbix数据库
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| zabbix |
+--------------------+
5 rows in set (0.13 sec)
# 创建并附加权限
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '123456';
Query OK, 0 rows affected, 2 warnings (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
# 查看zabbix包内的mysqk数据库文件
[root@localhost zabbix-5.2.0]# cd database/mysql/
[root@localhost mysql]# ls
data.sql double.sql images.sql Makefile.am Makefile.in schema.sql
# 导入zabbix包内的数据到zabbix数据库内
[root@localhost mysql]# mysql -uzabbix -p zabbix < schema.sql
Enter password:
[root@localhost mysql]# mysql -uzabbix -p zabbix < images.sql
Enter password:
[root@localhost mysql]# mysql -uzabbix -p zabbix < data.sql
Enter password:
# 验证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> show tables;
Tables_in_zabbix |
+----------------------------+
| acknowledges |
| actions |
| alerts |
| application_discovery |
| application_prototype |
| application_template |
| applications
......
| valuemaps |
| widget |
| widget_field |
+----------------------------+
170 rows in set (0.00 sec)
3.编译安装zabbix
[root@localhost zabbix-5.2.0]# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
# 注意:依赖包有:net-snmp-devel,libevent-devel
......
LDAP support: no
IPv6 support: no
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
# 进行编译安装
[root@localhost zabbix-5.2.0]# make install
......
- 部署zabbix server端
[root@localhost /]# cd usr/local/etc/
[root@localhost etc]# ls
zabbix_agentd.conf zabbix_agentd.conf.d zabbix_server.conf zabbix_server.conf.d
# 修改服务端配置文件,设置zabbix数据库连接密码。
......
DBUser=zabbix
### Option: DBPassword
# Database password.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=123456 # 设置数据库连接密码
......
- 启动zabbix_server 和 zabbix_agentd
[root@localhost etc]# zabbix_server
[root@localhost etc]# zabbix_agentd
[root@localhost etc]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:*
LISTEN 0 128 0.0.0.0:10051 0.0.0.0:*
LISTEN 0 128 127.0.0.1:9000 0.0.0.0:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 80 *:3306 *:*
6.web界面的安装与配置
# 修改/etc/php.ini参数已方便后续web页的安装
[root@localhost etc]# vim /etc/php.ini
.......
post_max_size = 16
......
......
max_execution_time = 300
......
max_input_time = 300
......
......
;date.timezone = Asia/Shanghai
......
# 修改完成之后重启服务
[root@localhost etc]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
# 将zabbix包内的网页前端文件导入到虚拟主机的配置文件中
[root@localhost htdocs]# mkdir zabbix
[root@localhost htdocs]# ls
index.html zabbix
[root@localhost zabbix-5.2.0]# cp -a ui/* /usr/local/httpd/htdocs/zabbix/
# 为htdocs更改所属组与所属用户
[root@localhost zabbix-5.2.0]# chown -R apache.apache /usr/local/httpd/htdocs
# 配置虚拟主机
[root@localhost zabbix-5.2.0]# vim /etc/httpd24/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/usr/local/httpd/htdocs/zabbix"
ServerName www.sawyer.com
ProxyRequests Off
ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/usr/local/httpd/htdocs/zabbix/$1
<Directory "/usr/local/httpd/htdocs/zabbix">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
# 暂时为zabbix开放web配置文件的权限
[root@localhost zabbix-5.2.0]# chmod 777 /usr/local/httpd/htdocs/zabbix/conf
[root@localhost zabbix-5.2.0]# ll -d /usr/local/httpd/htdocs/zabbix/conf
drwxrwxrwx 3 apache apache 94 Oct 26 23:44 /usr/local/httpd/htdocs/zabbix/conf
# 重启apache服务
[root@localhost zabbix-5.2.0]# apachectl restart
7.web初始化流程
Zabbix web页面默认登录账号为Admin ,密码为zabbix
# 配置完成后记得修改/htdocs/zabbix/conf文件的权限
[root@localhost zabbix-5.2.0]# chmod 755 /usr/local/httpd/htdocs/zabbix/conf
[root@localhost zabbix-5.2.0]# ll -d /usr/local/httpd/htdocs/zabbix/conf
drwxr-xr-x 3 apache apache 117 Nov 3 15:05 /usr/local/httpd/htdocs/zabbix/conf
Zabbix 监控项配置
客户端IP | 客户端环境 |
---|---|
192.168.197.133 | zabbix_agent |
1.配置客户机的zabbix客户端环境
# 安装依赖包
[root@localhost zabbix-5.2.0]# yum -y install pcre-devel
#创建系统用户
[root@localhost zabbix-5.2.0]# useradd -M -r -s /sbin/nologin zabbix
# 编译zabbix,客户机只用编译agent
[root@localhost zabbix-5.2.0]# ./configure --enable-agent
......
LDAP support: no
IPv6 support: no
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
[root@localhost zabbix-5.2.0]# make install
......
2.配置agent配置文件
[root@localhost etc]# vim /usr/local/etc/zabbix_agentd.conf
......
# Server=
Server=192.168.197.138 # 配置zabbix_server IP地址
......
# ServerActive=
ServerActive=192.168.197.138 # 配置zabbix_server IP地址
......
# Hostname=
Hostname=zabbix_test # 配置Hostname,此名字对应web页新增host名字
......
# 开启服务
[root@localhost etc]# zabbix_agentd
[root@localhost etc]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
- web页新建hosts_group
4.新建host
5.新建host后,新建item(监控项)
6.新建item后查看Lastest data(如果有value,说明已经成功监控)
7.新建trigger(触发器)
7.修改被监控的文件内容,测试zabbix监控效果
[root@localhost etc]# echo '你好' >> test.conf
[root@localhost etc]# cat test.conf
你好