利用zabbix软件,搭建自动化监控系统。
监控的目的:
报告系统运行状况:内容包括吞吐量、反应时间、使用率等。
提前发现问题:进行服务器性能调整、找出系统的瓶颈在何处。
监控的资源类别:
公开数据:
tcp或udp端口、web、ftp、ssh、数据库等。
私有数据:
cpu、内存、磁盘、网卡流量、用户进程等。
系统常用监控命令:
ps、uptime、free、swapon -s、df -h、ifconfig、netstat、ping、traceroute、iostat
自动化监控系统:
Cacti:基于SNMP协议,强大的绘图能力。
Nagios:基于Agent、强大的状态检查与报警机制、插件较多、支持自己写入监控脚本。
Zabbix:基于多种监控机制、支持分布式监控。
Zabbix简介:
是一个高度集成的监控解决方案。
可以实现企业级的开源分布式监控。
通过C/S模式采集监控数据。
通过B/S模式实现Web管理。
通过SNMP或Agent采集数据,并写入数据库中。
服务器使用LNMP架构实现Web前端管理。
被监控主机需要安装Agent,且网络设备支持SNMP。
准备安全监控系统环境:
搭建LNMP环境:
Nginx安装参考:https://teddyou.com/?p=171
注意!nginx配置文件的http{..}中需要添加如下内容,并启用PHP本地调用:
fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300;
MySQL数据库安装参考:https://teddyou.com/?p=85
Mariadb数据库安装运行:
yum -y install mariadb-server mariadb-devel systemctl start mariadb
PHP安装运行:
yum -y install php-fpm php-mysql systemctl start php-rpm
安装Zabbix:
下载:https://www.zabbix.com/cn/download_agents
yum -y install net-snmp-devel curl-devel libevent-devel tar xf zabbix-3.2.3.tar.gz cd ./zabbix-3.2.3/ ./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl make && make install
初始化Zabbix:
[root@localhost zabbix-3.2.3]# mysql MariaDB [(none)]> create database zabbix character set utf8; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> exit Bye [root@localhost zabbix-3.2.3]# cd database/mysql/ [root@localhost mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql [root@localhost mysql]# mysql -uzabbix -pzabbix zabbix < images.sql [root@localhost mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
导入Web页面:
[root@localhost zabbix-3.2.3]# cp -rp frontends/php/ /usr/local/nginx/html/zabbix [root@localhost zabbix-3.2.3]# chmod 777 -R /usr/local/nginx/html/zabbix/
访问Web页面:http://zabbix服务器的IP或域名/zabbix/setup.php
点击下一步,出现报错信息,我们需要继续按照报错信息修改配置文件。
vim /etc/php.ini 672 post_max_size = 16M 384 max_execution_time = 300 394 max_input_time = 300 878 date.timezone = Asia/Shanghai yum -y install php-gd php-xml php-ldap php-bcmath systemctl restart php-fpm
刷新服务,即可进行初始化设置。初始化完成后默认登陆账户为admin,密码为zabbix
启用zabbix服务:
[root@localhost zabbix-3.2.3]# vim /usr/local/etc/zabbix_server.conf 87 DBName=zabbix 103 DBUser=zabbix 111 DBPassword=zabbix [root@localhost zabbix-3.2.3]# useradd zabbix [root@localhost zabbix-3.2.3]# cp misc/init.d/fedora/core/zabbix_server /etc/init.d/ [root@localhost zabbix-3.2.3]# chmod +x /etc/init.d/zabbix_server [root@localhost zabbix-3.2.3]# sed -i '22s;/usr/local;/usr/local/zabbix;' /etc/init.d/zabbix_server [root@localhost zabbix-3.2.3]# /etc/init.d/zabbix_server start [root@localhost zabbix-3.2.3]# ss -nutlp | grep 10051
存在10051端口则说明服务被成功启动。
访问zabbix的web页面,在user的用户设置中可以将语言修改为中文(zh_CN)。
配置被监控的主机:
tar xf zabbix-3.2.3.tar.gz cd zabbix-3.2.3/ useradd -s /sbin/nologin zabbix ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install vim /usr/local/zabbix/etc/zabbix_agentd.conf 91 Server=127.0.0.1,192.168.2.5 132 ServerActive=192.168.2.5:10051 cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ chmod +x /etc/init.d/zabbix_agentd sed -i '22s;/usr/local;/usr/local/zabbix;' /etc/init.d/zabbix_agentd /etc/init.d/zabbix_agentd start ss -nutlp | grep 10050
查看端口10050被zabbix程序占用则说明服务启动成功。
配置完成,可在web管理页面中添加主机开始监控,部分模板存在冲突,请自行测试。
拓展:
打开自定义监控功能:
vim /usr/local/zabbix/etc/zabbix_agentd.conf 263 Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf 278 UnsafeUserParameters=1 vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/sumusers.conf UserParameter=get_sum_users,wc -l /etc/passwd | awk '{print $1}'
创建新的监控模板即可调用。
发表评论