Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
3c5b46d
Updatng release history
vishiy Aug 1, 2018
d31f588
fixing the plugin logs for emit stream
Aug 1, 2018
11fd5f6
updating log message
Aug 5, 2018
87a9cf8
Remove Log Processing from fluentd configuration
r-dilip Aug 16, 2018
308be41
Remove plugin references from base_container.data
r-dilip Aug 16, 2018
5bee0af
Merge pull request #124 from Microsoft/dilipr/fluentdConfigUpdates
r-dilip Aug 30, 2018
bcd1a3f
Dilipr/fluent bit log processing (#126)
r-dilip Sep 14, 2018
b02f2ec
Dilipr/glide updates (#127)
r-dilip Sep 14, 2018
e01c678
containerID="" for pull issues
vishiy Sep 17, 2018
b0ba22d
Using KubeAPI for getting image,name. Adding more logs (#129)
r-dilip Sep 18, 2018
9783419
Dilipr/mark comments (#130)
r-dilip Sep 27, 2018
8e35b73
Rashmi/segfault latest (#132)
rashmichandrashekar Sep 27, 2018
4b63021
Adding a missed null check (#135)
rashmichandrashekar Sep 27, 2018
8b964fd
reusing some variables (#136)
rashmichandrashekar Sep 28, 2018
938c2ed
Rashmi/cjson delete null check (#138)
rashmichandrashekar Sep 28, 2018
fbfdf11
updating log level to debug for some provider workflows (#139)
rashmichandrashekar Oct 3, 2018
d426066
Fixing CPU Utilization and removing Fluent-bit filters (#140)
r-dilip Oct 4, 2018
c2cabab
Minor tweaks 1. Remove some logging 2. Added more Error Handling 3. C…
r-dilip Oct 9, 2018
32567db
* Change FluentBit flush interval to 30 secs (from 5 secs)
vishiy Oct 10, 2018
afc981d
Container Log Telemetry
r-dilip Oct 12, 2018
4b958dd
Fixing an issue with Send Init Event if Telemetry is not initialized …
r-dilip Oct 12, 2018
510ef9f
PR feedback
r-dilip Oct 12, 2018
684c39b
PR feedback
r-dilip Oct 12, 2018
e165275
Sending an event every 5 mins(Heartbeat) (#146)
r-dilip Oct 15, 2018
eecb5db
Merge branch 'ci_feature_prod' into ci_feature
vishiy Oct 16, 2018
cfe1ca9
PR feedback to cleanup removed workflows
vishiy Oct 16, 2018
892b51c
updating agent version for telemetry
vishiy Oct 16, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@

/test/code/providers/TestScriptPath.h
/test/code/providers/providertestutils.cpp
source/code/go/src/plugins/profiling
.vscode/launch.json
source/code/go/src/plugins/vendor/
12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ additional questions or comments.

## Release History

### 10/16/2018 - Version microsoft/oms:ciprod10162018
- Fix for containerID being 00000-00000-00000
- Move from fluentD to fluentbit for container log collection
- Seg fault fixes in json parsing for container inventory & container image inventory
- Telemetry enablement
- Remove ContainerPerf, ContainerServiceLog, ContainerProcess fluentd-->OMI workflows
- Update log level for all fluentD based workflows

### 7/31/2018 - Version microsoft/oms:ciprod07312018
- Changes for node lost scenario (roll-up pod & container statuses as Unknown)
- Discover unscheduled pods
Expand All @@ -32,6 +40,4 @@ additional questions or comments.
- Kubernetes RBAC enablement
- Latest released omsagent (1.6.0-42)
- Bug fix so that we do not collect kube-system namespace container logs when kube api calls fail occasionally (Bug #215107)
- .yaml changes (for RBAC)


- .yaml changes (for RBAC)
829 changes: 420 additions & 409 deletions build/Makefile

Large diffs are not rendered by default.

97 changes: 3 additions & 94 deletions installer/conf/container.conf
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,6 @@
bind 127.0.0.1
</source>

# Filter container logs
<filter docker.**>
type filter_docker_log
log_path "/var/opt/microsoft/omsagent/log/filter_docker_log.txt"
</filter>

# Container perf
<source>
type oms_omi
object_name "Container"
interval 30s
</source>

# Container inventory
<source>
type omi
Expand All @@ -40,28 +27,6 @@
]
</source>

# Container service log
<source>
type omi
run_interval 60s
tag oms.container.servicelog
items [
["root/cimv2","Container_DaemonEvent"]
]
</source>

# Container log
# Example line which matches the format:
# {"log"=>"Test 9th January\n", "stream"=>"stdout", "time"=>"2018-01-09T23:14:39.273429353Z", "ContainerID"=>"ee1ec26aa974af81b21fff24cef8ec78bf7ac1558b5de6f1eb1a5b28ecd6d559", "Image"=>"ubuntu", "Name"=>"determined_wilson", "SourceSystem"=>"Containers"}
# NOTE: The LogEntryTimeStamp is just being appended in the begining of the LogEntry field. This is the actual time the log was generated and the TimeGenerated field in Kusto is different
<source>
type containerlog_sudo_tail
pos_file /var/opt/microsoft/docker-cimprov/state/ContainerLogFile.pos.log
tag oms.container.log
format /\"log\"=>\"(?<LogEntry>.*)", \"stream\"=>\"(?<LogEntrySource>.*)", \"time\"=>\"(?<LogEntryTimeStamp>.*)", \"ContainerID\"=>\"(?<Id>.*)", \"Image\"=>\"(?<Image>.*)", \"Name\"=>\"(?<Name>.*)", \"SourceSystem\"=>\"(?<SourceSystem>.*)"}/
run_interval 60s
</source>

# Container host inventory
<source>
type omi
Expand All @@ -72,16 +37,6 @@
]
</source>

# Container processes
<source>
type omi
run_interval 60s
tag oms.api.ContainerProcess
items [
["root/cimv2","Container_Process"]
]
</source>

#cadvisor perf
<source>
type cadvisorperf
Expand All @@ -91,15 +46,10 @@
</source>

# Filter for correct format to endpoint
<filter oms.container.containerinventory oms.container.imageinventory oms.container.servicelog>
<filter oms.container.containerinventory oms.container.imageinventory>
type filter_container
</filter>

# Seperate filter for container log
<filter oms.container.log>
type filter_container_log
</filter>

<match oms.api.ContainerNodeInventory**>
type out_oms_api
log_level debug
Expand All @@ -113,22 +63,9 @@
max_retry_wait 9m
</match>

<match oms.api.ContainerProcess**>
type out_oms_api
log_level debug
buffer_chunk_limit 20m
buffer_type file
buffer_path %STATE_DIR_WS%/out_oms_containerprocess*.buffer
buffer_queue_limit 20
flush_interval 20s
retry_limit 10
retry_wait 15s
max_retry_wait 9m
</match>

<match oms.container.containerinventory**>
type out_oms
log_level info
log_level debug
buffer_chunk_limit 20m
buffer_type file
buffer_path %STATE_DIR_WS%/out_oms_containerinventory*.buffer
Expand All @@ -140,39 +77,11 @@
</match>

<match oms.container.imageinventory**>
type out_oms
log_level info
buffer_chunk_limit 20m
buffer_type file
buffer_path %STATE_DIR_WS%/out_oms_imageinventory*.buffer
buffer_queue_limit 20
flush_interval 20s
retry_limit 10
retry_wait 15s
max_retry_wait 9m
</match>

<match oms.container.log>
type out_oms
log_level debug
num_threads 5
buffer_chunk_limit 20m
buffer_type file
buffer_path %STATE_DIR_WS%/out_oms_log*.buffer
buffer_queue_limit 20
buffer_queue_full_action drop_oldest_chunk
flush_interval 20s
retry_limit 10
retry_wait 15s
max_retry_wait 9m
</match>

<match oms.container.servicelog**>
type out_oms
log_level info
buffer_chunk_limit 20m
buffer_type file
buffer_path %STATE_DIR_WS%/out_oms_servicelog*.buffer
buffer_path %STATE_DIR_WS%/out_oms_imageinventory*.buffer
buffer_queue_limit 20
flush_interval 20s
retry_limit 10
Expand Down
6 changes: 6 additions & 0 deletions installer/conf/out_oms.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
omsadmin_conf_path=/etc/opt/microsoft/omsagent/conf/omsadmin.conf
cert_file_path=/etc/opt/microsoft/omsagent/certs/oms.crt
key_file_path=/etc/opt/microsoft/omsagent/certs/oms.key
container_host_file_path=/var/opt/microsoft/docker-cimprov/state/containerhostname
container_inventory_refresh_interval=60
kube_system_containers_refresh_interval=300
22 changes: 22 additions & 0 deletions installer/conf/td-agent-bit.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[SERVICE]
Flush 30
Log_Level info
Parsers_File /etc/td-agent-bit/parsers.conf
Log_File /var/opt/microsoft/docker-cimprov/log/fluent-bit.log

[INPUT]
Name tail
Tag oms.container.log.*
Path /var/log/containers/*.log
DB /var/opt/microsoft/docker-cimprov/state/fblogs.db
Parser docker
Mem_Buf_Limit 30m
Path_Key filepath
Skip_Long_Lines On

[OUTPUT]
Name oms
EnableTelemetry true
TelemetryPushIntervalSeconds 300
Match oms.container.log.*
AgentVersion ciprod10162018
19 changes: 6 additions & 13 deletions installer/datafiles/base_container.data
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,11 @@ MAINTAINER: 'Microsoft Corporation'

/opt/microsoft/omsagent/plugin/filter_docker_log.rb; source/code/plugin/filter_docker_log.rb; 644; root; root
/opt/microsoft/omsagent/plugin/filter_container.rb; source/code/plugin/filter_container.rb; 644; root; root
/opt/microsoft/omsagent/plugin/filter_container_log.rb; source/code/plugin/filter_container_log.rb; 644; root; root

/opt/microsoft/omsagent/plugin/in_kube_podinventory.rb; source/code/plugin/in_kube_podinventory.rb; 644; root; root
/opt/microsoft/omsagent/plugin/in_kube_events.rb; source/code/plugin/in_kube_events.rb; 644; root; root
/opt/microsoft/omsagent/plugin/in_kube_logs.rb; source/code/plugin/in_kube_logs.rb; 644; root; root
/opt/microsoft/omsagent/plugin/KubernetesApiClient.rb; source/code/plugin/KubernetesApiClient.rb; 644; root; root
/opt/microsoft/omsagent/plugin/in_containerlog_sudo_tail.rb; source/code/plugin/in_containerlog_sudo_tail.rb; 644; root; root
/opt/microsoft/omsagent/plugin/containerlogtailfilereader.rb; source/code/plugin/containerlogtailfilereader.rb; 744; root; root

/etc/opt/microsoft/docker-cimprov/container.conf; installer/conf/container.conf; 644; root; root

Expand All @@ -40,7 +37,9 @@ MAINTAINER: 'Microsoft Corporation'
/opt/microsoft/omsagent/plugin/in_kube_services.rb; source/code/plugin/in_kube_services.rb; 644; root; root
/opt/microsoft/omsagent/plugin/in_kube_nodes.rb; source/code/plugin/in_kube_nodes.rb; 644; root; root


/opt/td-agent-bit/bin/out_oms.so; intermediate/${{BUILD_CONFIGURATION}}/out_oms.so; 755; root; root
/etc/opt/microsoft/docker-cimprov/td-agent-bit.conf; installer/conf/td-agent-bit.conf; 644; root; root
/etc/opt/microsoft/docker-cimprov/out_oms.conf; installer/conf/out_oms.conf; 644; root; root

%Links
/opt/omi/lib/libcontainer.${{SHLIB_EXT}}; /opt/microsoft/docker-cimprov/lib/libcontainer.${{SHLIB_EXT}}; 644; root; root
Expand Down Expand Up @@ -79,6 +78,9 @@ MAINTAINER: 'Microsoft Corporation'
/var/opt/microsoft/docker-cimprov/state/ImageInventory; 755; root; root
/var/opt/microsoft/docker-cimprov/log; 755; root; root

/opt/td-agent-bit; 755; root; root;sysdir
/opt/td-agent-bit/bin; 755; root; root;sysdir

%Dependencies

%Postinstall_10
Expand All @@ -88,15 +90,6 @@ WriteInstallInfo() {
}
WriteInstallInfo

#Setup sudo permission for containerlogtailfilereader
if [ -z $(cat /etc/sudoers.d/omsagent | grep /containerlogtailfilereader.rb) ]
then
chmod +w /etc/sudoers.d/omsagent
echo "#run containerlogtailfilereader.rb for docker-provider" >> /etc/sudoers.d/omsagent
echo "omsagent ALL=(ALL) NOPASSWD: /opt/microsoft/omsagent/ruby/bin/ruby /opt/microsoft/omsagent/plugin/containerlogtailfilereader.rb *" >> /etc/sudoers.d/omsagent
chmod 440 /etc/sudoers.d/omsagent
fi

# Get the state file in place with proper permissions
touch /var/opt/microsoft/docker-cimprov/state/LastEventQueryTime.txt
chmod 644 /var/opt/microsoft/docker-cimprov/state/LastEventQueryTime.txt
Expand Down
Loading