Prometheus+Grafana+Consul+Consul_Exporter+Node_Exporter+AlertManager+BlackBox_Exporter(一)

1.目标

1.Grafana从Prometheus拉取数据图表化展示监控结果
2.Prometheus生成告警规则并推送告警至AlertManager做分组抑制处理最后到达邮箱

2.版本

Prometheus 2.36.2
Influxdb 1.7.8
Grafana 7.0.6
Consul 1.6.1
Consul_Exporter 0.8.0
Node_Exporter 1.3.1
AlertManager 0.24.0
BlackBox_Exporter 0.21.1
CentOS 7.5

3.安装包

Prometheus官网下载地址:https://prometheus.io/download/
自己整理的安装包可用天翼云盘下载:https://cloud.189.cn/t/3aMBJzJNFZje (访问码:9j3c)

在这里插入图片描述

4.1安装

#1.1解压prometheus
tar -xvf prometheus-2.36.2.linux-amd64.tar.gz -C /usr/local/prometheus
#1.2编辑服务开机启动文件
#--web.enable-admin-api 这个参数是为了开启用api查看删除prometheus收集的数据
vim /usr/lib/systemd/system/prometheus.service
	[Unit]
	Description=prometheus
	After=network.target 
	
	[Service]
	User=prometheus
	Group=prometheus
	WorkingDirectory=/usr/local/prometheus
	ExecStart=/usr/local/prometheus/prometheus --web.enable-admin-api
	[Install]
	WantedBy=multi-user.target
#1.3编辑配置文件,配置数据保存至influxdb

#追加到配置文件末尾即可
vim /usr/local/prometheus/prometheus.yml

	# Data save to influxdb
	remote_write:
	  - url: "http://localhost:8086/api/v1/prom/write?db=prometheus"
	remote_read:
	  - url: "http://localhost:8086/api/v1/prom/read?db=prometheus"
#1.4influxdb创建prometheus库
create database prometheus;

#2.安装grafana
yum install /root/grafana-7.0.6-1.x86_64.rpm

#3.1解压Node_Exporter 
tar -xvf node_exporter-1.3.1.linux-amd64.tar.gz -C /usr/local/node_exporter
#3.2编辑服务开机启动文件
vim /usr/lib/systemd/system/node_exporter.service
	[Unit]
	Description=node_exporter
	After=network.target 
	
	[Service]
	User=prometheus
	Group=prometheus
	ExecStart=/usr/local/exporter/node_exporter --web.listen-address=:20001 --collector.systemd --collector.systemd.unit-whitelist=(sshd|nginx).service --collector.processes 
	[Install]
	WantedBy=multi-user.target

#4.1consul解压
unzip /root/consul_1.6.1_linux_amd64.zip -d /usr/local/consul
#4.2编辑服务开机启动文件
vim /usr/lib/systemd/system/consul.service
	[Unit]
	Description=consul
	After=network.target
	
	[Service]
	ExecStart=/usr/local/consul/consul agent -dev -client 0.0.0.0 -ui
	[Install]
	WantedBy=multi-user.target
