目录
- 1 LibreNMS简单介绍
- 1.1 LibreNMS介绍
- 2 安装
- 2.1 Ubuntu安装
- 1、安装依赖
- 2、添加 librenms 用户
- 3、下载 LibreNMS
- 4、设置权限
- 5、安装 PHP 依赖项
- 6、设置时区
- 7、配置 MariaDB
- 8、配置 PHP-FPM
- 9、配置 Web 服务器
- 10、启用 lnms 命令
- 11、配置 snmpd
- 12、cron
- 13、启用调度程序
- 14、日志配置
- 15、登录
- 16、设置中文
- 2.2 Docker环境下的安装
1 LibreNMS简单介绍
1.1 LibreNMS介绍
LibreNMS 是一个开源的网络监控系统,它基于 Nagios 的核心,提供了一个功能丰富的网络监控解决方案。LibreNMS 旨在提供一个简单易用且高效的系统,用于监控网络设备,包括交换机、路由器、防火墙等。它能够自动发现网络设备,收集详细性能数据,并提供直观的报警和报告功能。
特点:
- 自动化发现:LibreNMS 可以自动扫描 IP 范围并识别网络上的设备,包括路由器、交换机、服务器等。
- 全面监控:它可以收集各种性能指标,如 CPU、内存使用率、带宽利用率、接口状态等。
- 实时告警:当设备或服务出现异常时,LibreNMS 可以发送邮件、短信或 Slack 等通知,确保及时响应。
- 灵活的报表:系统提供了丰富的图表和报表,帮助分析网络行为和趋势。
- API 接口:通过 RESTful API,可以与其他系统集成,实现自动化管理和自定义扩展。
- 易于扩展:由于使用 Docker 容器化部署,添加额外的服务(如第三方集成或插件)十分方便。
2 安装
2.1 Ubuntu安装
1、安装依赖
#
apt install acl curl fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php-cli php-curl php-fpm php-gd php-gmp php-json php-mbstring php-mysql php-snmp php-xml php-zip rrdtool snmp snmpd unzip python3-pymysql python3-dotenv python3-redis python3-setuptools python3-systemd python3-pip whois traceroute -y
2、添加 librenms 用户
mkdir /opt/librenms
useradd librenms -d /opt/librenms -M -r -s "$(which bash)"
3、下载 LibreNMS
cd /opt
git clone https://github.com/librenms/librenms.git
4、设置权限
chown -R librenms:librenms /opt/librenms
chmod 771 /opt/librenms
setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
5、安装 PHP 依赖项
su - librenms
./scripts/composer_wrapper.php install --no-dev
exit
# 有时,当使用代理来访问互联网时,上述脚本可能会失败。解决方法是手动安装软件包。对于全局安装:composer
wget https://getcomposer.org/composer-stable.phar
mv composer-stable.phar /usr/bin/composer
chmod +x /usr/bin/composer
6、设置时区
vi /etc/php/8.1/fpm/php.ini
date.timezone = Asia/Shanghai
vi /etc/php/8.1/cli/php.ini
date.timezone = Asia/Shanghai
timedatectl set-timezone Asia/Shanghai
7、配置 MariaDB
vi /etc/mysql/mariadb.conf.d/50-server.cnf
# 添加
[mysqld]
innodb_file_per_table=1
lower_case_table_names=0
# 重启
systemctl enable mariadb
systemctl restart mariadb
## 进入数据库进行配置
mysql -u root
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'root123';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
flush privileges;
exit
8、配置 PHP-FPM
cp /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.1/fpm/pool.d/librenms.conf
vi /etc/php/8.1/fpm/pool.d/librenms.conf
###
更改为 :[www][librenms]
[librenms]
更改为“librenms”:usergroup
user = librenms
group = librenms
# 更改为必须与 Web 服务器配置匹配的唯一路径
listen = /run/php-fpm-librenms.sock
;listen = /run/php/php8.1-fpm.sock
9、配置 Web 服务器
vi /etc/nginx/conf.d/librenms.conf
##
server {
listen 80;
server_name librenms.example.com;
root /opt/librenms/html;
index index.php;
charset utf-8;
gzip on;
gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ [^/]\.php(/|$) {
fastcgi_pass unix:/run/php-fpm-librenms.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi.conf;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
rm /etc/nginx/sites-enabled/default
systemctl restart nginx
systemctl restart php8.1-fpm
10、启用 lnms 命令
ln -s /opt/librenms/lnms /usr/bin/lnms
cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/
11、配置 snmpd
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
vi /etc/snmp/snmpd.conf
# 设置自己的社区字符串 RANDOMSTRINGGOESHERE
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
systemctl enable snmpd
systemctl restart snmpd
systemctl status snmpd.service
12、cron
cp /opt/librenms/dist/librenms.cron /etc/cron.d/librenms
13、启用调度程序
cp /opt/librenms/dist/librenms-scheduler.service /opt/librenms/dist/librenms-scheduler.timer /etc/systemd/system/
systemctl enable librenms-scheduler.timer
systemctl start librenms-scheduler.timer
14、日志配置
LibreNMS 将日志保存在 /opt/librenms/logs 目录下。随着时间的推移,这些日志文件可能会变得很大,并需要进行日志轮转(即删除旧日志或将其移动到其他位置)。为了轮转旧的日志文件,可以使用提供的 logrotate 配置文件。
cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
15、登录
地址:ip
直接选择数据库图标,输入密码,点击”check Credentials“
选择”build Database“
创建admin用户
进行简单设置
16、设置中文
2.2 Docker环境下的安装
前提:Docker、docker-compose 已经安装完成
# 1、下载
mkdir librenms
cd librenms
wget https://github.com/librenms/docker/archive/refs/heads/master.zip
unzip master.zip
cd docker-master/examples/compose
# 2、设置新的MySQL 密码
vim .env
MYSQL_PASSWORD=asyourpasswd
# 3、启动 docker 容器
sudo docker-compose -f compose.yml up -d
登录:ip:8000