第1.3章 树莓派环境监控

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/warrah/article/details/88026251

1 zabbix
在拜读《树莓派学习指南(基于Linux).pdf》、《树莓派(Raspberry+Pi)实战指南++手把手教你掌握100个精彩案例》等人的著作,都提到了一个问题,就是树莓派容易烧坏。于是就想着在使用前,是不是把监控给做好。
比如安装pandas的时候,卡在这里了,查看CPU使用100%,执行/opt/vc/bin/vcgencmd measure_temp ,此是温度为temp=59.1'C,这个时候安装程序跟死掉一样了。
1
2

python写的树莓派实时监控温度,cpu使用率的小程序
,但这个不能做实际运营环境
1.1 安装mysql
MySQL安装之yum安装,按照此文章安装mysql

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
systemctl start  mysqld.service
systemctl status mysqld.service

我安装后root用户,密码是为空的,所以跟上面的链接有所不同,按照mysql如何修改root用户的密码,修改root用户的密码

mysql -uroot -p
use mysql; 
update user set password=password('123') where user='root' and host='localhost'; 
flush privileges; 

1.2 安装zabbix server
按照zabbix官网中,根据操作系统,执行

rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum clean all
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
# 创建zabbix数据库
mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> quit;
# 导入初始数据
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
# 为Zabbix server配置数据库,填入zabbix用户的密码
vi /etc/zabbix/zabbix_server.conf
DBPassword=password
为Zabbix前端配置PHP
vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
# 启动Zabbix server和agent进程
systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd

连接到新安装的Zabbix前端: http://server_ip_or_name/zabbix,登录用户名为:Admin,密码为:zabbix
1
1.3 树莓派zabbix agent

wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+stretch_all.deb
dpkg -i zabbix-release_4.0-2+stretch_all.deb
apt update
apt -y install zabbix-agent
# 启动zabbix-agent
service zabbix-agent start

ubuntu下面zabbix agent配置文件在/usr/share/zabbix-agent目录下,/etc/zabbix目录下面也需要修改

Assuming that agent dropped connection because of access permission

1.4 自定义监控
树莓派的温度是可以通过命令读取的,那么是不是可以通过脚本将其监控起来呢?

vim /zabbix/etc/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=get_temp,/usr/bin/python /application/monitor/os_info.py
# 如果是root用户启动则需要设置
AllowRoot=1
# 如果是zabbix用户,则需要对zabbix用户设置脚本执行权限

在zabbixserver可以验证agent是否生效

 ./zabbix_get -s 10.101.5.136 -p 10050 -k "get_temp"

2 日志
执行爬虫的时候,out日志逐渐增加,可以SD卡的空间有限,势必需要做定时清理工作。

nohup scrapy runspider test_spider.py >> /home/pi/logs/spiders/test_spider.out &

执行cron status,提示错误信息

cron: can't lock /var/run/crond.pid, otherpid may be 292: Resource temporarily unavailable

unbutu can’t lock /var/run/crond.pid,可是我是树莓派,没法执行。cron can’t lock /var/run/crond.pid ,这篇文章说执行rm -rf /var/run/cron.pid后,需要重启系统,可是真的需要重启系统吗。我只是加了个定时任务,就得重启树莓派?还不如自己用python写定时任务,就不用cron了。
3 swap设置
默认情况swap是没有设置
1
通过zabbix监控出现Lack of free swap space的警告,执行pip install pandas的时候基本卡死了
2
那么如何设置swap呢?通过linux(centos 7)显示系统内存状态free命令用法中的计算公式

# 应用程序
可用内存=free+buff/cache=772+96=868M
total=used+free+buff/cache=36+772+96≈905

再看看修改树莓派交换分区 SWAP 的正确姿势,Swap分区是当物理内存不够用的时候,把物理内存的一部分空间释放出来,以供当前的程序使用,释放出来的空间被临时保存在swap分区中,文章给出一个原则一般在内存小于2G的情况下,交换分区应为内存的2倍

猜你喜欢

转载自blog.csdn.net/warrah/article/details/88026251
今日推荐