#4.3prometheus配置文件增加配置
<think>好的,我现在需要帮助用户解决snmp_exporter服务启动失败的问题,错误状态是status 1,可能涉及systemd配置或Prometheus配置文件的问题。首先,我应该按照用户提供的系统级指令来组织回答,确保格式正确,用中文回答,并生成相关问题。同时,引用用户提供的引用内容来支持解决方案。 首先,用户提到服务启动失败,状态码1通常表示配置错误或权限问题。根据引用中的类似问题,比如引用[1]中提到blackbox-exporter的问题是由于systemd服务配置问题,可能需要检查snmp_exporter的systemd单元文件是否正确。比如,检查是否有正确的ExecStart路径,用户权限,以及是否遗漏了必要的参数。 然后,根据引用[2]中的process-exporter的下载安装,可能需要确认snmp_exporter的二进制文件是否正确安装,路径是否正确,文件权限是否设置得当。用户可能需要验证snmp_exporter的安装步骤,确保没有遗漏步骤,比如解压、移动文件到正确目录等。 另外,引用[3]提到防火墙端口的开放,虽然snmp_exporter通常使用的端口可能不是16379,但需要检查snmp_exporter使用的端口是否被防火墙阻止。比如,默认的snmp_exporter使用9116端口,用户需要确认该端口是否开放,是否需要执行类似的firewall-cmd命令。 引用[4]中提到了Consul的配置多实例的情况,虽然这可能不直接相关,但如果用户在多实例环境中运行snmp_exporter,可能需要检查配置文件中的地址端口是否正确,是否有冲突。 接下来,我应该分步骤引导用户进行排查: 1. 检查systemd服务配置:查看snmp_exporter.service文件,确认ExecStart路径是否正确,是否有必要的启动参数,比如--config.file指定配置文件路径。根据引用[1]中的例子,可能需要添加环境变量或调整配置参数。 2. 检查配置文件语法:snmp_exporter的配置文件(通常是snmp.yml)是否正确,特别是YAML格式是否正确,缩进是否正确,模块定义是否有错误。可以尝试运行snmp_exporter二进制文件手动启动,查看输出日志中的错误信息。 3. 验证端口防火墙:确认snmp_exporter监听的端口是否被占用,或者防火墙是否阻止。使用netstat或ss命令检查端口占用情况,参考引用[3]中的方法开放相应端口。 4. 查看日志信息:使用journalctl -u snmp_exporter.service查看systemd日志,找出具体的错误原因。例如,如果日志显示配置文件解析错误,则需修正配置文件;如果显示权限被拒绝,则调整文件权限或用户权限。 5. 确保依赖项正确:snmp_exporter可能需要某些库或工具,比如snmpwalk或其他SNMP工具,确保这些已安装并可用。 在生成相关问题的时候,需要考虑用户可能遇到的更深层次的问题,比如配置文件的编写、systemd的高级配置、Prometheus的整合问题等。 现在需要确保回答的结构清晰,分步骤说明,并适当引用提供的引用内容来支持解决方案。同时,生成的三个问题需要相关且有帮助。</think>### 排查snmp_exporter服务启动失败(status 1)的步骤 #### 1. 检查systemd服务配置 - **确认服务文件路径权限** 查看`/lib/systemd/system/snmp_exporter.service`或自定义路径的systemd文件,确保`ExecStart`指向正确的二进制文件路径,例如: ```ini ExecStart=/usr/local/bin/snmp_exporter --config.file=/etc/snmp_exporter/snmp.yml ``` 参考引用[1]中提到的服务配置调整方法,可能需要添加`Restart=on-failure`等参数[^1]。 - **验证用户权限** 确保服务文件中的`User`字段设置为非root用户(如`prometheus`),并检查二进制文件配置文件的权限: ```bash chmod 755 /usr/local/bin/snmp_exporter chown -R prometheus:prometheus /etc/snmp_exporter/ ``` #### 2. 检查配置文件语法 - **手动运行以调试** 直接执行二进制文件,查看具体报错: ```bash /usr/local/bin/snmp_exporter --config.file=/etc/snmp_exporter/snmp.yml ``` 若输出类似`error parsing config file: ...`,需检查`snmp.yml`的YAML语法(如缩进、模块定义)[^2]。 #### 3. 验证端口防火墙规则 - **确认端口占用情况** snmp_exporter默认使用端口`9116`,检查是否被其他进程占用: ```bash ss -tulnp | grep 9116 ``` 若需更换端口,可在启动命令中添加`--web.listen-address=:新端口`。 - **开放防火墙端口** 参考引用[3]中的方法,开放对应端口: ```bash firewall-cmd --zone=public --add-port=9116/tcp --permanent systemctl restart firewalld ``` #### 4. 查看systemd日志 - **通过journalctl定位错误** 执行以下命令查看详细日志: ```bash journalctl -u snmp_exporter.service -xe ``` 常见错误示例: - 配置文件路径错误:`Failed to load config: open /etc/snmp_exporter/snmp.yml: no such file...` - 权限问题:`permission denied`(需调整文件所有者) #### 5. 验证依赖项 - **确保SNMP工具链完整** snmp_exporter依赖`snmpwalk`等工具,检查是否安装: ```bash rpm -qa | grep net-snmp # CentOS dpkg -l | grep snmp # Debian/Ubuntu ``` --- ### 配置文件示例(关键部分) ```yaml modules: if_mib: walk: - 1.3.6.1.2.1.2 # interfaces version: 2 auth: community: public ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值