influxdb
This commit is contained in:
parent
985b4319e1
commit
42b005de93
1 changed files with 135 additions and 97 deletions
232
README.md
232
README.md
|
|
@ -47,8 +47,8 @@
|
||||||
- [Zabbix](#Zabbix)
|
- [Zabbix](#Zabbix)
|
||||||
- [Grafana](#Grafana)
|
- [Grafana](#Grafana)
|
||||||
- [WinRM](#WinRM)
|
- [WinRM](#WinRM)
|
||||||
- [DSC](#DSC)
|
|
||||||
- [Ansible](#Ansible)
|
- [Ansible](#Ansible)
|
||||||
|
- [DSC](#DSC)
|
||||||
|
|
||||||
### Help
|
### Help
|
||||||
`Get-Verb` действия/глаголы, утвержденные для использования в командлетах \
|
`Get-Verb` действия/глаголы, утвержденные для использования в командлетах \
|
||||||
|
|
@ -312,7 +312,8 @@ $ # Конец строки
|
||||||
|
|
||||||
`$test = "string"` \
|
`$test = "string"` \
|
||||||
`$test -replace ".{1}$"` удалить любое кол-во символов в конце строки \
|
`$test -replace ".{1}$"` удалить любое кол-во символов в конце строки \
|
||||||
`$test -replace "^.{1}"` удалить любое кол-во символов в начале строки
|
`$test -replace "^.{1}"` удалить любое кол-во символов в начале строки \
|
||||||
|
`(4164539/1MB).ToString(".00")` округлить до 3,97
|
||||||
|
|
||||||
### Группы захвата
|
### Группы захвата
|
||||||
`$date = '12.31.2021'` \
|
`$date = '12.31.2021'` \
|
||||||
|
|
@ -336,8 +337,7 @@ $ # Конец строки
|
||||||
`[Byte]` 8-разрядное целое число без знака \
|
`[Byte]` 8-разрядное целое число без знака \
|
||||||
`[int16]` 16-разрядное знаковое целое число \
|
`[int16]` 16-разрядное знаковое целое число \
|
||||||
`[int]` 32-разрядное знаковое целое число. (BaseType:System.ValueType) \
|
`[int]` 32-разрядное знаковое целое число. (BaseType:System.ValueType) \
|
||||||
`[String]` неизменяемая строка символов Юникода фиксированной длины (BaseType:System.Object) \
|
`[String]` неизменяемая строка символов Юникода фиксированной длины (BaseType:System.Object)
|
||||||
`(4164539/1MB).ToString(".00")` округлить до 3,97
|
|
||||||
|
|
||||||
### Property
|
### Property
|
||||||
`$srv.Count` кол-во элементов в массиве \
|
`$srv.Count` кол-во элементов в массиве \
|
||||||
|
|
@ -3597,14 +3597,14 @@ API Token: `wqsqOIR3d-PYmiJQYir4sX_NjtKKyh8ZWbfX1ZlfEEpAH3Z2ylcHx3XZzUA36XO3HIos
|
||||||
`DROP USER "admin"` удалить пользователя
|
`DROP USER "admin"` удалить пользователя
|
||||||
|
|
||||||
### DATABASE
|
### DATABASE
|
||||||
`CREATE DATABASE win_performance` создать БД \
|
`CREATE DATABASE powershell` создать БД \
|
||||||
`SHOW DATABASES` отобразить список БД \
|
`SHOW DATABASES` отобразить список БД \
|
||||||
`USE win_performance` \
|
`USE powershell` \
|
||||||
`SHOW measurements` отобразить все таблицы \
|
`SHOW measurements` отобразить все таблицы \
|
||||||
`INSERT counters,host=console,counter=CPU value=0.88` записать данные в таблицу counters \
|
`INSERT counters,host=console,counter=CPU value=0.88` записать данные в таблицу counters \
|
||||||
`SELECT * FROM counters` отобразить все данные в таблице \
|
`SELECT * FROM counters` отобразить все данные в таблице \
|
||||||
`SELECT * FROM counters limit 10` отобразить 10 единиц данных \
|
`SELECT * FROM counters limit 10` отобразить 10 единиц данных \
|
||||||
`SELECT * FROM counters WHERE time > now() -2h` отобразить данные за последние 2 часа \
|
`SELECT * FROM counters WHERE time > now() -2d` отобразить данные за последние 2 дня \
|
||||||
`DELETE FROM counters WHERE time > now() - 2h` удалить данные за последние 2 часа \
|
`DELETE FROM counters WHERE time > now() - 2h` удалить данные за последние 2 часа \
|
||||||
`DELETE FROM counters WHERE time < now() - 24h` удалить данные старше 24 часов
|
`DELETE FROM counters WHERE time < now() - 24h` удалить данные старше 24 часов
|
||||||
|
|
||||||
|
|
@ -3612,49 +3612,88 @@ API Token: `wqsqOIR3d-PYmiJQYir4sX_NjtKKyh8ZWbfX1ZlfEEpAH3Z2ylcHx3XZzUA36XO3HIos
|
||||||
|
|
||||||
### API POST
|
### API POST
|
||||||
```
|
```
|
||||||
$url = "http://192.168.3.104:8086/write?db=win_performance"
|
Table Tag (string) Field (double/int) TIMESTAMP
|
||||||
$PerformanceStat = "\Процессор(_Total)\% загруженности процессора"
|
measurement,Tag_Keys1=Tag_Values1,Tag_Keys2=Tag_Values2 Field_Keys1="Values",Field_Keys2="Values" 0000000000000000000
|
||||||
$Value = ((Get-Counter $PerformanceStat).CounterSamples).CookedValue
|
1 2 3
|
||||||
Invoke-RestMethod -Method POST -Uri $url -Body "counters,host=$ENV:COMPUTERNAME,counter=CPU value=$value"
|
|
||||||
```
|
$ip = "192.168.3.104"
|
||||||
### Unix Time
|
$port = "8086"
|
||||||
```
|
$db = "powershell"
|
||||||
[string]$timestamp = (New-TimeSpan -Start (Get-Date "01/01/1970") -End (Get-Date)).TotalSeconds
|
$table = "speedtest_test"
|
||||||
[string]$timestamp = ($timestamp -replace "\..+") + "000000000"
|
$ipp = $ip+":"+$port
|
||||||
Invoke-RestMethod -Method POST -Uri $url -Body "speedtest,host=$(hostname) download=200000,upload=300000,ping=3 $timestamp"
|
$url = "http://$ipp/write?db=$db"
|
||||||
# speedtest - Table
|
$user = "admin"
|
||||||
# host - Tag Keys
|
$pass = "password" | ConvertTo-SecureString -AsPlainText -Force
|
||||||
# $(hostname) - Tag Values
|
$cred = [System.Management.Automation.PSCredential]::new($user,$pass)
|
||||||
# temp* - Field Keys
|
$unixtime = (New-TimeSpan -Start (Get-Date "01/01/1970") -End (Get-Date)).TotalSeconds
|
||||||
|
$timestamp = ([string]$unixtime -replace "\..+") + "000000000"
|
||||||
|
|
||||||
|
Invoke-RestMethod -Method POST -Uri $url -Body "$table,host=$(hostname) download=200000,upload=300000,ping=3 $timestamp"
|
||||||
```
|
```
|
||||||
### API GET
|
### API GET
|
||||||
|
|
||||||
`curl http://192.168.3.104:8086/query --data-urlencode "q=SHOW DATABASES" # | ConvertFrom-Json`
|
`curl http://192.168.3.104:8086/query --data-urlencode "q=SHOW DATABASES"` pwsh7 (ConvertFrom-Json) and bash
|
||||||
|
|
||||||
`$db = irm "http://192.168.3.104:8086/query?q=SHOW DATABASES"` \
|
`$dbs = irm "http://192.168.3.104:8086/query?q=SHOW DATABASES"` \
|
||||||
`$db = irm "http://192.168.3.104:8086/query?epoch=ms&u=admin&p=password&q=SHOW DATABASES"` \
|
`$dbs = irm "http://192.168.3.104:8086/query?epoch=ms&u=admin&p=password&q=SHOW DATABASES"` \
|
||||||
`$db.results.series.values`
|
`$dbs.results.series.values`
|
||||||
```
|
```
|
||||||
$ip = "192.168.3.104"
|
$ip = "192.168.3.104"
|
||||||
$port = "8086"
|
$port = "8086"
|
||||||
$db = "win_performance"
|
$db = "powershell"
|
||||||
$table = "counters"
|
$table = "speedtest_test"
|
||||||
$query = "SELECT * FROM $table"
|
$query = "SELECT * FROM $table"
|
||||||
$ipp = $ip+":"+$port
|
$ipp = $ip+":"+$port
|
||||||
$url = "http://$ipp/query?db=$db&q=$query"
|
$url = "http://$ipp/query?db=$db&q=$query"
|
||||||
#$cred = Get-Credential
|
|
||||||
#$user = "admin"
|
|
||||||
#$pass = "password" | ConvertTo-SecureString -AsPlainText -Force
|
|
||||||
#$cred = [System.Management.Automation.PSCredential]::new($user,$pass)
|
|
||||||
$data = Invoke-RestMethod -Method GET -Uri $url # -Credential $cred
|
$data = Invoke-RestMethod -Method GET -Uri $url # -Credential $cred
|
||||||
$data.results.series.name # имя таблицы
|
$data.results.series.name # имя таблицы
|
||||||
$data.results.series.columns # столбцы/ключи
|
$data.results.series.columns # столбцы/ключи
|
||||||
$data.results.series.values # данные построчно
|
$data.results.series.values # данные построчно
|
||||||
```
|
```
|
||||||
|
### Endpoint
|
||||||
|
|
||||||
`irm http://localhost:8086/api/v2/setup` \
|
`irm http://localhost:8086/api/v2/setup` \
|
||||||
`irm http://localhost:8086/api/v2/config` \
|
`irm http://localhost:8086/api/v2/config` \
|
||||||
`irm http://localhost:8086/api/v2/write`
|
`irm http://localhost:8086/api/v2/write`
|
||||||
|
|
||||||
|
### PerformanceTo-InfluxDB
|
||||||
|
```
|
||||||
|
function ConvertTo-Encoding ([string]$From, [string]$To) {
|
||||||
|
Begin {
|
||||||
|
$encFrom = [System.Text.Encoding]::GetEncoding($from)
|
||||||
|
$encTo = [System.Text.Encoding]::GetEncoding($to)
|
||||||
|
}
|
||||||
|
Process {
|
||||||
|
$bytes = $encTo.GetBytes($_)
|
||||||
|
$bytes = [System.Text.Encoding]::Convert($encFrom, $encTo, $bytes)
|
||||||
|
$encTo.GetString($bytes)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$localization = (Get-Culture).LCID # текущая локализация
|
||||||
|
if ($localization -eq 1049) {
|
||||||
|
$performance = "\\$(hostname)\Процессор(_Total)\% загруженности процессора" | ConvertTo-Encoding UTF-8 windows-1251 # декодировать кириллицу
|
||||||
|
} else {
|
||||||
|
$performance = "\Processor(_Total)\% Processor Time"
|
||||||
|
}
|
||||||
|
|
||||||
|
while ($true) {
|
||||||
|
$unixtime = (New-TimeSpan -Start (Get-Date "01/01/1970") -End (Get-Date)).TotalSeconds
|
||||||
|
$timestamp = ([string]$unixtime -replace "\..+") + "000000000"
|
||||||
|
[double]$value = (Get-Counter $performance).CounterSamples.CookedValue.ToString("0.00").replace(",",".") # округлить в тип данных Double
|
||||||
|
Invoke-RestMethod -Method POST -Uri "http://192.168.3.104:8086/write?db=powershell" -Body "performance,host=$(hostname),counter=CPU value=$value $timestamp"
|
||||||
|
sleep 5
|
||||||
|
}
|
||||||
|
```
|
||||||
|
### Service
|
||||||
|
```
|
||||||
|
$powershell_Path = (Get-Command powershell).Source
|
||||||
|
$NSSM_Path = "C:\NSSM\NSSM-2.24.exe"
|
||||||
|
$Script_Path = "C:\NSSM\PerformanceTo-InfluxDB.ps1"
|
||||||
|
$Service_Name = "PerformanceTo-InfluxDB"
|
||||||
|
& $NSSM_Path install $Service_Name $powershell_Path -ExecutionPolicy Bypass -NoProfile -f $Script_Path
|
||||||
|
Get-Service $Service_Name | Start-Service
|
||||||
|
```
|
||||||
# WMI
|
# WMI
|
||||||
|
|
||||||
### WMI/CIM (Windows Management Instrumentation/Common Information Model)
|
### WMI/CIM (Windows Management Instrumentation/Common Information Model)
|
||||||
|
|
@ -3876,69 +3915,6 @@ $results2
|
||||||
`Set-Item WSMan:\localhost\client\TrustedHosts -Value "*" -force` добавить новый доверенный хост (для всех) в конфигурацию \
|
`Set-Item WSMan:\localhost\client\TrustedHosts -Value "*" -force` добавить новый доверенный хост (для всех) в конфигурацию \
|
||||||
`net localgroup "Remote Management Users" "winrm" /add` добавить пользователя winrm (удалить /del) в локальную группу доступа "пользователи удаленного управления" (Local Groups - Remote Management Users)
|
`net localgroup "Remote Management Users" "winrm" /add` добавить пользователя winrm (удалить /del) в локальную группу доступа "пользователи удаленного управления" (Local Groups - Remote Management Users)
|
||||||
|
|
||||||
# DSC
|
|
||||||
|
|
||||||
`Import-Module PSDesiredStateConfiguration` \
|
|
||||||
`(Get-Module PSDesiredStateConfiguration).ExportedCommands` \
|
|
||||||
`Get-DscLocalConfigurationManager`
|
|
||||||
|
|
||||||
`Get-DscResource` \
|
|
||||||
`Get-DscResource -Name File -Syntax` # https://learn.microsoft.com/ru-ru/powershell/dsc/reference/resources/windows/fileresource?view=dsc-1.1
|
|
||||||
|
|
||||||
`Ensure = Present` настройка должна быть включена (каталог должен присутствовать, процесс должен быть запущен, если нет – создать, запустить) \
|
|
||||||
`Ensure = Absent` настройка должна быть выключена (каталога быть не должно, процесс не должен быть запущен, если нет – удалить, остановить)
|
|
||||||
```
|
|
||||||
Configuration TestConfiguraion
|
|
||||||
{
|
|
||||||
Ctrl+Space
|
|
||||||
}
|
|
||||||
|
|
||||||
Configuration DSConfigurationProxy
|
|
||||||
{
|
|
||||||
Node vproxy-01
|
|
||||||
{
|
|
||||||
File CreateDir
|
|
||||||
{
|
|
||||||
Ensure = "Present"
|
|
||||||
Type = "Directory"
|
|
||||||
DestinationPath = "C:\Temp"
|
|
||||||
}
|
|
||||||
Service StopW32time
|
|
||||||
{
|
|
||||||
Name = "w32time"
|
|
||||||
State = "Stopped" # Running
|
|
||||||
}
|
|
||||||
WindowsProcess RunCalc
|
|
||||||
{
|
|
||||||
Ensure = "Present"
|
|
||||||
Path = "C:\WINDOWS\system32\calc.exe"
|
|
||||||
Arguments = ""
|
|
||||||
}
|
|
||||||
Registry RegSettings
|
|
||||||
{
|
|
||||||
Ensure = "Present"
|
|
||||||
Key = "HKEY_LOCAL_MACHINE\SOFTWARE\MySoft"
|
|
||||||
ValueName = "TestName"
|
|
||||||
ValueData = "TestValue"
|
|
||||||
ValueType = "String"
|
|
||||||
}
|
|
||||||
# WindowsFeature IIS
|
|
||||||
# {
|
|
||||||
# Ensure = "Present"
|
|
||||||
# Name = "Web-Server"
|
|
||||||
# }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
`$Path = (DSConfigurationProxy).DirectoryName` \
|
|
||||||
`Test-DscConfiguration -Path $Path | select *` ResourcesInDesiredState - уже настроено, ResourcesNotInDesiredState - не настроено (не соответствует) \
|
|
||||||
`Start-DscConfiguration -Path $Path` \
|
|
||||||
`Get-Job` \
|
|
||||||
`$srv = "vproxy-01"` \
|
|
||||||
`Get-Service -ComputerName $srv | ? name -match w32time # Start-Service` \
|
|
||||||
`icm $srv {Get-Process | ? ProcessName -match calc} | ft # Stop-Process -Force` \
|
|
||||||
`icm $srv {ls C:\ | ? name -match Temp} | ft # rm`
|
|
||||||
|
|
||||||
# Ansible
|
# Ansible
|
||||||
|
|
||||||
`apt-get update && apt-get upgrade` \
|
`apt-get update && apt-get upgrade` \
|
||||||
|
|
@ -4034,3 +4010,65 @@ ansible ws_vproxy -m win_service -a "name=Spooler state=started"
|
||||||
name: nmap
|
name: nmap
|
||||||
state: latest
|
state: latest
|
||||||
```
|
```
|
||||||
|
# DSC
|
||||||
|
|
||||||
|
`Import-Module PSDesiredStateConfiguration` \
|
||||||
|
`(Get-Module PSDesiredStateConfiguration).ExportedCommands` \
|
||||||
|
`Get-DscLocalConfigurationManager`
|
||||||
|
|
||||||
|
`Get-DscResource` \
|
||||||
|
`Get-DscResource -Name File -Syntax` # https://learn.microsoft.com/ru-ru/powershell/dsc/reference/resources/windows/fileresource?view=dsc-1.1
|
||||||
|
|
||||||
|
`Ensure = Present` настройка должна быть включена (каталог должен присутствовать, процесс должен быть запущен, если нет – создать, запустить) \
|
||||||
|
`Ensure = Absent` настройка должна быть выключена (каталога быть не должно, процесс не должен быть запущен, если нет – удалить, остановить)
|
||||||
|
```
|
||||||
|
Configuration TestConfiguraion
|
||||||
|
{
|
||||||
|
Ctrl+Space
|
||||||
|
}
|
||||||
|
|
||||||
|
Configuration DSConfigurationProxy
|
||||||
|
{
|
||||||
|
Node vproxy-01
|
||||||
|
{
|
||||||
|
File CreateDir
|
||||||
|
{
|
||||||
|
Ensure = "Present"
|
||||||
|
Type = "Directory"
|
||||||
|
DestinationPath = "C:\Temp"
|
||||||
|
}
|
||||||
|
Service StopW32time
|
||||||
|
{
|
||||||
|
Name = "w32time"
|
||||||
|
State = "Stopped" # Running
|
||||||
|
}
|
||||||
|
WindowsProcess RunCalc
|
||||||
|
{
|
||||||
|
Ensure = "Present"
|
||||||
|
Path = "C:\WINDOWS\system32\calc.exe"
|
||||||
|
Arguments = ""
|
||||||
|
}
|
||||||
|
Registry RegSettings
|
||||||
|
{
|
||||||
|
Ensure = "Present"
|
||||||
|
Key = "HKEY_LOCAL_MACHINE\SOFTWARE\MySoft"
|
||||||
|
ValueName = "TestName"
|
||||||
|
ValueData = "TestValue"
|
||||||
|
ValueType = "String"
|
||||||
|
}
|
||||||
|
# WindowsFeature IIS
|
||||||
|
# {
|
||||||
|
# Ensure = "Present"
|
||||||
|
# Name = "Web-Server"
|
||||||
|
# }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
`$Path = (DSConfigurationProxy).DirectoryName` \
|
||||||
|
`Test-DscConfiguration -Path $Path | select *` ResourcesInDesiredState - уже настроено, ResourcesNotInDesiredState - не настроено (не соответствует) \
|
||||||
|
`Start-DscConfiguration -Path $Path` \
|
||||||
|
`Get-Job` \
|
||||||
|
`$srv = "vproxy-01"` \
|
||||||
|
`Get-Service -ComputerName $srv | ? name -match w32time # Start-Service` \
|
||||||
|
`icm $srv {Get-Process | ? ProcessName -match calc} | ft # Stop-Process -Force` \
|
||||||
|
`icm $srv {ls C:\ | ? name -match Temp} | ft # rm`
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue